Miniflux
Minimalist feed reader written in Go with a web interface.
- Replaces
-
Paid feed reader services, such as Feedly.
All open-source alternatives to Feedly
- Difficulty
-
Difficulty: Easy
2 services (1 database or broker: postgres), 1 volume mount, no env values to set, no elevated host access. Heuristic score 2 of 11: easy.
- Stack
Go (language), PostgreSQL (database)
- Deployment
docker_compose
- Requirements
Not stated.
- License
-
Apache-2.0(OSI-approved open source) - Business model
-
Unknown
The README at the pinned commit does not state a business model, so it stays unknown.
Source: github.com/miniflux/v2/blob/8de58f8/README.md, read on .
- Repository
GitHub stats
- Stars
- 9,815
- Forks
- 950
- Open issues and pull requests
- 279
- Last push
- 2026-10-21
- Latest release
- 2.3.4
- Released
- 2026-10-20
From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as Apache-2.0.
Compose file
services:
miniflux:
image: ${MINIFLUX_IMAGE:-miniflux/miniflux:latest}
container_name: miniflux
restart: always
ports:
- "80:8080"
depends_on:
db:
condition: service_healthy
environment:
- DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=test123
- DEBUG=1
# Optional health check:
# healthcheck:
# test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"]
db:
image: postgres:latest
container_name: postgres
restart: always
environment:
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=secret
- POSTGRES_DB=miniflux
volumes:
- miniflux-db:/var/lib/postgresql
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
volumes:
miniflux-db:
From the app's own repository: github.com/miniflux/v2/blob/8de58f8/contrib/docker-compose/basic.yml.
Compose file from the app repository.
Install
- Docker with the Compose plugin (github.com/miniflux/v2/blob/8de58f8/contrib/docker-compose/basic.yml)
A host with Docker and the Docker Compose plugin. This entry runs from a compose file.
- Save the compose file as compose.yaml (github.com/miniflux/v2/blob/8de58f8/contrib/docker-compose/basic.yml)
Use the compose file shown above.
- Set the values the compose file needs (github.com/miniflux/v2/blob/8de58f8/contrib/docker-compose/basic.yml)
Replace the placeholder values listed under Gotchas.
- Start it (github.com/miniflux/v2/blob/8de58f8/contrib/docker-compose/basic.yml)
docker compose up -d - Open the app (github.com/miniflux/v2/blob/8de58f8/contrib/docker-compose/basic.yml)
Open http://localhost:80. The compose file publishes host port 80 for the miniflux service.
Compose file check: config_ok on 2026-10-22.
Gotchas and maintenance
Gotchas
- Some images use the latest tag or no tag. Images without a pinned version: miniflux: ${MINIFLUX_IMAGE:-miniflux/miniflux:latest}, db: postgres:latest. A later pull can get a different version. (github.com/miniflux/v2/blob/8de58f8/contrib/docker-compose/basic.yml, checked 2026-10-22)
- The compose file has placeholder values. Placeholder values: POSTGRES_PASSWORD is "secret" (db). (github.com/miniflux/v2/blob/8de58f8/contrib/docker-compose/basic.yml, checked 2026-10-22)
- The compose file publishes host ports. Host ports: 80 (miniflux). A port without a host address listens on all host network interfaces. (github.com/miniflux/v2/blob/8de58f8/contrib/docker-compose/basic.yml, checked 2026-10-22)
Signals
- Open issues and pull requests: 279
- Last push: 2026-10-21 (0 days before this page was built)
- Latest release: 2.3.4 on 2026-10-20 (1 days before this page was built)