Reading and bookmarks, checked 2026-09-07
Miniflux: Docker configuration reference
Self-hosted minimalist feed reader with full-text search, a small REST API and no JavaScript by default.
At a glance
- Image:
docker.io/miniflux/miniflux - Tags:
latest,2.3.3,2.3.3-distroless,nightly - Licence: Apache-2.0
- Source: https://github.com/miniflux/v2
- Docs: https://miniflux.app/docs/
Ports
| Port | What listens | Source |
|---|---|---|
8080 | Default HTTP listener inside the container, overridable with LISTEN_ADDR or PORT. | source for port 8080 |
Environment variables
| Variable | Required | What it does | Example | Source |
|---|---|---|---|---|
BASE_URL | No | Base URL used to generate every HTML link and the cookie path. Defaults to http://localhost, which is wrong the moment the app sits behind a proxy on a real domain. | https://reader.example.com | source for BASE_URL |
DATABASE_URL | Yes | PostgreSQL connection string. Defaults to a local postgres/postgres credential pair that will not match a real database. | postgres://miniflux:secret@db/miniflux?sslmode=disable | source for DATABASE_URL |
RUN_MIGRATIONS | No | Runs database migrations on startup. Disabled by default, so a fresh database is never initialised unless this is set at least once. | 1 | source for RUN_MIGRATIONS |
CREATE_ADMIN | No | Creates an admin user from ADMIN_USERNAME and ADMIN_PASSWORD on startup. Both variables can be removed once the account exists. | 1 | source for CREATE_ADMIN |
TRUSTED_REVERSE_PROXY_NETWORKS | No | CIDR list allowed to set the proxy authentication header plus X-Forwarded-For, X-Forwarded-Proto and X-Real-Ip. Left empty, those headers from the proxy are ignored. | 172.16.0.0/12 | source for TRUSTED_REVERSE_PROXY_NETWORKS |
Volumes that must persist
| Path | What is in it | Source |
|---|---|---|
/var/lib/postgresql/data (db) | The entire dataset. Miniflux itself is stateless; everything lives in Postgres. Note the mount path changes to /var/lib/postgresql on the Postgres 18 image. | source for /var/lib/postgresql/data |
Behind a reverse proxy
- Route the domain to container port 8080. source for this reverse-proxy note
- Set BASE_URL to the public address. Left at its http://localhost default, every generated feed link, entry link and cookie path points at the wrong host once behind a proxy. source for this reverse-proxy note
- RUN_MIGRATIONS and CREATE_ADMIN only need to run once. Leaving CREATE_ADMIN set does not recreate the account, but there is no harm removing both after first boot. source for this reverse-proxy note
What it needs alongside it
| Dependency | Why | Source |
|---|---|---|
| PostgreSQL | Required application database. The documented compose example pairs Miniflux with postgres:18. | source for PostgreSQL |
Release timeline
| Version | Date | Breaking | What changed | Source |
|---|---|---|---|---|
2.3.3 | 2026-07-24 | No | Adds feed and entry language detection from RSS and Atom language elements. | source for release 2.3.3 |
2.3.2 | 2026-06-27 | No | Improves full-text search with websearch_to_tsquery, supporting quoted phrases and negation. | source for release 2.3.2 |
2.3.1 | 2026-05-29 | No | Security release fixing an OAuth account binding vulnerability and an open redirect issue. | source for release 2.3.1 |
2.3.0 | 2026-05-16 | No | Restricts WebAuthn login to discoverable credentials to prevent username enumeration before password verification. | source for release 2.3.0 |
2.2.19 | 2026-04-05 | No | Removes sensitive values from log messages and hardens OAuth2 by verifying OIDC ID token signatures. | source for release 2.2.19 |
If it is not coming up
- ECONNREFUSED / ENOTFOUND / connection to server at "postgres" port 5432 failed
- 502 Bad Gateway (Traefik) — build succeeds and container runs, but your-domain.com returns 502 Bad Gateway
- Backing Up Postgres on Coolify, Then Proving It
Read from the upstream documentation, repository and container registry by Keita Emsden on 2026-09-07. Every row links the page it came from. Upstream changes without telling anyone, so check the source link before you rely on a value.