diff options
Diffstat (limited to 'services/uptimekuma.nix')
| -rw-r--r-- | services/uptimekuma.nix | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/services/uptimekuma.nix b/services/uptimekuma.nix new file mode 100644 index 0000000..720040d --- /dev/null +++ b/services/uptimekuma.nix @@ -0,0 +1,79 @@ +{ config, lib, ... }: +let + cfg = config.wilkuu.services.uptimekuma; + hostname = config.networking.hostName; +in +{ + options.wilkuu.services.uptimekuma = with lib; { + domain = mkOption { + type = types.str; + default = "uptime.${hostname}.local"; + example = "uptime.wilkuu.xyz"; + description = "Domain for http connections."; + }; + doACME = mkEnableOption "Enable ACME for uptime kuma here"; + enable = mkEnableOption "Enable the uptime-kuma service"; + dataDir = mkOption { + type = types.path; + description = "Storage localtion for uptime kuma data, currently ignored, because nixpkgs sucks"; + default = "/srv/data/uptimekuma"; + example = "/srv/data/uptimekuma"; + }; + }; + + config = lib.mkIf cfg.enable ({ + networking.hosts = { + "127.0.0.1" = [ cfg.domain ]; + }; + + users.users.uptimekuma = { + isSystemUser = true; + group = "uptimekuma"; + }; + users.groups.uptimekuma = { }; + + systemd.services.uptime-kuma.serviceConfig.User = "uptimekuma"; + systemd.services.uptime-kuma.after = [ "mysql.service" ]; + + # sops.secrets = + # (lib.genAttrs (map toSops secrets) + # (name: { + # sopsFile = sopsPath; + # mode = "0440"; + # owner = "uptime-kuma"; + # })); + + services.nginx.virtualHosts."${cfg.domain}" = { + addSSL = cfg.doACME; + enableACME = cfg.doACME; + locations."/" = { + proxyPass = "http://localhost:3111"; + recommendedProxySettings = true; + }; + }; + + wilkuu.services.mysql = + let + user = config.systemd.services.uptime-kuma.serviceConfig.User; + in + { + unix_users = [ user ]; + databases.uptimekuma = { + enable = true; + allowedUsers = [ user ]; + }; + }; + + services.uptime-kuma = { + enable = true; + settings = { + UPTIME_KUMA_PORT = "3111"; + UPTIME_KUMA_HOST = "127.0.0.1"; + UPTIME_KUMA_DB_TYPE = "sqlite"; + #UPTIME_KUMA_DB_SOCKET = "/run/mysqld/mysqld.sock"; + #UPTIME_KUMA_DB_USERNAME = config.systemd.services.uptime-kuma.serviceConfig.User; + #UPTIME_KUMA_DB_NAME = "uptimekuma"; + }; + }; + }); +} |
