Zum Hauptinhalt springen
S-EDV news
← Alle News
IT-Branche 02.09.2026 · 5 min Lesezeit

Miniflux 2.3.3 per Docker Compose installieren

Miniflux ist ein minimalistischer, selbst gehosteter Feed-Reader auf Basis von Go und PostgreSQL. Diese Anleitung zeigt die Installation von Miniflux 2.3.3 per Docker Compose mit sicheren Secrets in einer .env-Datei, Healthchecks für Miniflux und die Datenbank, persistenten Volumes sowie das Vorgehen für Updates und Backups. Ergänzend wird kurz eingeordnet, wann Miniflux gegenüber dem bereits auf S-EDV beschriebenen FreshRSS die bessere Wahl ist.

Hero-Bild: Miniflux 2.3.3 als selbst gehosteter RSS-Reader per Docker Compose, mit Server-Icon, RSS-Feed-Karten und Open-Source-Badge

Ein kleines Team betreibt zehn Blogs, drei Herstellerfeeds und einen Sicherheits-Newsletter im Auge. Die Postfach-Sammlung wird unübersichtlich, RSS-Apps in der Cloud lesen jeden Klick mit, Trackingpixel in den Artikeln laufen munter mit. Wer die eigene Nachrichtenlage selbst kontrollieren will, kommt an einem selbst gehosteten Feed-Reader kaum vorbei. Miniflux ist dafür ein schlank gehaltener Kandidat: eine Go-Binary, eine PostgreSQL-Datenbank, fertig. Dieser Artikel zeigt die Installation von Miniflux 2.3.3 per Docker Compose inklusive Secrets, Healthchecks, Volumes sowie Update- und Backup-Vorgehen.

Was ist Miniflux?

Miniflux ist ein quelloffener, selbst gehosteter Feed-Reader, geschrieben in Go mit PostgreSQL als einziger Datenbankabhängigkeit. Das Projekt bezeichnet sich selbst als minimalistisch und meinungsstark: keine Themes-Galerie, kein Plugin-Marktplatz, dafür ein kompakter, wartbarer Kern. Unterstützt werden RSS, Atom und JSON Feed, dazu OPML-Import und OPML-Export für die Migration aus anderen Readern. Eine eingebaute Volltextsuche durchsucht gespeicherte Artikel, die Oberfläche liegt unter anderem auf Deutsch vor. Miniflux entfernt beim Abruf automatisch Trackingpixel und bekannte Tracking-Parameter aus Links, blockiert das Nachladen von externem JavaScript und bereinigt den HTML-Inhalt vor der Anzeige. Für Automatisierung stehen eine REST API sowie kompatible Fever- und Google-Reader-API-Endpunkte bereit, mobile Apps laufen dadurch oft ohne Änderung weiter. Die Dokumentation listet mehr als 25 Integrationen für externe Dienste.

Was bringt Miniflux 2.3.3?

Version 2.3.3 wurde laut GitHub-Release-Seite am 24. Juli 2026 veröffentlicht. Zentrale Neuerung ist die Spracherkennung für Feeds und Einträge: Miniflux liest die vom Feed oder Artikel deklarierte Sprache aus language in RSS, dc:language in RDF/RSS 1.0, xml:lang in Atom und dem Sprachfeld von JSON Feed und speichert sie zu Feed und Eintrag. Einträge ohne eigene Sprachangabe übernehmen die Sprache des Feeds. Titel und Inhalt erhalten dadurch ein passendes lang-Attribut, was Vorlesefunktionen, Silbentrennung und Übersetzungsvorschläge verbessert. Das Feld ist zusätzlich über die REST API und den Go-Client abrufbar. Ergänzend erkennt die Feed-Discovery jetzt auch Feeds von GitHub Pages, TLS-Zertifikate werden bei laufendem Prozess neu geladen, sobald sich die Zertifikatsdatei ändert.

Miniflux oder FreshRSS: kurze Einordnung

Auf S-EDV steht bereits eine Anleitung für die native Installation von FreshRSS unter Ubuntu mit Apache, PHP und SQLite. FreshRSS bringt mehr Oberfläche mit: Theming, umfangreiche Filterregeln, größere Nutzerverwaltung. Miniflux verfolgt den Gegenpol: reduzierte Bedienoberfläche, feste Datenbankwahl mit PostgreSQL, kleinerer Funktionsumfang, der wenig Angriffsfläche und geringen Wartungsaufwand bedeutet. Wer viele Anpassungen an der Oberfläche will, ist mit FreshRSS besser bedient. Wer eine Instanz will, die einmal per Compose steht und danach kaum Aufmerksamkeit braucht, findet in Miniflux den schlankeren Weg. Ein Wechsel ist über OPML-Export und -Import möglich.

Voraussetzungen

  • Docker Engine mit Compose-Plugin (Befehl docker compose).
  • Grundkenntnisse zu Docker Compose, siehe Docker Compose Grundlagen und Stacks.
  • Freier Port auf dem Host, hier Port 8080, per Reverse Proxy mit TLS abzusichern.
  • Speicherplatz für PostgreSQL je nach Feedanzahl und Aufbewahrungsdauer.

Docker-Compose-Datei für Miniflux

