Zum Inhalt

PairDrop per Docker für lokale Dateiübertragungen einrichten

Veröffentlicht am 22. August 2026 · Geschätzte Lesezeit: 4 Minuten

PairDrop überträgt Dateien und Text direkt zwischen modernen Browsern und funktioniert dabei plattformübergreifend ähnlich wie AirDrop. Der eigene Server vermittelt die Geräte; im normalen Peer-to-Peer-Betrieb werden die Dateien nicht dauerhaft darauf abgelegt. Die Einrichtung dauert ungefähr 10 Minuten.

Voraussetzungen

  • Ein Server mit Docker und Docker Compose
  • Der Port 3000 ist im Heimnetz frei
  • Zwei Geräte mit modernem Browser im selben lokalen Netzwerk
  • Eine feste IP-Adresse für den Docker-Server

1. Benutzer- und Gruppen-ID ermitteln

Führe beide Befehle auf dem Docker-Server als der Benutzer aus, unter dem du Docker verwaltest. Notiere die ausgegebenen Zahlen:

id -u
id -g

Die erste Zahl ersetzt später <puid>, die zweite <pgid>. Bei vielen normalen Linux- Benutzern lautet beides 1000, darauf solltest du dich aber nicht blind verlassen.

2. Arbeitsordner anlegen

Dieser Befehl erstellt den Projektordner und wechselt hinein:

mkdir -p ~/docker/pairdrop && cd ~/docker/pairdrop

3. Compose-Datei anlegen

Lege im Ordner ~/docker/pairdrop eine Datei compose.yaml an:

services:
  pairdrop:
    image: lscr.io/linuxserver/pairdrop:latest
    container_name: pairdrop
    restart: unless-stopped
    environment:
      PUID: "<puid>"
      PGID: "<pgid>"
      TZ: Europe/Berlin
      RATE_LIMIT: "true"
      WS_FALLBACK: "false"
      DEBUG_MODE: "false"
    ports:
      - "3000:3000"

Ersetze <puid> und <pgid> durch die zuvor ermittelten Zahlen. RATE_LIMIT begrenzt übermäßige Anfragen. Der WebSocket-Rückfall bleibt ausgeschaltet, damit Dateien nicht ersatzweise über den Server geleitet werden.

4. Konfiguration prüfen und starten

Prüfe die Compose-Datei im Projektordner:

docker compose config --quiet

Starte PairDrop im Hintergrund:

docker compose up -d

Kontrolliere den Container:

docker compose ps

Bei Problemen zeigen die Protokolle weitere Hinweise:

docker compose logs --tail=100 pairdrop

5. Datei im Heimnetz übertragen

Öffne auf zwei Geräten im selben Netzwerk http://<server-ip>:3000. Ersetze <server-ip> durch die feste IP-Adresse des Docker-Servers. Nach kurzer Zeit müssen sich beide Browser als Geräte anzeigen.

Wähle auf dem sendenden Gerät den Empfänger und danach eine kleine Testdatei. Bestätige den Empfang auf dem zweiten Gerät und öffne die heruntergeladene Datei.

Empfänger vor dem Senden prüfen

Im gemeinsamen Netz können auch fremde PairDrop-Browser erscheinen. Vergib über das Stiftsymbol eindeutige Gerätenamen und kontrolliere den Empfänger bei jeder Übertragung.

6. Zugriff sinnvoll begrenzen

Veröffentliche Port 3000 nicht über eine Routerfreigabe. Der einfache Aufbau ist für ein vertrauenswürdiges Heimnetz gedacht. Trenne Gäste- und IoT-Netze per Firewall vom Server, wenn deren Geräte PairDrop nicht verwenden sollen.

Öffentlicher Betrieb braucht HTTPS

Für eine öffentliche Domain empfiehlt die offizielle Dokumentation einen HTTPS-Reverse- Proxy. Dabei muss X-Forwarded-For korrekt gesetzt sein, sonst können Clients einander falsch zugeordnet werden. Übertragungen zwischen unterschiedlichen Netzen benötigen je nach Verbindung zusätzlich einen eigenen STUN/TURN-Aufbau.

7. Verhalten ohne direkte Verbindung verstehen

Mit WS_FALLBACK=false bricht eine Übertragung ab, wenn Browser keine direkte WebRTC- Verbindung herstellen können. Das ist im Heimnetz meist die transparentere Einstellung.

Aktivierst du später bewusst den WebSocket-Rückfall, laufen die übertragenen Daten über deinen PairDrop-Server. Der Server benötigt dann ausreichend Bandbreite und könnte den Datenstrom technisch lesen. Dokumentiere diese Änderung für alle Benutzer.

8. Backup und Rückweg

PairDrop speichert im gezeigten Aufbau keine übertragenen Dateien dauerhaft und benötigt kein Daten-Volume. Sichere deshalb die Konfiguration selbst:

cp compose.yaml "compose-backup-$(date +%F).yaml"

Prüfe die Sicherung:

docker compose -f compose-backup-<datum>.yaml config --quiet

Ersetze <datum> durch das Datum im Dateinamen. Falls eine Änderung Probleme verursacht, stoppe den Stack und starte ihn wieder mit der geprüften Sicherungsdatei.

9. Aktualisieren

Lade das aktuelle freigegebene Image:

docker compose pull

Erstelle den Container anschließend neu:

docker compose up -d

Teste nach jedem Update erneut eine kleine Datei zwischen zwei Geräten.

10. Typische Fehler

  • Geräte sehen sich nicht: Prüfe, ob beide Browser wirklich dieselbe PairDrop-Adresse verwenden und Firewall oder WLAN-Client-Isolation die Verbindung blockiert.
  • Port 3000 ist belegt: Finde den Dienst mit sudo ss -ltnp | grep ':3000' oder ändere nur die linke Zahl, zum Beispiel auf 3001:3000.
  • Übertragung über VPN scheitert: Viele VPN-Verbindungen blockieren WebRTC; entscheide bewusst zwischen eigenem TURN-Server und WebSocket-Rückfall.
  • Bestimmte Browserfunktionen fehlen: Geräte-Paarung, PWA-Installation und Zwischenablage können HTTPS voraussetzen.

11. Quellen und Videos

Fertig

PairDrop ist jetzt im Heimnetz erreichbar. Öffne http://<server-ip>:3000 auf zwei Geräten, übertrage eine kleine Testdatei und vergleiche Dateiname sowie Größe auf dem Empfänger. Wenn beides stimmt, ist die lokale Übertragung einsatzbereit.