diff --git a/homes/nathan/home-manager/programs/terminal/opencode/default.nix b/homes/nathan/home-manager/programs/terminal/opencode/default.nix index 42ed9da..c6a3643 100644 --- a/homes/nathan/home-manager/programs/terminal/opencode/default.nix +++ b/homes/nathan/home-manager/programs/terminal/opencode/default.nix @@ -29,6 +29,21 @@ }; }; + + ollama-remote = { + name = "Ollama (remote)"; + + npm = "@ai-sdk/openai-compatible"; + + options.baseURL = "https://ollama.esotericbytes.com/v1"; + + models = { + "ministral-3:8b".name = "Ministral 3 8B"; + "llama3.2".name = "Llama 3.2"; + "qwen3:8b".name = "Qwen 3"; + }; + + }; }; }; }; diff --git a/profiles/homebox/default.nix b/profiles/homebox/default.nix index 3d3b8d1..39dfd98 100644 --- a/profiles/homebox/default.nix +++ b/profiles/homebox/default.nix @@ -79,7 +79,7 @@ pihole.enable = true; ollama.enable = true; searxng.enable = true; - home-assistant.enable = false; + home-assistant.enable = true; n8n.enable = true; }; diff --git a/system/virtualization/docker/home-assistant/default.nix b/system/virtualization/docker/home-assistant/default.nix index e9abb62..f7dbbe7 100644 --- a/system/virtualization/docker/home-assistant/default.nix +++ b/system/virtualization/docker/home-assistant/default.nix @@ -1,4 +1,12 @@ -{ config, lib, ... }: { +{ config, lib, ... }: let + + hostPort = 9003; + + subdomain = "hass"; + + name = "home-assistant"; + +in { options.sysconfig.docker.home-assistant.enable = with lib; mkOption { type = with types; bool; @@ -9,7 +17,7 @@ networking.firewall.interfaces = { "ve-traefik" = { - allowedTCPPorts = [ 9003 ]; + allowedTCPPorts = [ hostPort ]; }; }; @@ -19,32 +27,35 @@ # unstable, waiting for 26.05 #pull = "newer"; - hostname = "hass.esotericbytes.com"; + hostname = "${subdomain}.esotericbytes.com"; networks = [ "docker-main" ]; labels = { - "traefik.http.routers.home-assistant.entrypoints" = "localsecure"; - "traefik.http.routers.home-assistant.rule" = "Host(`hass.esotericbytes.com`)"; - "traefik.http.routers.home-assistant.service" = "home-assistant"; - "traefik.http.routers.home-assistant.tls.certResolver" = "cloudflare"; + "traefik.http.routers.${name}.entrypoints" = "localsecure"; + "traefik.http.routers.${name}.rule" = "Host(`${subdomain}.esotericbytes.com`)"; + "traefik.http.routers.${name}.service" = "${name}"; + "traefik.http.routers.${name}.tls.certResolver" = "cloudflare"; - "traefik.http.services.home-assistant.loadbalancer.server.url" = "http://192.168.100.10:9003"; + "traefik.http.services.${name}.loadbalancer.server.url" = "http://192.168.100.10:${builtins.toString hostPort}"; }; - extraOptions = lib.mkIf config.sysconfig.docker.nvidia [ + extraOptions = [ "--ip=192.168.101.6" - "--TZ=America/Chicago" ]; + environment = { + TZ = "America/Chicago"; + }; + ports = [ - "9003:8123" + "${builtins.toString hostPort}:8123" ]; volumes = [ - "/etc/home-assistant/:/config/" + "vol_home-assistant:/config/" ]; }; }; diff --git a/system/virtualization/virtual-machines/default.nix b/system/virtualization/virtual-machines/default.nix index 2a68b67..9dc883d 100644 --- a/system/virtualization/virtual-machines/default.nix +++ b/system/virtualization/virtual-machines/default.nix @@ -16,7 +16,10 @@ programs.virt-manager.enable = true; virtualisation = { - libvirtd.enable = true; + libvirtd = { + enable = true; + qemu.swtpm.enable = true; + }; spiceUSBRedirection.enable = true; }; diff --git a/system/virtualization/virtual-machines/home-assistant/default.nix b/system/virtualization/virtual-machines/home-assistant/default.nix index f4bb2bb..6910442 100644 --- a/system/virtualization/virtual-machines/home-assistant/default.nix +++ b/system/virtualization/virtual-machines/home-assistant/default.nix @@ -8,5 +8,6 @@ }; config = lib.mkIf config.sysconfig.virtual-machines.home-assistant.enable { + }; }