Files
esh-pfi-infrastructure/stacks/miniflux/.env.example
T
vh 6c96ffef01 stacks/miniflux: self-hosted RSS reader + News group on homepage
Adds Miniflux on ana-docker as the unified inbox for tech blogs,
Hacker News, lobste.rs, and selected subreddits. Reddit serves clean
RSS for any sub at https://reddit.com/r/<sub>/.rss, so subreddit
follows fold into the same inbox as everything else — no Reddit
account needed, no manual polling.

Stack:
  stacks/miniflux/
    compose.yaml          — miniflux + bundled postgres:16
    .env.example          — placeholders for DB password + admin user
    starter-feeds.opml    — initial subscriptions (HN, Lobste.rs,
                            r/selfhosted, r/homelab, r/LocalLLaMA, r/nba)
    README.md             — deploy / OPML import / r/nba spoiler
                            block-list / backup / update flow

Postgres bundled with the stack (not pfi-postgres) — single-user RSS
DB is tiny and the bundle keeps the dependency graph flat.

Homepage gets a new 'News' group at the TOP of the Main tab (above
Monitoring) so the Miniflux card sits prominently. The card itself
auto-discovers via the homepage.* labels on the miniflux container.

Per-feed block-list rule for r/nba documented in README — Reddit's
RSS titles for game threads include scores ("Lakers 108 - Warriors
102 [Final]") which spoil the game; a regex catches the score
patterns and skips those entries while keeping discussion/highlights.

Deploy:
  scripts/elway ana-docker --playbook playbooks/deploy-miniflux.yaml

Then edit /opt/docker/compose/miniflux/.env on the host to fill in
the two CHANGE_ME passwords and `docker compose up -d` again.
2026-04-26 11:52:50 -07:00

38 lines
2.1 KiB
Bash

# Miniflux stack tunables. Copy to `.env` on ana-docker before deploying
# and fill in the two passwords below.
# ── image pin ────────────────────────────────────────────────────────
# Pin to a tagged release. Bump deliberately — Miniflux ships breaking
# config changes occasionally (rare, but they exist).
MINIFLUX_VERSION=2.2.5
# ── network ──────────────────────────────────────────────────────────
# Host port. Container listens on 8080 internally.
# Reserved on ana-docker: 5001 Dockge, 7878 task-board, 8000 (other
# stacks), 8025/8088/8090/8100/8380/8780 (various). 8080 free.
MINIFLUX_PORT=8080
# Bind address. 0.0.0.0 exposes on all host interfaces; 127.0.0.1
# would restrict to ana-docker-local only.
MINIFLUX_BIND=0.0.0.0
# ── database (postgres bundled with this stack) ──────────────────────
# Strong password for the miniflux postgres user. Generate fresh:
# openssl rand -base64 24
# This password is only seen by the two containers in this stack
# (miniflux and miniflux-db share an internal docker network) so
# rotation isn't urgent, but don't reuse another service's password.
MINIFLUX_DB_PASSWORD=CHANGE_ME
# ── admin user (auto-created on first start) ─────────────────────────
# CREATE_ADMIN=1 in compose.yaml means the container will create this
# user the first time it starts against an empty DB. Subsequent starts
# are no-ops on this. Change the password from inside the UI later if
# you want — this var only matters for the initial bootstrap.
MINIFLUX_ADMIN_USERNAME=lkraven
MINIFLUX_ADMIN_PASSWORD=CHANGE_ME
# ── logging ──────────────────────────────────────────────────────────
# error / warning / info / debug
MINIFLUX_LOG_LEVEL=info