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: 27/11/2025 16:45 GMT

Self-hosted Miniflux RSS reader backed by PostgreSQL, running behind Apache/Virtualmin at https://rss.pinescore.com.

Quick Start

  • Prereqs: Go 1.25.x from /usr/local/go (Debian golang-go 1.19 is installed but must not be used) and PostgreSQL 15+.
  • Setup: PATH=/usr/local/go/bin:$PATH make miniflux (builds the miniflux binary from the repo root with the correct Go toolchain).
  • Run (local dev): PATH=/usr/local/go/bin:$PATH DATABASE_URL=postgres://miniflux:<password>@localhost/miniflux?sslmode=disable RUN_MIGRATIONS=1 go run main.go.

Development

  • Test: PATH=/usr/local/go/bin:$PATH make test (runs Go tests with the correct Go version and race detection).
  • Lint/format: PATH=/usr/local/go/bin:$PATH make lint (go vet + gofmt + golangci-lint if installed).
  • Useful: PATH=/usr/local/go/bin:$PATH make integration-test (starts a temporary instance and runs API integration tests against PostgreSQL).

Architecture

  • main.go and internal/cli — CLI entrypoint that parses flags, loads configuration, and starts the HTTP server and background workers.
  • internal/http — HTTP handlers, routing, authentication, and UI endpoints.
  • internal/database and internal/storage — PostgreSQL access and persistence helpers.
  • internal/reader, internal/worker, internal/mediaproxy — feed fetching, background jobs, and media proxying.
  • client and internal/template/templates — front-end assets and HTML templates bundled into the binary.

Configuration

  • DATABASE_URL (required) — PostgreSQL connection string (postgres://miniflux:<password>@localhost/miniflux?sslmode=disable on this host).
  • RUN_MIGRATIONS (recommended on first run) — when 1, applies database migrations automatically.
  • LISTEN_ADDR — bind address for the HTTP server (production uses 127.0.0.1:8180 behind Apache).
  • BASE_URL — external URL Miniflux should use when generating links (https://rss.pinescore.com here).
  • CREATE_ADMIN, ADMIN_USERNAME, ADMIN_PASSWORD — optional one-time bootstrap of the initial admin account.
  • Feed polling on this instance is configured for an aggressive near-real-time cadence with POLLING_FREQUENCY=10 (seconds), SCHEDULER_ROUND_ROBIN_MIN_INTERVAL=1 (minute), POLLING_LIMIT_PER_HOST=2, and POLLING_RESPECT_FEED_TTL=0. With this configuration the background scheduler wakes up roughly every 10 seconds and refreshes feeds on an approximately one-minute cadence in practice.

Troubleshooting

  • HTTP server fails with “bind: address already in use” → update LISTEN_ADDR to a free port or stop the conflicting service, then restart Miniflux.
  • Login keeps failing for the admin user → reset the password via the UI and ensure CREATE_ADMIN=0 so the environment is not overwriting it.
  • Service will not start under systemd → run sudo systemctl status miniflux and sudo journalctl -u miniflux to inspect logs and check for database or config errors.
  • Database-related errors (e.g. “database does not exist” or auth failures) → confirm DATABASE_URL matches an existing PostgreSQL database and user.

Deployment

  • This host runs Miniflux as a miniflux systemd service behind Apache/Virtualmin; see ops/deployment.md for PostgreSQL, systemd, and vhost configuration used on rss.pinescore.com.

Links

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%