From 41d00532784695a278c1db8745c71818ad7fae80 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Sun, 9 Oct 2022 23:23:44 +0200 Subject: [PATCH] home assistant --- hosts/architect/home-assistant.nix | 66 ++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 hosts/architect/home-assistant.nix diff --git a/hosts/architect/home-assistant.nix b/hosts/architect/home-assistant.nix new file mode 100644 index 0000000..f2e8a15 --- /dev/null +++ b/hosts/architect/home-assistant.nix @@ -0,0 +1,66 @@ +{ lib, config, pkgs, ... }: + +let + domain = "home.giugl.io"; + network = import ./network.nix; + host = "127.0.0.1"; + port = 8123; +in { + services = { + mosquitto = { + enable = true; + listeners = [{ + acl = [ "pattern readwrite #" ]; + omitPasswordAuth = true; + settings.allow_anonymous = true; + }]; + }; + home-assistant = { + enable = true; + extraComponents = [ + # Components required to complete the onboarding + "met" + "radio_browser" + ]; + config = { + default_config = { }; + + http = { + server_port = port; + server_host = host; + trusted_proxies = [ host ]; + use_x_forwarded_for = true; + }; + + homeassistant = { + name = "Manduria"; + latitude = 40.4; + longitude = 17.63; + unit_system = "metric"; + time_zone = "Europe/Rome"; + external_url = "http://${domain}"; + }; + }; + }; + + nginx.virtualHosts.${domain} = { + # forceSSL = true; + # enableACME = true; + locations."/" = { + proxyPass = "http://${host}:${toString port}"; + extraConfig = '' + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + allow 10.0.0.0/24; + ${lib.concatMapStrings (x: "allow ${x};") network.gdevices-wg} + deny all; + ''; + }; + }; + }; + + networking.extraHosts = '' + ${network.architect-lan} ${domain} + ${network.architect-wg} ${domain} + ''; +}