Shiori mit Docker Compose: Read-it-later und Bookmarks lokal sauber hosten
Nicht jeder Redaktionslauf liefert einen aktuellen News-Post, der zum vorgegebenen Zeitfenster wirklich belastbar bleibt. Dann muss der Ersatz ein reales Problem loesen. Shiori passt hier gut hinein: ein einfacher Bookmark-Manager mit Weboberflaeche, Importfunktionen und der Faehigkeit, Webseiten nach Moeglichkeit direkt als Offline-Archiv mitzunehmen.
Die Quellenlage fuer dieses Tutorial ist klar genug fuer einen sauberen Fallback. Die offizielle Doku beschreibt weiterhin das Docker-Image unter ghcr.io/go-shiori/shiori, die Nutzungsdoku nennt Port 8080 und den gemounteten Datenpfad /shiori, die Konfiguration verlangt einen SHIORI_HTTP_SECRET_KEY, und auf GitHub ist v1.8.0 aktuell als neuester Release markiert. Genau diesen Stand pinne ich hier bewusst, statt spaeter unkontrolliert latest mitzuziehen.

Was du am Ende hast
- Shiori lokal unter
http://127.0.0.1:8080 - einen einzelnen Compose-Dienst mit SQLite-Standard
- einen persistenten Host-Ordner fuer Datenbank, Archive und Vorschaudaten
- einen pruefbaren Browser-Endpunkt fuer Lesezeichen und Read-it-later-Inhalte
Voraussetzungen
- Docker Engine und
docker composesind installiert - Port
8080ist lokal frei - du arbeitest in einem neuen Projektordner statt in einem alten Compose-Verzeichnis
1. Arbeitsordner anlegen
Beginne nicht in irgendeinem bestehenden Container-Ordner. Lege zuerst ein eigenes Projekt an:
mkdir shiori-local && cd shiori-local
mkdir data
Der Ordner data wird gleich in den Container gemountet und enthaelt danach den eigentlichen Zustand deiner Installation.
2. Einen echten Secret-Key erzeugen
Laut offizieller Konfigurationsdoku ist SHIORI_HTTP_SECRET_KEY erforderlich. Nimm dafuer nicht irgendeinen kurzen Demo-String, sondern erzeuge direkt einen langen Zufallswert:
openssl rand -hex 32
Kopiere die Ausgabe gleich fuer den naechsten Schritt an die markierte Stelle.
3. Compose-Datei anlegen
Lege jetzt die Datei shiori-local/compose.yaml an:
services:
shiori:
image: ghcr.io/go-shiori/shiori:v1.8.0
container_name: shiori
command: server
ports:
- "127.0.0.1:8080:8080"
volumes:
- ./data:/shiori
environment:
SHIORI_DIR: /shiori
SHIORI_HTTP_SECRET_KEY: PASTE_YOUR_RANDOM_SECRET_HERE
restart: unless-stopped
Wichtig an dieser Datei:
ghcr.io/go-shiori/shiori:v1.8.0pinnt die aktuelle Release stattlatestcommand: serverstartet die Weboberflaeche explizit./data:/shiorifolgt dem offiziellen Docker-Pfad fuer DatenhaltungSHIORI_DIR: /shiorisorgt dafuer, dass Shiori dort SQLite-Datenbank, Archive und weitere Daten ablegt
Ich binde den Dienst bewusst nur an 127.0.0.1, damit der erste Start lokal bleibt und nicht sofort auf allen Interfaces offenliegt.
4. Stack starten
Ziehe das Image und starte den Dienst im Hintergrund:
docker compose pull
docker compose up -d
Danach sollte Shiori grundsaetzlich unter http://127.0.0.1:8080 ansprechbar sein.
5. Technisch pruefen, bevor du dich einloggst
Verlasse dich nicht nur auf den Browser. Pruefe zuerst Containerzustand, Logs und HTTP-Antwort:
docker compose ps
docker compose logs --tail=100 shiori
curl -I http://127.0.0.1:8080
Wenn docker compose ps einen laufenden Container zeigt und curl einen plausiblen HTTP-Status liefert, steht der Webdienst wirklich.
6. Erster Login und sofortige Haertung
Die offizielle Nutzungsdoku nennt fuer den allerersten Einstieg den Standardnutzer:
- Benutzername:
shiori - Passwort:
gopher
Melde dich damit unter http://127.0.0.1:8080 an und aendere das Passwort sofort im Einstellungsbereich. Ein Standardlogin darf nicht dauerhaft bestehen bleiben, auch dann nicht, wenn du das Setup zunaechst nur lokal testest.
7. Den ersten Bookmark bewusst anlegen
Ein brauchbares Tutorial endet nicht bei "Login klappt". Lege direkt deinen ersten Eintrag an, zum Beispiel:
- eine Dokumentationsseite
- einen laengeren Artikel fuer spaeter
- einen Projektlink, den du regelmaessig brauchst
Gerade hier wird der Unterschied zu simplen Browser-Lesezeichen sichtbar. Laut Projekt-README versucht Shiori standardmaessig, den lesbaren Inhalt zu parsen und wo moeglich ein Offline-Archiv der Webseite anzulegen. Genau das macht den Dienst interessanter als eine reine URL-Liste.
8. Was im Datenordner landet
Die offizielle Docker-Nutzung verweist darauf, dass im gemounteten Verzeichnis nicht nur die Datenbank liegt, sondern auch Thumbnails und Archivdaten. Fuer dieses Setup bedeutet das praktisch:
- der relevante Zustand liegt im Host-Ordner shiori-local/data
- genau dieser Pfad gehoert in dein Backup
- bei SQLite bleibt ein einzelner Container fuer den lokalen Start die saubere Standardvariante
Du brauchst fuer ein kleines persoenliches Setup keine Extra-Datenbank. Der eingebaute SQLite-Standard ist hier gerade der Vorteil.
9. Alltagsbefehle fuer Logs und Updates
Fuer den normalen Betrieb reichen anfangs diese Befehle:
docker compose logs -f shiori
docker compose pull
docker compose up -d
docker compose down
Wenn du spaeter auf eine neue Version gehst, pruefe erst die Release-Notes und passe dann den Tag in shiori-local/compose.yaml an.
Fazit
Wenn aktuelle News fuer einen Lauf nicht sauber genug tragen, sollte der Ersatz wenigstens direkt nutzbar sein. Genau das schafft Shiori: ein kleiner Compose-Stack, lokale Persistenz, ein schneller Browser-Zugang und ein echter Read-it-later-Workflow mit Archiv-Funktion statt bloesser Link-Ablage.
Fuer einen praktischen Self-Hosting-Fallback ist das deutlich staerker als der naechste abstrakte Docker-Grundlagenpost ohne sichtbares Ergebnis.