diff --git a/system/profiles/homebox/default.nix b/system/profiles/homebox/default.nix index 68fc688..78f12f8 100644 --- a/system/profiles/homebox/default.nix +++ b/system/profiles/homebox/default.nix @@ -61,7 +61,7 @@ pipewire.enable = true; netbird.enable = true; - ollama.enable = true; + ollama.enable = false; wyoming = { enable = true; piper = false; @@ -79,8 +79,11 @@ docker = { enable = true; + nvidia = true; + portainer.enable = true; pihole.enable = true; + ollama.enable = true; }; virtualization = { diff --git a/system/services/docker/default.nix b/system/services/docker/default.nix index 8fcc881..ba1c5e5 100644 --- a/system/services/docker/default.nix +++ b/system/services/docker/default.nix @@ -21,6 +21,8 @@ config = lib.mkIf config.sysconfig.docker.enable { + networking.nat.internalInterfaces = [ "docker0" ]; + virtualisation = { docker = { enable = true; diff --git a/system/services/docker/ollama/default.nix b/system/services/docker/ollama/default.nix index c157af7..472457a 100644 --- a/system/services/docker/ollama/default.nix +++ b/system/services/docker/ollama/default.nix @@ -1 +1,39 @@ -{ ... }: {} +{ config, lib, pkgs, ... }: { + + options.sysconfig.docker.ollama.enable = with lib; mkOption { + type = with types; bool; + default = false; + }; + + config = lib.mkIf (config.sysconfig.docker.ollama.enable && config.sysconfig.docker.enable) { + + environment.systemPackages = with pkgs; [ + ollama + ]; + + virtualisation.oci-containers.containers.ollama = { + image = "ollama/ollama:latest"; + + # unstable, waiting for 26.05 + #pull = "newer"; + + hostname = "ollama.local"; + + ports = [ + "127.0.0.1:11434:11434" + ]; + + volumes = [ + "vol_ollama:/root/.ollama" + ]; + + cmd = lib.mkIf config.sysconfig.docker.nvidia [ + "--device=nvidia.com/gpu=all" + ]; + + environment = { + OLLAMA_CONTEXT_LENGTH = lib.mkDefault "16000"; + }; + }; + }; +} diff --git a/system/services/docker/pihole/default.nix b/system/services/docker/pihole/default.nix index e4a7f18..f3e1bfa 100644 --- a/system/services/docker/pihole/default.nix +++ b/system/services/docker/pihole/default.nix @@ -20,6 +20,8 @@ # unstable, waiting for 26.05 #pull = "newer"; + hostname = "pihole.local"; + ports = [ "127.0.0.1:9001:80" "127.0.0.1:53:53/tcp" diff --git a/system/services/docker/portainer/default.nix b/system/services/docker/portainer/default.nix index c6f9fcd..0968e46 100644 --- a/system/services/docker/portainer/default.nix +++ b/system/services/docker/portainer/default.nix @@ -13,6 +13,8 @@ # unstable, waiting for 26.05 #pull = "newer"; + hostname = "portainer.local"; + ports = [ "127.0.0.1:8000:8000" "127.0.0.1:9000:9000"