Thanks to visit codestin.com
Credit goes to github.com

Skip to content

rickoneeleven/miniflux

 
 

Repository files navigation

Miniflux at rss.pinescore.com

DATETIME of last agent review: 25 Feb 2026 16:41 (Europe/London)

Self-hosted Miniflux RSS reader behind Apache/Virtualmin at https://rss.pinescore.com, backed by PostgreSQL and managed as a systemd service.

Stack

  • OS: Debian 12 (bookworm)
  • Go: use /usr/local/go/bin/go (currently go1.25.4); /usr/bin/go is go1.19.x and must not be used
  • DB: PostgreSQL 15 (Debian packages)
  • Process manager: systemd (miniflux.service)
  • Reverse proxy: Apache 2 (Virtualmin vhost)

Quick Start (developer)

  1. Build: PATH=/usr/local/go/bin:$PATH make miniflux
  2. Run (requires a PostgreSQL DB): PATH=/usr/local/go/bin:$PATH DATABASE_URL=postgres://miniflux:<password>@localhost/miniflux?sslmode=disable RUN_MIGRATIONS=1 go run main.go
  3. Tests: PATH=/usr/local/go/bin:$PATH make test

First-Time Server Setup (rss.pinescore.com)

  1. PostgreSQL
    • Create role + DB (example):
      • sudo -u postgres createuser -P miniflux
      • sudo -u postgres createdb -O miniflux -E UTF8 miniflux
  2. Config file
    • Create /etc/miniflux.conf (mode 600, owned by root) with the minimum:
      • DATABASE_URL=postgres://miniflux:<password>@localhost/miniflux?sslmode=disable
      • RUN_MIGRATIONS=1
      • LISTEN_ADDR=127.0.0.1:8180
      • BASE_URL=https://rss.pinescore.com
    • Optional one-time admin bootstrap: set CREATE_ADMIN=1 and ADMIN_*, then remove ADMIN_PASSWORD and set CREATE_ADMIN=0 after first login.
  3. Build and install the binary
    • cd /home/loopnova/domains/rss.pinescore.com/public_html
    • git pull
    • PATH=/usr/local/go/bin:$PATH make miniflux
    • sudo install -o root -g root -m 0755 miniflux /usr/local/bin/miniflux
  4. systemd service
    • Ensure the service user exists (required by the unit User=miniflux): id -u miniflux >/dev/null 2>&1 || sudo useradd --system --home /var/lib/miniflux --shell /usr/sbin/nologin miniflux
    • Unit file lives at /etc/systemd/system/miniflux.service (based on packaging/systemd/miniflux.service, adjusted for /usr/local/bin/miniflux).
    • Enable and start:
      • sudo systemctl daemon-reload
      • sudo systemctl enable --now miniflux
  5. Apache reverse proxy (Virtualmin)
    • Vhost: /etc/apache2/sites-available/rss.pinescore.com.conf
    • Required modules: proxy, proxy_http, headers
    • Validate and reload:
      • sudo apachectl configtest
      • sudo systemctl reload apache2

Configuration Notes (prod)

  • LISTEN_ADDR defaults to 127.0.0.1:8080 in code; this host uses 127.0.0.1:8180 behind Apache.
  • Feed polling is intentionally aggressive on this instance. See ops/POLLING.md for the exact knobs and the error backoff behavior.

Common Operations

  • Rebuild and restart: PATH=/usr/local/go/bin:$PATH make miniflux && sudo install -m 0755 miniflux /usr/local/bin/miniflux && sudo systemctl restart miniflux
  • Logs: sudo journalctl -u miniflux -n 200 --no-pager
  • Service status: sudo systemctl status miniflux

Troubleshooting

  • Wrong Go version used (go1.19.x) -> ensure PATH=/usr/local/go/bin:$PATH for all make/go commands.
  • Apache shows 502/504 -> confirm Miniflux is listening on 127.0.0.1:8180 and the vhost proxies to the same address/port.
  • Auth/database errors -> confirm /etc/miniflux.conf DATABASE_URL points to an existing role/DB and credentials are correct.
  • Admin password keeps resetting -> ensure CREATE_ADMIN=0 and remove ADMIN_PASSWORD after bootstrap.

Links

  • Site: https://rss.pinescore.com
  • Ops docs: ops/ (agent awareness)
  • Upstream docs: https://miniflux.app/docs/

About

Minimalist and opinionated feed reader

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 86.1%
  • HTML 7.7%
  • JavaScript 3.0%
  • CSS 1.6%
  • Roff 0.6%
  • Bru 0.5%
  • Other 0.5%