system/roles/uptime-monitor.nix (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | {
config,
lib,
pkgs,
...
}:
let
inherit (import ../../data) homenet pubnet;
inherit (config.networking) domain fqdn;
cfg = config.services.uptime-kuma.settings;
reverse_proxy = ''
reverse_proxy localhost:${cfg.PORT}
'';
in
{
services.uptime-kuma = {
enable = true;
appriseSupport = true;
settings = {
HOST = "::";
PORT = "3001";
};
};
systemd.services.uptime-kuma.path = lib.optionals config.services.tailscale.enable [
pkgs.tailscale
];
services.caddy.virtualHosts = {
"uptime.${pubnet}" = {
serverAliases = [
"status.${pubnet}"
"status.searchix.ovh"
];
extraConfig = ''
${reverse_proxy}
'';
};
"uptime.${homenet}" = lib.mkIf (domain == homenet) {
serverAliases = [
"status.${homenet}"
];
extraConfig = ''
tls {
issuer internal {
ca home
}
}
${reverse_proxy}
'';
};
};
services.dnsmasq.settings.cname = [
"uptime.${domain},${fqdn}"
"status.${domain},${fqdn}"
];
}
|