diff --git a/flake.nix b/flake.nix index 619c3f3..f80f888 100644 --- a/flake.nix +++ b/flake.nix @@ -286,6 +286,7 @@ ./modules/linux/nixos ./modules/servers/tyr ./modules/servers/general/restic.nix + ./modules/servers/general/podman.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; diff --git a/modules/servers/tyr/default.nix b/modules/servers/tyr/default.nix index 5ef542a..1fe68cf 100644 --- a/modules/servers/tyr/default.nix +++ b/modules/servers/tyr/default.nix @@ -8,5 +8,6 @@ ./nfs-server.nix ./dns.nix ./traefik.nix + ./home-assistant.nix ]; } diff --git a/modules/servers/tyr/dns.nix b/modules/servers/tyr/dns.nix index aee9633..5b30255 100644 --- a/modules/servers/tyr/dns.nix +++ b/modules/servers/tyr/dns.nix @@ -71,6 +71,7 @@ ''"glance.home.cronyakatsuki.xyz IN A 192.168.0.5"'' ''"syncthing.home.cronyakatsuki.xyz IN A 192.168.0.5"'' ''"wallos.home.cronyakatsuki.xyz IN A 192.168.0.5"'' + ''"assistant.home.cronyakatsuki.xyz IN A 192.168.0.5"'' ]; }; }; diff --git a/modules/servers/tyr/home-assistant.nix b/modules/servers/tyr/home-assistant.nix new file mode 100644 index 0000000..78774b7 --- /dev/null +++ b/modules/servers/tyr/home-assistant.nix @@ -0,0 +1,37 @@ +{ + virtualisation.oci-containers.containers.homeassistant = { + image = "homeassistant/home-assistant:stable"; + autoStart = true; + ports = [ + "8123:8123" + ]; + volumes = [ + "/var/lib/homeassistant:/config" + ]; + environment = { + TZ = "Europe/Berlin"; + }; + }; + + services.restic.backups = { + local.paths = ["/var/lib/homeassistant"]; + server.paths = ["/var/lib/homeassistant"]; + }; + + services.traefik.dynamicConfigOptions.http = { + services.assistant.loadBalancer.servers = [ + { + url = "http://localhost:8123"; + } + ]; + + routers.assistant = { + rule = "Host(`assistant.home.cronyakatsuki.xyz`)"; + tls = { + certResolver = "porkbun"; + }; + service = "assistant"; + entrypoints = "websecure"; + }; + }; +}