FreshRSS mit Docker Compose: RSS-Feeds lokal statt Social-Noise lesen
Stand: 27. April 2026, 00:00 Uhr CEST. Wenn das News-Lagebild fuer einen sauberen Zeitbezug nicht stark genug ist, muss der Fallback echten Alltagsnutzen liefern. Genau das schafft FreshRSS: Die offizielle Projektseite beschreibt es weiterhin als selbst hostbaren RSS- und Atom-Aggregator, und die aktuelle Docker-Doku nennt die eingebaute SQLite-Datenbank explizit als einfachste Variante mit guter Performance. Das GitHub-Release-Verzeichnis fuehrt Stand heute weiterhin FreshRSS 1.27.1 als neuesten stabilen Release, also pinne ich genau diesen Stand statt blind auf latest.
Der praktische Punkt ist einfach: Du bekommst in wenigen Minuten eine lokale Feed-Oberflaeche unter http://127.0.0.1:8084, musst keinen separaten Datenbank-Container pflegen und hast mit Docker Compose einen reproduzierbaren Startpunkt fuer spaetere Erweiterungen.
Was du am Ende hast
- FreshRSS lokal unter
http://127.0.0.1:8084 - persistente Daten in
./data - einen vorkonfigurierten Admin-User fuer den ersten Login
- eingebaute Feed-Aktualisierung ueber
CRON_MIN - Pruefschritte mit
docker compose,curlund Browser
Voraussetzungen
Du brauchst nur:
- Docker Engine
- das Compose-Plugin (
docker compose) - einen freien lokalen Port
8084
Kurz pruefen:
docker --version
docker compose version
1. Arbeitsordner anlegen
Nicht in einem bestehenden Projekt starten. Lege zuerst einen eigenen Ordner an:
mkdir freshrss-local
cd freshrss-local
mkdir -p data extensions
2. .env fuer den ersten Start anlegen
Lege jetzt die Datei freshrss-local/.env an:
BASE_URL=http://127.0.0.1:8084
ADMIN_USER=admin
[email protected]
ADMIN_PASSWORD=change-this-now
ADMIN_API_PASSWORD=change-this-api-password
Wichtig dabei:
BASE_URLmuss zum lokalen Port passenADMIN_PASSWORDundADMIN_API_PASSWORDsolltest du vor einem echten Dauerbetrieb aendern- die Auto-Install-Werte greifen nur beim ersten Start mit leerem Datenordner
3. Compose-Datei schreiben
Lege nun die Datei freshrss-local/compose.yaml an:
services:
freshrss:
image: freshrss/freshrss:1.27.1
container_name: freshrss
restart: unless-stopped
ports:
- "127.0.0.1:8084:80"
environment:
TZ: Europe/Berlin
CRON_MIN: "13,43"
FRESHRSS_INSTALL: |-
--api-enabled
--base-url ${BASE_URL}
--default-user ${ADMIN_USER}
--language de
FRESHRSS_USER: |-
--api-password ${ADMIN_API_PASSWORD}
--email ${ADMIN_EMAIL}
--language de
--password ${ADMIN_PASSWORD}
--user ${ADMIN_USER}
volumes:
- ./data:/var/www/FreshRSS/data
- ./extensions:/var/www/FreshRSS/extensions
healthcheck:
test: ["CMD", "cli/health.php"]
timeout: 10s
start_period: 60s
interval: 75s
retries: 3
Warum genau so?
freshrss/freshrss:1.27.1macht das Setup reproduzierbar./dataspeichert Konfiguration und SQLite-Datenbank persistent./extensionsist optional, spart dir spaeter aber einen Umbau127.0.0.1:8084:80bindet FreshRSS bewusst nur lokalCRON_MINaktiviert die eingebaute Feed-Aktualisierung zweimal pro Stunde- der
healthchecknutzt genau die von FreshRSS dokumentierte CLI-Pruefung
4. Stack starten
Jetzt ziehst du das Image und startest den Dienst:
docker compose pull
docker compose up -d
Wenn das Image lokal angekommen ist, sollte nur ein Container laufen: freshrss.
5. Technisch pruefen
Pruefe zuerst den Status:
docker compose ps
Dann kontrollierst du die Startmeldungen:
docker compose logs --tail=100 freshrss
Zum Schluss pruefst du den HTTP-Endpunkt:
curl -I http://127.0.0.1:8084
Wenn alles sauber steht, bekommst du einen HTTP-Status zurueck und der Container bleibt im Status running oder healthy. Falls nicht, liefern die Logs direkt den schnellsten Hinweis.
6. FreshRSS im Browser fertig machen
Oeffne jetzt:
http://127.0.0.1:8084
Melde dich mit den Werten aus freshrss-local/.env an. Danach ist das sichtbare Ergebnis dieses Tutorials erreicht: Du landest in einer laufenden FreshRSS-Oberflaeche auf deinem eigenen Host statt in einem fremden Cloud-Dienst.
Damit die Instanz nicht leer bleibt, fuege direkt einen ersten Feed hinzu:
- oben auf das
+fuer neue Quellen klicken - eine RSS- oder Atom-URL einfuegen, die du ohnehin regelmaessig liest
- Feed speichern und die erste Synchronisierung abwarten
Spaetestens dann siehst du den eigentlichen Wert von FreshRSS: neue Eintraege laufen zentral in einer einzigen, selbst kontrollierten Leseflaeche auf.
7. Was du ueber den ersten Start wissen solltest
Die Auto-Install-Parameter in FRESHRSS_INSTALL und FRESHRSS_USER sind bewusst bequem, aber sie gelten nur fuer den ersten Boot mit leerem Datenbestand. Wenn du spaeter ADMIN_PASSWORD in der .env aenderst, aktualisiert das nicht rueckwirkend die bereits angelegte Instanz.
Wenn du komplett neu anfangen willst, musst du FreshRSS mit leerem Datenordner neu initialisieren. Im Alltag ist das richtige Vorgehen aber einfacher:
- Passwoerter nach dem ersten Login in der Web-Oberflaeche aendern
./datain dein Backup aufnehmenBASE_URLspaeter auf deine echte Domain anpassen, falls du doch einen Reverse Proxy davor setzt
8. Nuetzliche Alltagsbefehle
docker compose logs -f freshrss
docker compose restart freshrss
docker compose pull
docker compose up -d
docker compose down
docker compose down entfernt den Container, aber nicht automatisch den Inhalt von ./data.
9. Warum dieses Setup fuer April 2026 passt
Der Punkt hier ist nicht irgendein austauschbarer Docker-Quickstart. FreshRSS ist Stand 27. April 2026 weiterhin ein aktives, offiziell dokumentiertes Projekt mit eigener Docker-Route, klarer SQLite-Empfehlung fuer einfache Setups und einem weiterhin gefuehrten Stable-Release 1.27.1. Fuer Leser ist das praktischer als ein abstrakter RSS-Grundlagenpost: Du hast einen sichtbaren Browser-Endpunkt, persistente Daten und ein Werkzeug, das News, Blogs, Podcasts und Release-Feeds in einer lokalen Oberflaeche buendelt.