Zum Hauptinhalt springen
  1. Digital Odyssey/

Eigenen lokalen WebDAV-Server für Zotero aufsetzen (Windows 11)

·1244 Wörter·6 min·
Digital Odyssey Zotero WebDAV Docker Windows-11 Forschungstools Self-Hosting Guide Wissensmanagement
Simon Bernbeck
Autor
Simon Bernbeck
Deutscher Digital Nomad in Rio de Janeiro - KI-Student, Reisender und Philosoph
Inhaltsverzeichnis

Eigenen lokalen WebDAV-Server für Zotero aufsetzen (Windows 11)
#

Wer Zotero für Forschung, Studium oder privates Wissensmanagement nutzt, kennt das Problem: Die 300 MB kostenlosen Speicher sind schnell aufgebraucht. Bei mir war es ein einziges annotiertes Lehrbuch, und plötzlich stand da die “Speicher voll”-Warnung. Die offizielle Lösung? Zwischen $20 und $120 pro Jahr für mehr Cloud-Speicher zahlen.

Zotero Speicher-Preispläne
Zoteros Preisstufen reichen von 300 MB kostenlos bis $120/Jahr für unbegrenzten Speicher. Meine Bibliothek war bei 99,8% Auslastung, bevor ich eine bessere Lösung fand.

Es gibt einen anderen Weg: einen eigenen WebDAV-Server lokal mit Docker hosten. Der Laptop wird zum Datei-Sync-Backend, und Zotero behandelt ihn genauso wie einen kommerziellen WebDAV-Anbieter. Der Unterschied? Keine Speichergrenzen, keine laufenden Kosten und vollständige Kontrolle über die eigenen Daten.

Dieser Guide zeigt Schritt für Schritt, wie man einen lokalen WebDAV-Server auf Windows 11 mit Docker und einem Open-Source-Repository aufsetzt. Einmal konfiguriert, können PDFs zwischen Desktop, iPad und iPhone synchronisiert werden, ohne für Cloud-Speicher zu zahlen. Das Setup ist minimal, transparent und funktioniert zuverlässig.

Wie es funktioniert
#

Zotero trennt Metadaten von Dateien. Zitate, Notizen und Sammlungen synchronisieren weiterhin über Zoteros Server (kostenlos und unbegrenzt). Nur die PDF-Anhänge laufen über den lokalen WebDAV-Server. Dieser Hybrid-Ansatz bedeutet: Die Zuverlässigkeit von Zoteros Sync-Infrastruktur für wichtige Daten bleibt erhalten, während voluminöse Dateien selbst verwaltet werden.

So sieht die Architektur aus:

graph TB
    Desktop[Zotero Desktop]
    iPad[Zotero iPad]
    WebDAV[Lokaler WebDAV-Server
Docker Container] Storage[Lokaler Speicher
C:\ZoteroWebDAV\storage] OneDrive[OneDrive Backup
via Junction
Optional] Desktop -->|sync| WebDAV iPad -->|sync| WebDAV WebDAV -->|speichert Dateien| Storage Storage -.->|Backup| OneDrive style WebDAV fill:#3b82f6,stroke:#1e40af,stroke-width:2px,color:#fff style Storage fill:#10b981,stroke:#059669,stroke-width:2px,color:#fff style OneDrive fill:#64748b,stroke:#475569,stroke-width:2px,color:#fff,stroke-dasharray: 5 5

Der Laptop führt einen schlanken WebDAV-Container aus, der auf Port 8080 lauscht. Wenn Zotero ein PDF benötigt, holt es sich dieses von localhost:8080 auf dem Desktop oder von der lokalen IP (192.168.x.x:8080) auf mobilen Geräten. Da alles auf der Festplatte liegt, ist man nur durch den verfügbaren Speicherplatz begrenzt.

Worum es geht
#

Dies ist keine Set-and-Forget-Cloud-Lösung. Der Laptop muss eingeschaltet und mit dem Netzwerk verbunden sein, damit mobile Geräte synchronisieren können. Dafür erhält man unbegrenzten Speicher kostenlos, vollständige Datensouveränität und ein Setup, das sich leicht sichern oder migrieren lässt.

Bevor es losgeht: Docker Desktop (mit aktiviertem WSL2), Zotero Desktop und idealerweise Zotero Mobile für iPad/iPhone-Support sollten installiert sein. Mit grundlegenden Kommandozeilen-Kenntnissen dauert das Setup etwa 20 Minuten von Anfang bis Ende.


