diff options
| author | Mel <mel@rnrd.eu> | 2025-03-22 04:26:59 +0100 |
|---|---|---|
| committer | Mel <mel@rnrd.eu> | 2025-03-22 04:26:59 +0100 |
| commit | 297a73421bb584cb92619efd6c4a6cf8c6fd9e3d (patch) | |
| tree | dccae1fae85b0bb33a94f5177cfc2bd20e19022e /services | |
| parent | 5a8161e086232c5d2262fc53a005464d16006eb5 (diff) | |
| download | network-297a73421bb584cb92619efd6c4a6cf8c6fd9e3d.tar.zst network-297a73421bb584cb92619efd6c4a6cf8c6fd9e3d.zip | |
Add bare-bones home-assistant service to grow upon
Signed-off-by: Mel <mel@rnrd.eu>
Diffstat (limited to 'services')
| -rw-r--r-- | services/home-assistant.nix | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/services/home-assistant.nix b/services/home-assistant.nix new file mode 100644 index 0000000..cf594b0 --- /dev/null +++ b/services/home-assistant.nix @@ -0,0 +1,57 @@ +{ me, auxiliaryPkgs, ... }: + +let + inherit (auxiliaryPkgs) common; + + homeVersion = "2025.3.3"; + homeDir = "/srv/home"; + homeLocalPort = 8123; + + homeImage = common.pullImage { + name = "homeassistant/home-assistant"; + tag = homeVersion; + digest = "sha256:b67d76f5d0bacf55cf6c914be379a0436a1da1f8acb94ee08e3b108d46cf8c58"; + x86.sha256 = "06ijcvdzax473fsy90657jmr2vjzh5pwdssk2vzgva8d6g3d396l"; + }; + +in +{ + foundation.service.home-assistant = { + default = { + fullImage = homeImage; + # give home-assistant control over the device network + # stack to auto-discover devices on the network. + customNetwork = "host"; + volumes = [ + [ + "/etc/localtime" + "/etc/localtime:ro" + ] + [ + "${homeDir}/config" + "/config" + ] + ]; + ports = [ 8123 ]; + }; + + # additional services can be added here to enable + # more home-manager device integrations. + }; + + services.nginx.virtualHosts = { + "home.rnrd.fyi" = { + useACMEHost = "rnrd.fyi"; + forceSSL = true; + listenAddresses = [ me.tailscale.ip ]; + locations."/" = { + proxyPass = "http://127.0.0.1:${toString homeLocalPort}"; + proxyWebsockets = true; + }; + extraConfig = '' + proxy_buffering off; + access_log /var/log/nginx/home.access.log json_combined; + ''; + }; + }; +} |
