summaryrefslogtreecommitdiff
path: root/services
diff options
context:
space:
mode:
Diffstat (limited to 'services')
-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;
+ };
+ };
+}