Files
nixos/services/uptimekuma.nix

57 lines
1.2 KiB
Nix

# Module: services/uptimekuma
# Enables an Uptime Kuma server
{
config,
lib,
pkgs,
pkgsUnstable,
inputs,
...
}:
with lib;
let
cfg = config.uptimekuma;
uptimeKumaHost = "127.0.0.1";
uptimeKumaPort = "8891";
in
{
options.uptimekuma = {
enable = mkEnableOption "Enables uptimekuma module";
};
config = mkIf cfg.enable {
services.uptime-kuma = {
enable = true;
package = pkgsUnstable.uptime-kuma;
settings = {
HOST = uptimeKumaHost;
PORT = uptimeKumaPort;
#UPTIME_KUMA_DB_TYPE="mariadb";
#UPTIME_KUMA_DB_HOSTNAME="127.0.0.1";
#UPTIME_KUMA_DB_PORT=3306;
#UPTIME_KUMA_DB_NAME="uptimekuma";
#UPTIME_KUMA_DB_USERNAME="uptimekuma";
#UPTIME_KUMA_DB_PASSWORD
};
};
services.traefik.dynamicConfigOptions = {
http.routers.uptimekuma = {
entrypoints = [ "websecure" ];
rule = "Host(`uptime.its-et.me`)";
middlewares = [ "authentik@file" ];
tls.certresolver = "production";
service = "uptimekuma";
};
http.services.uptimekuma.loadbalancer.servers = [
{
url = "http://${uptimeKumaHost}:${uptimeKumaPort}";
}
];
};
};
}