Miniflux logo

Miniflux

Minimalist and opinionated feed reader

Alternative to: feedly, inoreader, newsblur


Miniflux is a minimalist, opinionated feed reader that supports Atom, RSS, and JSON feeds. It ships as a single lightweight Go binary with full-text search, OPML import/export, and built-in privacy protections like tracker and ad stripping. Miniflux has no telemetry, no ads, and is easy to self-host with an official Docker image.

Miniflux Docker Compose example

Self-host Miniflux on your own server, homelab, or VPS starting from this Docker Compose example. It runs Miniflux in Docker containers using the official miniflux/miniflux:latest, postgres:17-alpine images, with persistent volumes and automatic restarts preconfigured. Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.

services:
  miniflux:
    image: miniflux/miniflux:latest
    depends_on:
      db:
        condition: service_healthy
    environment:
      # PostgreSQL connection string. The password must match the db service below.
      DATABASE_URL: "postgres://miniflux:changeme@db/miniflux?sslmode=disable"
      # Run database schema migrations automatically on startup.
      RUN_MIGRATIONS: "1"
      # Create the initial admin user on first startup.
      CREATE_ADMIN: "1"
      # Username for the initial admin account.
      ADMIN_USERNAME: "admin"
      # Password for the initial admin account. Change this before deploying.
      ADMIN_PASSWORD: "changeme"
    healthcheck:
      test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"]
    restart: unless-stopped

  db:
    image: postgres:17-alpine
    environment:
      # PostgreSQL user for the Miniflux database.
      POSTGRES_USER: "miniflux"
      # PostgreSQL password. Must match the password used in DATABASE_URL above.
      POSTGRES_PASSWORD: "changeme"
      # Name of the database Miniflux connects to.
      POSTGRES_DB: "miniflux"
    volumes:
      - db_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "miniflux"]
      interval: 10s
      start_period: 30s
    restart: unless-stopped

volumes:
  db_data:

Values set to changeme are required — replace them with your own values before starting Miniflux.

Prefer a managed setup? WinterFlow installs, configures, and updates Miniflux for you using this same Docker Compose configuration.