{ config, lib, namespace, ... }: let name = "ntfy"; cfg = config.${namespace}.services.${name}; ntfyConfig = lib.${namespace}.mkModule { inherit config name; description = "ntfy"; options = { }; moduleConfig = { services = { ntfy-sh = { enable = true; # environmentFile = "/run/.env"; settings = { base-url = "https://${cfg.reverseProxy.subdomain}.mjallen.dev"; enable-login = true; listen-http = ":${toString cfg.port}"; cache-file = "${cfg.configDir}/ntfy/cache.db"; attachment-cache-dir = "${cfg.dataDir}/ntfy/attachments"; behind-proxy = true; auth-default-access = "deny-all"; auth-file = "${cfg.configDir}/ntfy/user.db"; auth-users = [ "mjallen:$2a$10$g4TqI8UiKKVaKTmrwnXIw.wtajiLBM6oc3UCfJ//lPZFilJnBirn.:admin" ]; }; }; }; systemd.services = { ntfy-sh = { serviceConfig = { WorkingDirectory = lib.mkForce cfg.dataDir; StateDirectory = lib.mkForce cfg.dataDir; StateDirectoryMode = lib.mkForce 700; DynamicUser = lib.mkForce false; ProtectSystem = lib.mkForce null; }; }; }; users.users.ntfy-sh = { isSystemUser = true; group = "ntfy-sh"; home = cfg.dataDir; }; users.groups.ntfy-sh = { }; }; }; in with lib; { imports = [ ntfyConfig ]; }