57 lines
1.2 KiB
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}";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|