{ config, ... }: let inherit (config.networking) hostName domain; in { imports = [ ./postgresql.nix ]; services.home-assistant = { enable = true; extraPackages = ps: with ps; [ psycopg2 ]; extraComponents = [ ## Components required to complete the onboarding ## Keep in case of new setup # "analytics" # "google_translate" # "met" # "radio_browser" "shopping_list" # Recommended for fast zlib compression # https://www.home-assistant.io/integrations/isal "isal" ]; config = { default_config = { }; recorder.db_url = "postgresql://@/hass"; http = { server_host = "::1"; use_x_forwarded_for = true; trusted_proxies = "::1"; }; }; }; services.matter-server = { enable = true; }; services.postgresql = { ensureDatabases = [ "hass" ]; ensureUsers = [ { name = "hass"; ensureDBOwnership = true; } ]; }; services.caddy.virtualHosts = { "ha.${domain}" = { extraConfig = '' tls { issuer internal { ca home } } reverse_proxy http://[::1]:8123 ''; }; }; services.dnsmasq.settings.cname = [ "ha.${domain},${hostName}.${domain}" ]; }