From 846112cd25b1c8e715c412d8403f9283a282dc13 Mon Sep 17 00:00:00 2001 From: hektor Date: Sat, 7 Feb 2026 16:17:06 +0100 Subject: [PATCH] feat: add (but disable for now) uptime kuma module for 'hecuba' --- hosts/hecuba/default.nix | 3 +++ modules/uptime-kuma/default.nix | 39 +++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 modules/uptime-kuma/default.nix diff --git a/hosts/hecuba/default.nix b/hosts/hecuba/default.nix index ee55337..ba3a768 100644 --- a/hosts/hecuba/default.nix +++ b/hosts/hecuba/default.nix @@ -17,6 +17,7 @@ in ./hard.nix ../../modules/ssh/hardened-openssh.nix ../../modules/docker + ../../modules/uptime-kuma ]; networking.hostName = hostName; @@ -31,6 +32,8 @@ in docker.user = username; + my.uptime-kuma.enable = false; + fileSystems."/" = { device = "/dev/disk/by-label/nixos"; fsType = "ext4"; diff --git a/modules/uptime-kuma/default.nix b/modules/uptime-kuma/default.nix new file mode 100644 index 0000000..9330018 --- /dev/null +++ b/modules/uptime-kuma/default.nix @@ -0,0 +1,39 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + cfg = config.my.uptime-kuma; +in +{ + options.my.uptime-kuma.enable = lib.mkEnableOption "Uptime Kuma monitoring service (Docker container)"; + + config = lib.mkIf cfg.enable { + virtualisation.oci-containers = { + backend = "docker"; + containers.uptime-kuma = { + image = "louislam/uptime-kuma:latest"; + ports = [ "127.0.0.1:3001:3001" ]; + volumes = [ "/var/lib/uptime-kuma:/app/data" ]; + environment = { + TZ = "UTC"; + UMASK = "0022"; + }; + extraOptions = [ + "--network=proxiable" + ]; + }; + }; + + systemd.tmpfiles.settings."uptime-kuma" = { + "/var/lib/uptime-kuma".d = { + mode = "0755"; + }; + }; + + environment.systemPackages = with pkgs; [ docker-compose ]; + }; +}