# Miniflux

Minimalist feed reader written in Go with a web interface.

- Replaces: [Feedly](https://openlogs.fyi/alternatives/feedly)
- Summary: Paid feed reader services, such as Feedly.
- Stack: Go (language), PostgreSQL (database)
- Deployment: docker_compose
- License: Apache-2.0 (osi) [source](https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/LICENSE)
- Business model: unknown. The README at the pinned commit does not state a business model, so it stays unknown. ([source](https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/README.md), read 2026-10-22)
- 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.
- Requirements: not stated
- Repository: [miniflux/v2](https://github.com/miniflux/v2)

## Install

1. Docker with the Compose plugin ([source](https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/contrib/docker-compose/basic.yml))

   ```text
   A host with Docker and the Docker Compose plugin. This entry runs from a compose file.
   ```

2. Save the compose file as compose.yaml ([source](https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/contrib/docker-compose/basic.yml))

   ```yaml
   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:
   ```

3. Set the values the compose file needs ([source](https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/contrib/docker-compose/basic.yml))

   ```text
   Replace the placeholder values listed under Gotchas.
   ```

4. Start it ([source](https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/contrib/docker-compose/basic.yml))

   ```bash
   docker compose up -d
   ```

5. Open the app ([source](https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/contrib/docker-compose/basic.yml))

   ```text
   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. ([source](https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/contrib/docker-compose/basic.yml), checked 2026-10-22)
- The compose file has placeholder values: Placeholder values: POSTGRES_PASSWORD is "secret" (db). ([source](https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/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. ([source](https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/contrib/docker-compose/basic.yml), checked 2026-10-22)

### Signals

Computed from a GitHub snapshot taken 2026-10-22.

- Open issues and pull requests: 279
- Stars: 9815, forks: 950
- Last push: 2026-10-21 (0 days ago)
- Latest release: 2.3.4 on 2026-10-20 (1 days ago)

## Sources

- [Repository: https://github.com/miniflux/v2](https://github.com/miniflux/v2)
- [License: https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/LICENSE](https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/LICENSE)
- [Business model: https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/README.md](https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/README.md)
- [Compose file: https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/contrib/docker-compose/basic.yml](https://github.com/miniflux/v2/blob/8de58f8b6fe11efb5b86024f64276e31b36f4572/contrib/docker-compose/basic.yml)

---
Canonical: https://openlogs.fyi/tools/miniflux  
Last updated: 2026-10-22
