summary refs log tree commit diff
path: root/services/miniflux.nix
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2024-12-08 17:52:07 +0100
committerMel <einebeere@gmail.com>2024-12-08 17:52:07 +0100
commit7bef5043b9da0ff257d46a6851389330dbdf7da5 (patch)
treec41e6af100c229da109bd710dd6b14a1768a6469 /services/miniflux.nix
parent53208759dbfafc2909c93ccaace32b5b8951abad (diff)
downloadnetwork-7bef5043b9da0ff257d46a6851389330dbdf7da5.tar.zst
network-7bef5043b9da0ff257d46a6851389330dbdf7da5.zip
Add miniflux feed aggregator and replace FreshRSS
Signed-off-by: Mel <einebeere@gmail.com>
Diffstat (limited to 'services/miniflux.nix')
-rw-r--r--services/miniflux.nix64
1 files changed, 64 insertions, 0 deletions
diff --git a/services/miniflux.nix b/services/miniflux.nix
new file mode 100644
index 0000000..9b4f972
--- /dev/null
+++ b/services/miniflux.nix
@@ -0,0 +1,64 @@
+{ me, pkgs, auxiliaryPkgs, ... }:
+
+let
+  inherit (pkgs) miniflux dockerTools;
+  inherit (auxiliaryPkgs) common;
+
+  minifluxDir = "/srv/miniflux";
+  minifluxLocalPort = 9149;
+
+  minifluxImage = dockerTools.streamLayeredImage {
+    name = "miniflux";
+    tag = miniflux.version;
+    fromImage = common.alpine.base;
+
+    contents = [ miniflux ];
+  };
+
+in
+{
+  foundation.service.miniflux = {
+    miniflux = {
+      image = minifluxImage;
+      ports = [ minifluxLocalPort ];
+
+      environment = {
+        PORT = toString minifluxLocalPort;
+        BASE_URL = "https://${me.tailscale.domain}/miniflux/";
+
+        CREATE_ADMIN = "1";
+        ADMIN_USERNAME = "mel";
+        ADMIN_PASSWORD = "X98ji!9aoJNfCB";
+
+        DATABASE_URL = "postgres://miniflux:miniflux@db/miniflux?sslmode=disable";
+        RUN_MIGRATIONS = "1";
+      };
+
+      entrypoint = "${miniflux}/bin/miniflux";
+      workdir = "/etc/miniflux";
+    };
+
+    db = {
+      fullImage = common.postgres17;
+
+      volumes = [ [ "${minifluxDir}/pgdata" "/var/lib/postgresql/data" ] ];
+
+      environment = {
+        "POSTGRES_DATABASE" = "miniflux";
+        "POSTGRES_USER" = "miniflux";
+        "POSTGRES_PASSWORD" = "miniflux";
+      };
+    };
+  };
+
+  services.nginx.virtualHosts.renard.locations = {
+    "/miniflux" = {
+      return = "301 $scheme://$host$request_uri/";
+    };
+
+    "/miniflux/" = {
+      proxyPass = "http://127.0.0.1:${toString minifluxLocalPort}/miniflux/";
+      recommendedProxySettings = true;
+    };
+  };
+}