summaryrefslogtreecommitdiff
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
parent53208759dbfafc2909c93ccaace32b5b8951abad (diff)
downloadnetwork-7bef5043b9da0ff257d46a6851389330dbdf7da5.tar.zst
network-7bef5043b9da0ff257d46a6851389330dbdf7da5.zip
Add miniflux feed aggregator and replace FreshRSS
Signed-off-by: Mel <einebeere@gmail.com>
-rw-r--r--machines/renard/default.nix2
-rw-r--r--pkgs/common.nix16
-rw-r--r--services/miniflux.nix64
3 files changed, 81 insertions, 1 deletions
diff --git a/machines/renard/default.nix b/machines/renard/default.nix
index ebb06c1..a1d90fe 100644
--- a/machines/renard/default.nix
+++ b/machines/renard/default.nix
@@ -13,7 +13,7 @@
../../services/cgit.nix
../../services/minecraft.nix
- ../../services/freshrss.nix
+ ../../services/miniflux.nix
../../services/irc
];
diff --git a/pkgs/common.nix b/pkgs/common.nix
index 7493f41..cf99b77 100644
--- a/pkgs/common.nix
+++ b/pkgs/common.nix
@@ -75,6 +75,22 @@ let
x86.sha256 = "0cfmp4v1a4b2m21ljsc3f3kn23rl9nki6z37ks9jclzxh9hy629n";
arm.sha256 = "0wydmscp4znjdflycvjqwjfry9crizhav0wc2hnajbyvk4ql32h8";
};
+
+ postgres16 = mkImage {
+ name = "postgres";
+ tag = "16-alpine";
+ digest = "sha256:52bba373df3c13594014b5e9ccc9f3c2cdb2221d50db1a91ec64570819f18aba";
+ x86.sha256 = "18gfc7k9gkdd45vmwgrngf10yw5cmbnvxanp3nrs5d02jz602ibm";
+ arm.sha256 = "08i3n6kykhp0wd255xvkrpgv1n6izjm9gc57dg6nz4yz3yjnybzh";
+ };
+
+ postgres17 = mkImage {
+ name = "postgres";
+ tag = "17-alpine";
+ digest = "sha256:e7897baa70dae1968d23d785adb4aeb699175e0bcaae44f98a7083ecb9668b93";
+ x86.sha256 = "128hxalk74wll1i34j6rrmdssmf2rlm67kd302xcqmrp8v60n6i7";
+ arm.sha256 = "1lz03jcrrky94h79spgxxamihbll2y7vphmpv54pg47506mikba0";
+ };
};
soloOrDuoPort =
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;
+ };
+ };
+}