diff options
| author | Mel <einebeere@gmail.com> | 2024-12-08 17:52:07 +0100 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2024-12-08 17:52:07 +0100 |
| commit | 7bef5043b9da0ff257d46a6851389330dbdf7da5 (patch) | |
| tree | c41e6af100c229da109bd710dd6b14a1768a6469 | |
| parent | 53208759dbfafc2909c93ccaace32b5b8951abad (diff) | |
| download | network-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.nix | 2 | ||||
| -rw-r--r-- | pkgs/common.nix | 16 | ||||
| -rw-r--r-- | services/miniflux.nix | 64 |
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; + }; + }; +} |
