diff options
Diffstat (limited to 'services')
| -rw-r--r-- | services/miniflux.nix | 64 |
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; + }; + }; +} |
