{
  flake.modules.nixos.uptime-kuma =
    { config, ... }:
    let
      inherit (config.networking) domain;
      inherit (config.myLib) merge;

      fqdn = "uptime.${domain}";
      port = "3001"; # String for uptime-kuma.
      HOST = "127.0.0.1";
    in
    {
      services.uptime-kuma = {
        enable = true;
        settings = {
          inherit port HOST;
        };
      };

      services.nginx.virtualHosts.${fqdn} = merge config.services.nginx.sslTemplate {
        serverAliases = [ "status.${domain}" ];
        locations."/" = {
          proxyPass = "http://${HOST}:${port}";
          proxyWebsockets = true;
          extraConfig = # nginx
            ''
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
            '';
        };
      };
    };
}