From 4cd711d3abf51bfba9c4991eb22743c9c5dc3ca7 Mon Sep 17 00:00:00 2001
From: Alexander Foremny <aforemny@posteo.de>
Date: Fri, 1 Mar 2024 15:33:43 +0100
Subject: feed-nomath-org: init

---
 apps/feed-nomath-org/appspec.nix     | 13 +++++++++++++
 apps/feed-nomath-org/integration.nix |  7 +++++++
 apps/feed-nomath-org/module.nix      |  6 ++++++
 configs/default.nix                  |  2 ++
 nix/sources.json                     |  6 ++++++
 pkgs/feed-nomath-org/default.nix     |  1 +
 systems/system1/configuration.nix    | 15 +++++++++++++++
 7 files changed, 50 insertions(+)
 create mode 100644 apps/feed-nomath-org/appspec.nix
 create mode 100644 apps/feed-nomath-org/integration.nix
 create mode 100644 apps/feed-nomath-org/module.nix
 create mode 100644 pkgs/feed-nomath-org/default.nix

diff --git a/apps/feed-nomath-org/appspec.nix b/apps/feed-nomath-org/appspec.nix
new file mode 100644
index 0000000..6d3bb2b
--- /dev/null
+++ b/apps/feed-nomath-org/appspec.nix
@@ -0,0 +1,13 @@
+{ fysilib, lib, ... }: {
+  description = "feed.nomath.org website";
+  endOfLife = null;
+  options = {
+    domain = lib.mkOption {
+      description = "Domain of the website";
+      type = fysilib.types.fqdn;
+    };
+    repositories = lib.mkOption {
+      type = lib.types.listOf lib.types.str;
+    };
+  };
+}
diff --git a/apps/feed-nomath-org/integration.nix b/apps/feed-nomath-org/integration.nix
new file mode 100644
index 0000000..121890a
--- /dev/null
+++ b/apps/feed-nomath-org/integration.nix
@@ -0,0 +1,7 @@
+{ appConfig, lib, ... }: {
+  port = 8080;
+
+  bindMounts = builtins.listToAttrs
+    (map (name: lib.nameValuePair name { isReadOnly = true; })
+      appConfig.repositories);
+}
diff --git a/apps/feed-nomath-org/module.nix b/apps/feed-nomath-org/module.nix
new file mode 100644
index 0000000..e9c0937
--- /dev/null
+++ b/apps/feed-nomath-org/module.nix
@@ -0,0 +1,6 @@
+{ appConfig, lib, pkgs, ... }: {
+  systemd.services."feed-nomath-org".environment.PORT = "8080";
+  systemd.services."feed-nomath-org".environment.REPOSITORIES = lib.concatStringsSep ":" appConfig.repositories;
+  systemd.services."feed-nomath-org".script = "${pkgs.feed-nomath-org}/bin/feed-nomath-org";
+  systemd.services."feed-nomath-org".wantedBy = [ "multi-user.target" ];
+}
diff --git a/configs/default.nix b/configs/default.nix
index 812f365..9d5a7c7 100644
--- a/configs/default.nix
+++ b/configs/default.nix
@@ -18,6 +18,8 @@
   security.acme.certs."auth.nomath.org".webroot = "/var/lib/acme/acme-challenge";
   security.acme.certs."code.nomath.org".email = "aforemny@posteo.de";
   security.acme.certs."code.nomath.org".webroot = "/var/lib/acme/acme-challenge";
+  security.acme.certs."feed.nomath.org".email = "aforemny@posteo.de";
+  security.acme.certs."feed.nomath.org".webroot = "/var/lib/acme/acme-challenge";
   security.acme.certs."nomath.org".email = "aforemny@posteo.de";
   security.acme.certs."nomath.org".webroot = "/var/lib/acme/acme-challenge";
   security.acme.certs."static.nomath.org".email = "aforemny@posteo.de";
diff --git a/nix/sources.json b/nix/sources.json
index a7b62a8..bdf0745 100644
--- a/nix/sources.json
+++ b/nix/sources.json
@@ -5,6 +5,12 @@
         "rev": "9f2d5ae570c120f19434f03eb20ab2c3ecf36e0c",
         "type": "git"
     },
+    "feed-nomath-org": {
+        "branch": "main",
+        "repo": "git@code.nomath.org:~/feed-nomath-org",
+        "rev": "ea152cdf66aaab165178c4fcfa575fc4b898bc44",
+        "type": "git"
+    },
     "fysiweb-cli": {
         "branch": "main",
         "repo": "git@github.com:aforemny/fysiweb-cli.git",
diff --git a/pkgs/feed-nomath-org/default.nix b/pkgs/feed-nomath-org/default.nix
new file mode 100644
index 0000000..5f37c85
--- /dev/null
+++ b/pkgs/feed-nomath-org/default.nix
@@ -0,0 +1 @@
+{}: (import "${(import ../../nix/sources.nix).feed-nomath-org}" { }).feed-nomath-org
diff --git a/systems/system1/configuration.nix b/systems/system1/configuration.nix
index 8357287..da35852 100644
--- a/systems/system1/configuration.nix
+++ b/systems/system1/configuration.nix
@@ -57,6 +57,21 @@
       fysiweb-apps.public.cgit."code-nomath-org".settings.root-desc = "";
       fysiweb-apps.public.cgit."code-nomath-org".settings.root-title = "code.nomath.org";
     }
+    # enable "feed.nomath.org"
+    {
+      fysiweb-apps.public.feed-nomath-org.feed-nomath-org.domain = "feed.nomath.org";
+      # TODO connect with cgit repositories
+      fysiweb-apps.public.feed-nomath-org.feed-nomath-org.repositories = [
+        "/var/lib/git/abuilder"
+        "/var/lib/git/anissue"
+        "/var/lib/git/apaperless"
+        "/var/lib/git/feed-nomath-org"
+        "/var/lib/git/infra"
+        "/var/lib/git/json2sql"
+        "/var/lib/git/nomath-org"
+        "/var/lib/git/static-nomath-org"
+      ];
+    }
     # enable abuilder
     {
       # TODO add abuilder fysiweb app
-- 
cgit v1.2.3