summaryrefslogtreecommitdiff
path: root/os/srv/ntfy.nix
diff options
context:
space:
mode:
Diffstat (limited to 'os/srv/ntfy.nix')
-rw-r--r--os/srv/ntfy.nix59
1 files changed, 59 insertions, 0 deletions
diff --git a/os/srv/ntfy.nix b/os/srv/ntfy.nix
new file mode 100644
index 0000000..1417c81
--- /dev/null
+++ b/os/srv/ntfy.nix
@@ -0,0 +1,59 @@
+{
+ config,
+ lib,
+ masterDomain,
+ ...
+}:
+let
+ cfg = config.os.srv.ntfy;
+in
+{
+ options.os.srv.ntfy = {
+ enable = lib.mkEnableOption "enables ntfy";
+ proxyConfig = lib.mkOption {
+ type = lib.types.attrs;
+ default = { };
+ };
+ };
+ config = lib.mkIf cfg.enable {
+ services.ntfy-sh = {
+ enable = true;
+ settings = {
+ base-url = "https://ntfy.${masterDomain}";
+
+ listen-http = "127.0.0.1:2586";
+
+ cache-file = "/var/lib/ntfy/cache.db";
+ cache-duration = "72h";
+
+ attachment-cache-dir = "/var/lib/ntfy/attachments";
+ attachment-total-size-limit = "5G";
+ attachment-file-size-limit = "15M";
+ attachment-expiry-duration = "3h";
+
+ behind-proxy = true;
+ };
+ };
+
+ os.srv.ntfy.proxyConfig = {
+ "uptime-kuma.${masterDomain}" = {
+ enableACME = true;
+ forceSSL = true;
+
+ locations."/" = {
+ proxyPass = "http://${config.os.core.network.ips.vm2-gateway}:3001";
+ extraConfig = ''
+ proxy_set_header Connection "";
+ proxy_connect_timeout 1m;
+ proxy_send_timeout 1m;
+ proxy_read_timeout 24h;
+
+ proxy_buffering off;
+ proxy_request_buffering off;
+ chunked_transfer_encoding on;
+ '';
+ };
+ };
+ };
+ };
+}