Compare commits

...

4 Commits

Author SHA1 Message Date
89328fe7e7 hass config update 2026-01-26 17:39:43 -06:00
d9338b280e add hass config 2026-01-26 17:32:37 -06:00
51f15e3305 docker image 2026-01-26 17:11:37 -06:00
bbd135bad9 home-assistant docker 2026-01-26 16:34:30 -06:00
6 changed files with 65 additions and 15 deletions

View File

@@ -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";
};
};
};
};
};

View File

@@ -79,7 +79,7 @@
pihole.enable = true;
ollama.enable = true;
searxng.enable = true;
home-assistant.enable = false;
home-assistant.enable = true;
n8n.enable = true;
};

View File

@@ -0,0 +1,17 @@
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
http:
use_x_forwarded_for: true
trusted_proxies:
- 192.168.101.1
- 192.168.100.11

View File

@@ -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,42 +17,48 @@
networking.firewall.interfaces = {
"ve-traefik" = {
allowedTCPPorts = [ 9003 ];
allowedTCPPorts = [ hostPort ];
};
};
environment.etc."home-assistant/configuration.yaml".source = ./configuration.yaml;
virtualisation.oci-containers.containers.home-assistant = {
image = "home-assistant/home-assistant:stable";
image = "ghcr.io/home-assistant/home-assistant:stable";
# 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/"
"/etc/home-assistant/configuration.yaml:/config/configuration.yaml"
];
};
};

View File

@@ -16,7 +16,10 @@
programs.virt-manager.enable = true;
virtualisation = {
libvirtd.enable = true;
libvirtd = {
enable = true;
qemu.swtpm.enable = true;
};
spiceUSBRedirection.enable = true;
};

View File

@@ -8,5 +8,6 @@
};
config = lib.mkIf config.sysconfig.virtual-machines.home-assistant.enable {
};
}