Die folgende Datei orientiert sich an der offiziellen Docker-Compose-Referenz der Miniflux-Dokumentation und ergänzt sie um Healthchecks für beide Dienste sowie eine saubere Trennung von Secrets über eine .env-Datei. Zu Non-Root-Ausführung und Secrets-Handling in Compose-Stacks siehe zusätzlich Docker Compose absichern: Secrets, Healthchecks, Non-Root.

services:
  miniflux:
    image: miniflux/miniflux:2.3.3
    restart: unless-stopped
    ports:
      - "127.0.0.1:8080:8080"
    depends_on:
      db:
        condition: service_healthy
    environment:
      - DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db/${POSTGRES_DB}?sslmode=disable
      - RUN_MIGRATIONS=1
      - CREATE_ADMIN=1
      - ADMIN_USERNAME=${ADMIN_USERNAME}
      - ADMIN_PASSWORD=${ADMIN_PASSWORD}
    healthcheck:
      test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 30s

  db:
    image: postgres:18
    restart: unless-stopped
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    volumes:
      - miniflux-db:/var/lib/postgresql
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "${POSTGRES_USER}"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s

volumes:
  miniflux-db:

Hinweis zur Postgres-Version: Postgres 18 legt das Datenverzeichnis unter /var/lib/postgresql ab, Postgres 17 und älter unter /var/lib/postgresql/data. Wer eine ältere Version einsetzt, muss den Volume-Pfad anpassen, sonst bleibt die Datenbank nach einem Neustart leer.

Die .env-Datei mit sicheren Secrets

Zugangsdaten gehören nicht in die docker-compose.yml, sondern in eine separate .env-Datei im selben Verzeichnis. Diese Datei sollte nicht ins Versionsverwaltungssystem gelangen.

# .env fuer Miniflux Compose Stack
POSTGRES_USER=miniflux
POSTGRES_PASSWORD=CHANGE_ME_LONG_RANDOM_PASSWORD
POSTGRES_DB=miniflux
ADMIN_USERNAME=admin
ADMIN_PASSWORD=CHANGE_ME_LONG_RANDOM_PASSWORD

Beide Passwörter zufällig und lang generieren, zum Beispiel mit openssl rand -base64 32. Nach dem ersten Start können CREATE_ADMIN, ADMIN_USERNAME und ADMIN_PASSWORD laut Dokumentation entfernt werden, der Admin-Account existiert dann bereits. Rechte auf die Datei einschränken:

chmod 600 .env

Start, Zugriff und laufender Betrieb

Mit beiden Dateien im gleichen Verzeichnis lässt sich der Stack starten:

docker compose up -d
docker compose ps
docker compose logs -f miniflux

Nach dem Start ist die Oberfläche unter http://127.0.0.1:8080 erreichbar. Für den Betrieb sollte ein Reverse Proxy mit TLS-Terminierung vorgeschaltet werden, damit Zugangsdaten nicht unverschlüsselt übertragen werden. Die deutsche Sprache lässt sich in den Benutzereinstellungen auswählen.

UmgebungsvariableZweck
DATABASE_URLVerbindungsstring zur PostgreSQL-Datenbank
RUN_MIGRATIONSFührt beim Start die SQL-Migrationen der Datenbank aus
CREATE_ADMINLegt beim ersten Start einen Administrator-Account an
ADMIN_USERNAMEBenutzername des ersten Administrator-Accounts
ADMIN_PASSWORDPasswort des ersten Administrator-Accounts
POSTGRES_USERDatenbankbenutzer für den PostgreSQL-Container
POSTGRES_PASSWORDDatenbankpasswort für den PostgreSQL-Container
POSTGRES_DBName der angelegten Datenbank

Miniflux aktualisieren

Die offizielle Dokumentation empfiehlt eine fest gepinnte Versionsnummer statt latest, um unerwartete Updates zu vermeiden. Ein Update läuft kontrolliert über eine Änderung des Image-Tags:

  • Vor dem Update Backup der Datenbank anlegen, siehe folgender Abschnitt.
  • In docker-compose.yml das Image-Tag von miniflux/miniflux:2.3.3 auf die neue Version ändern.
  • Release-Hinweise im Repository miniflux/v2 prüfen, besonders auf Migrationen und Breaking Changes.
  • Neues Image ziehen und starten: docker compose pull miniflux, dann docker compose up -d.
  • Mit RUN_MIGRATIONS=1 führt der Container beim Start alle ausstehenden Migrationen aus.
  • Nach dem Update Logs und Erreichbarkeit prüfen.

Backup und Wiederherstellung

Da sämtliche Daten in PostgreSQL liegen, reicht ein regelmäßiger Dump für ein vollständiges Backup.

  • Dump erzeugen: docker compose exec db pg_dump -U miniflux miniflux > miniflux_backup.sql
  • Dump außerhalb des Docker-Hosts sichern, etwa auf einem separaten Backup-Ziel.
  • Wiederherstellung: docker compose exec -T db psql -U miniflux miniflux < miniflux_backup.sql
  • Backup-Job regelmäßig testen, ein ungeprüftes Backup ist kein verlässliches Backup.
  • Alternativ das Docker-Volume miniflux-db sichern.

Passende Anleitungen auf S-EDV

Quellen

MinifluxDocker ComposeRSS-ReaderSelfhostingPostgreSQLFeed-Reader