Docker und WebDAV-Container aufsetzen
#

Zuerst Docker Desktop von docker.com/products/docker-desktop installieren. Während der Installation WSL2-Integration aktivieren und Windows bei Aufforderung neu starten. Mit docker --version in CMD überprüfen, ob es funktioniert.

Als Nächstes das WebDAV-Repository klonen—ein minimales Docker-Setup speziell für Zotero:

git clone https://github.com/giovannifarina/webdav_zotero.git
cd webdav_zotero

Dieses Repository nutzt das derkades/webdav-Image, das /data als WebDAV-Root bereitstellt. Andere Images verwenden andere interne Pfade; wer ein anderes Image verwendet, muss die Volume-Mounts entsprechend anpassen.

Ein persistentes Speicherverzeichnis außerhalb von Docker erstellen. Das ist kritisch: Die PDFs liegen hier, nicht im Container.

mkdir C:\ZoteroWebDAV\storage

Jetzt docker-compose.yml bearbeiten. Das ist die exakte Konfiguration, die auf Windows 11 funktioniert:

services:
  webdav:
    image: derkades/webdav
    container_name: zotero_webdav
    ports:
      - "8080:80"
    environment:
      USERNAME: zotero
      PASSWORD: deinpasswort
    volumes:
      - C:/ZoteroWebDAV/storage:/data
    restart: unless-stopped

Ein paar Hinweise: Der Volume-Pfad verwendet Forward-Slashes auch unter Windows (Docker übersetzt sie), und die Zeile restart: unless-stopped sorgt dafür, dass der Container nach einem Neustart automatisch startet. Ein vernünftiges Passwort wählen—es ist Basic Auth, also einfach halten, aber nicht trivial.

Container starten:

docker compose up -d

Prüfen, ob er läuft:

docker ps

zotero_webdav sollte mit Status “Up” aufgelistet sein. Wer http://localhost:8080 im Browser öffnet, sieht entweder einen Login-Prompt oder ein leeres Verzeichnis—beides bedeutet, es funktioniert.


Zotero Desktop konfigurieren
#

In Zotero zu Einstellungen → Sync → Datei-Synchronisation gehen und WebDAV wie unten gezeigt konfigurieren:

Zotero Sync-Einstellungen
Der WebDAV-Konfigurationsbildschirm. Die URL enthält den /zotero/-Pfad am Ende, und beide Sync-Optionen sind aktiviert.

URL auf http://localhost:8080/zotero/ setzen, Benutzername (zotero) und Passwort eingeben, dann Server überprüfen klicken. Bei erfolgreicher Verifizierung ist die Verbindung hergestellt.

Falls bereits PDFs im Standard-Zotero-Ordner liegen (C:\Users\<DEIN_BENUTZERNAME>\Zotero\storage), Zotero schließen und sie nach C:\ZoteroWebDAV\storage kopieren. Zotero neu starten und Synchronisation auslösen—ab jetzt behandelt es WebDAV als autoritative Quelle.


Zotero auf iPad und iPhone verbinden
#

Mobile Geräte können localhost nicht verwenden, daher wird die lokale IP-Adresse des Laptops benötigt. ipconfig in CMD ausführen und nach der IPv4-Adresse suchen (etwa 192.168.x.x).

Auf iPad oder iPhone Zotero öffnen und zu Einstellungen → Sync → Datei-Synchronisation navigieren. Das URL-Format ändert sich leicht: http://192.168.x.x:8080/zotero/ (mit der eigenen IP ersetzen). Denselben Benutzernamen und Passwort wie auf dem Desktop verwenden.

Zotero iPad WebDAV-Einstellungen
iPad-Konfiguration mit lokaler IP statt localhost. Beide Geräte müssen im selben WLAN sein.

Mobile Synchronisation funktioniert nur, wenn der Laptop eingeschaltet ist, Docker läuft und beide Geräte im selben Netzwerk sind. Die erste Synchronisation kann bei großen Bibliotheken dauern, nachfolgende Syncs sind inkrementell. Sobald ein PDF auf das mobile Gerät heruntergeladen wurde, ist es lokal gecacht und offline lesbar.

Falls die Synchronisation fehlschlägt, Safari auf dem iPad öffnen und zu http://192.168.x.x:8080 navigieren. Wenn der WebDAV-Login oder die Verzeichnisliste erscheint, ist der Server erreichbar. Falls nicht, Windows Firewall prüfen (blockiert möglicherweise lokalen Netzwerkzugriff auf Port 8080) oder verifizieren, dass der Router keine Gerät-zu-Gerät-Kommunikation blockiert.


