about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--configuration.nix1
-rw-r--r--push.nix37
-rw-r--r--static.nix2
3 files changed, 39 insertions, 1 deletions
diff --git a/configuration.nix b/configuration.nix
index 4f86d2a..c06952d 100644
--- a/configuration.nix
+++ b/configuration.nix
@@ -34,6 +34,7 @@
     ./ipfs.nix
     ./mail.nix
     ./matrix.nix
+    ./push.nix
     ./static.nix
     ./vpsadminos.nix
   ];
diff --git a/push.nix b/push.nix
new file mode 100644
index 0000000..235cbcd
--- /dev/null
+++ b/push.nix
@@ -0,0 +1,37 @@
+# Push notification setup
+# Copyright (C) 2023  Nguyễn Gia Phong
+#
+# This file is part of loang configuration.
+#
+# Loang configuration is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Loang configuration is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with loang configuration.  If not, see <https://www.gnu.org/licenses/>.
+
+{ config, ... }:
+let address = "localhost:21840";
+in {
+  services = {
+    ntfy-sh = {
+      enable = true;
+      settings.listen-http = address;
+    };
+
+    nginx.virtualHosts."tin.${config.networking.domain}" = {
+      enableACME = true;
+      forceSSL = true;
+      locations."/" = {
+        proxyPass = "http://${address}";
+        proxyWebsockets = true;
+      };
+    };
+  };
+}
diff --git a/static.nix b/static.nix
index b1f736e..2f794fa 100644
--- a/static.nix
+++ b/static.nix
@@ -16,7 +16,7 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with loang configuration.  If not, see <https://www.gnu.org/licenses/>.
 
-{ config, lib, ... }:
+{ config, lib, pkgs, ... }:
 let
   certs = config.security.acme.certs.${domain};
   domain = config.networking.domain;