aboutsummaryrefslogtreecommitdiff
path: root/modules/miniflux.nix
diff options
context:
space:
mode:
authorKaran Jayachandra <karan.jayachandra@nxp.com>2026-07-17 14:34:18 +0200
committerKaran Jayachandra <karan.jayachandra@nxp.com>2026-07-17 14:34:18 +0200
commit0d0788cd4ee378fba19e47a2c5d5527c196b65e0 (patch)
tree0fbd0e2644e94e0227005947004541fd4ff4d53e /modules/miniflux.nix
Initial commit
Diffstat (limited to 'modules/miniflux.nix')
-rw-r--r--modules/miniflux.nix33
1 files changed, 33 insertions, 0 deletions
diff --git a/modules/miniflux.nix b/modules/miniflux.nix
new file mode 100644
index 0000000..8020a75
--- /dev/null
+++ b/modules/miniflux.nix
@@ -0,0 +1,33 @@
+{ config, ... }:
+
+# Miniflux RSS/Atom reader.
+# PostgreSQL is enabled automatically by the NixOS miniflux module.
+# The admin user is created on first startup from the sops credentials file.
+#
+# Credentials file format (stored encrypted in secrets/secrets.yaml):
+# ADMIN_USERNAME=admin
+# ADMIN_PASSWORD=your-strong-password-here
+{
+ services.miniflux = {
+ enable = true;
+
+ # The NixOS module reads ADMIN_USERNAME and ADMIN_PASSWORD from this file
+ # and sets CREATE_ADMIN=1 on first run to seed the database.
+ adminCredentialsFile = config.sops.secrets."miniflux/admin".path;
+
+ config = {
+ # Listen only on localhost; Caddy handles public HTTPS
+ LISTEN_ADDR = "127.0.0.1:8080";
+ BASE_URL = "https://rss.karanj.com";
+
+ # Log level: info in production
+ LOG_LEVEL = "info";
+
+ # Polling: fetch new articles every 15 minutes
+ POLLING_FREQUENCY = "15";
+
+ # Cleanup old read articles after 90 days
+ CLEANUP_ARCHIVE_READ_DAYS = "90";
+ };
+ };
+}