Backup auf OneDrive
#

WebDAV ist kein Backup. Bei einem Festplattenausfall sind die PDFs weg. Um sich dagegen abzusichern, eine Directory-Junction erstellen, die den WebDAV-Speicher auf OneDrive spiegelt.

CMD als Administrator öffnen und ausführen:

mklink /J "C:\Users\<DEIN_BENUTZERNAME>\OneDrive\ZoteroWebDAV" "C:\ZoteroWebDAV"

Das erstellt einen symbolischen Link: OneDrive sieht die Junction als Ordner und synchronisiert dessen Inhalt in die Cloud, während Zotero und Docker weiterhin den Original-Speicherort verwenden. Es ist transparent, benötigt keine zusätzliche Konfiguration und stellt sicher, dass die Bibliothek kontinuierlich gesichert wird.


Docker-Container verwalten
#

Der WebDAV-Container muss laufen, damit Synchronisation funktioniert. Wird er gestoppt oder der Laptop neu gestartet, schlägt Zoteros Datei-Synchronisation stumm fehl (Metadaten-Sync funktioniert weiterhin, aber PDFs werden nicht übertragen).

Container nach einem Neustart starten:

cd webdav_zotero
docker compose up -d

Prüfen, ob er läuft:

docker ps

Bei Bedarf stoppen (z.B. um Ressourcen freizugeben):

docker compose down

Das stoppt und entfernt den Container, berührt aber nicht die Dateien—sie liegen in C:\ZoteroWebDAV\storage, außerhalb des Containers. Die restart: unless-stopped-Policy in docker-compose.yml sollte den Container nach Windows-Neustarts automatisch starten. Falls das fehlschlägt, einfach docker compose up -d manuell ausführen.

AktivitätContainer benötigt?
PDFs synchronisieren (Desktop oder Mobile)Ja
PDFs in Zotero lesenNein
Zitate hinzufügen (nur Metadaten)Nein
Offline arbeitenNein

Für tägliche Nutzung lasse ich den Container laufen. Bei gelegentlicher Verwendung bei Bedarf starten und danach stoppen.


Häufige Probleme
#

Ein paar Dinge, die während des Setups Schwierigkeiten gemacht haben:

Falsches Docker-Image: Verschiedene WebDAV-Images verwenden unterschiedliche interne Pfade. Wer derkades/webdav gegen etwas anderes austauscht, sollte prüfen, wo es den Volume-Mount erwartet.

PowerShell und mklink: Der Junction-Befehl funktioniert nur in CMD, nicht in PowerShell. In PowerShell ist die Syntax anders und ausführlicher.

Mobile Sync fehlgeschlagen: Meist ein Netzwerkproblem. Überprüfen, ob sich die IP geändert hat (Windows kann sie neu zuweisen) und ob die Windows Firewall Port 8080 für lokale Verbindungen nicht blockiert.

Container startet nicht neu: Falls Auto-Restart fehlschlägt, sicherstellen, dass Docker Desktop selbst mit Windows startet. Das lässt sich in den Docker Desktop-Einstellungen konfigurieren.


Schlussbemerkung
#

Dieses Setup ist absichtlich einfach gehalten. Es gibt keine versteckte Sync-Logik, keinen Vendor-Lock-in, und die Dateien bleiben außerhalb von Zotero lesbar. Es ist nicht so komfortabel wie ein vollständig verwalteter Cloud-Service, aber für jeden, der Kontrolle, Transparenz und Kostenersparnis schätzt, ist es eine solide Alternative.

Die Gesamtkosten? Null Dollar, und der Speicher ist nur durch die Festplattengröße begrenzt. Für Forscher mit knappen Budgets oder jeden, der Self-Hosting bevorzugt, ist das schwer zu schlagen.


Dieser Guide ist Teil meiner Digital Odyssey-Reihe, in der ich technische Lösungen dokumentiere, die persönliches Wissensmanagement und digitale Produktivität ermöglichen.

Verwandte Artikel

LifeClock (Teil 1/2): Von Memento Mori zu Python
·1629 Wörter·8 min
Digital Odyssey CS50 Python Philosophie Memento-Mori Stoizismus CLI Testing Persönliches-Projekt
LifeClock (Teil 2/2): Refactoring zu Clean Architecture
·5432 Wörter·26 min
Digital Odyssey Clean-Architecture Python Refactoring Software-Design LifeClock Testing Architecture