{ config, lib, ... }: let inherit (config.machine.uptime-kuma) domain enable port ; in with lib; mkIf enable { services.uptime-kuma = { inherit enable; settings = { PORT = toString port; }; }; services.nginx.virtualHosts = with lib; mkIf (domain != null) { "${domain}" = { forceSSL = true; enableACME = true; locations."/" = { proxyPass = "http://127.0.0.1:${toString port}"; proxyWebsockets = true; }; }; }; networking.firewall = { allowedTCPPorts = [ port ]; }; }