about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNguyễn Gia Phong <cnx@loang.net>2023-06-27 00:35:40 +0900
committerNguyễn Gia Phong <cnx@loang.net>2023-06-27 00:35:40 +0900
commit9e5b76f835171e3e89120c66c53f769e0fef84e6 (patch)
treeb9607e2a9130ab2df536264da6f9a0410e8b8c43
parentdc7cd068d7934177c342fd0e115958d0f0dd1e52 (diff)
downloadnixos-conf-9e5b76f835171e3e89120c66c53f769e0fef84e6.tar.gz
Set up uptime monitor service
-rw-r--r--configuration.nix1
-rw-r--r--status.nix40
2 files changed, 41 insertions, 0 deletions
diff --git a/configuration.nix b/configuration.nix
index 850024b..febc2a0 100644
--- a/configuration.nix
+++ b/configuration.nix
@@ -39,6 +39,7 @@
     ./matrix.nix
     ./push.nix
     ./static.nix
+    ./status.nix
     ./vpsadminos.nix
   ];
 
diff --git a/status.nix b/status.nix
new file mode 100644
index 0000000..0f30e28
--- /dev/null
+++ b/status.nix
@@ -0,0 +1,40 @@
+# Uptime monitoring service
+# 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
+  domain = "quan.${config.networking.domain}";
+  settings = config.services.uptime-kuma.settings;
+in {
+  services = {
+    nginx.virtualHosts."${domain}" = {
+      enableACME = true;
+      forceSSL = true;
+      locations."/" = {
+        proxyPass = "http://${settings.HOST}:${settings.PORT}";
+        proxyWebsockets = true;
+      };
+    };
+
+    uptime-kuma = {
+      appriseSupport = true;
+      enable = true;
+      settings.PORT = "4944";
+    };
+  };
+}