SFTPGo per Docker installieren und sicher nutzen¶
Veröffentlicht am 22. August 2026 · Geschätzte Lesezeit: 4 Minuten
Mit SFTPGo stellst du Dateien über das verschlüsselte SFTP-Protokoll bereit. Benutzer bekommen eigene Zugänge und Ordner, während du alles über eine Weboberfläche verwaltest. Für die Einrichtung solltest du etwa 20 Minuten einplanen; SFTP-Vorwissen ist nicht nötig.
Voraussetzungen
- Ein Linux-Server mit Docker und Docker Compose
- Eine feste IP-Adresse für den Server
- Die Ports 8080 für die Verwaltung und 2022 für SFTP im Heimnetz frei
- Ein Computer mit Terminal oder einem SFTP-Programm wie FileZilla
1. Arbeitsordner anlegen¶
Führe den folgenden Befehl auf dem Docker-Server aus. Er erstellt den Projektordner und wechselt direkt hinein:
2. Compose-Datei erstellen¶
Lege im Ordner ~/sftpgo eine Datei namens compose.yaml mit diesem Inhalt an:
services:
sftpgo:
image: drakkan/sftpgo:latest
container_name: sftpgo
restart: unless-stopped
ports:
- "8080:8080"
- "2022:2022"
volumes:
- sftpgo-data:/srv/sftpgo
- sftpgo-config:/var/lib/sftpgo
volumes:
sftpgo-data:
name: sftpgo-data
sftpgo-config:
name: sftpgo-config
Das Daten-Volume enthält die Benutzerdateien. Im Konfigurations-Volume bleiben Datenbank, Einstellungen und SSH-Hostschlüssel auch nach einem Containerwechsel erhalten.
3. SFTPGo starten¶
Starte den Container auf dem Docker-Server:
Prüfe anschließend den Zustand:
Falls der Container nicht als Up angezeigt wird, siehst du mit diesem Befehl die
letzten Protokollmeldungen:
4. Administrator einrichten¶
Öffne http://<server-ip>:8080/web/admin im Browser. Ersetze <server-ip> durch
die feste IP-Adresse deines Docker-Servers, zum Beispiel 192.168.1.20.
Lege beim ersten Aufruf ein Administratorkonto mit einem langen, einmaligen Passwort an. Aktiviere danach in den Kontoeinstellungen die Zwei-Faktor-Anmeldung, sofern du eine Authenticator-App verwendest.
Verwaltung nicht offen ins Internet stellen
Port 8080 gehört nur ins Heimnetz. Für den Zugriff von unterwegs verwendest du besser ein VPN wie Tailscale oder einen HTTPS-Reverse-Proxy mit zusätzlichem Schutz.
5. SFTP-Benutzer anlegen¶
Öffne im WebAdmin den Bereich Users, wähle Add und vergib einen Benutzernamen. Hinterlege entweder ein starkes Passwort oder – sicherer – den öffentlichen SSH-Schlüssel des Benutzers. Das Home-Verzeichnis wird beim ersten Anmelden automatisch angelegt.
Keine privaten Schlüssel einfügen
In SFTPGo gehört nur der öffentliche Schlüssel, dessen Inhalt meist mit
ssh-ed25519 beginnt. Der private Schlüssel bleibt ausschließlich auf dem Gerät
des Benutzers.
6. Verbindung prüfen¶
Führe den folgenden Befehl auf dem Computer aus, von dem du Dateien übertragen willst.
Ersetze <sftp-benutzer> und <server-ip> durch den angelegten Namen und die Server-IP:
Beim ersten Verbindungsaufbau wird der Fingerabdruck des Servers angezeigt. Vergleiche ihn nach Möglichkeit mit dem Administrator, bevor du ihn bestätigst. In FileZilla verwendest du entsprechend das Protokoll SFTP, den Port 2022 und dieselben Zugangsdaten.
7. Backup und Rückweg vorbereiten¶
Erstelle zuerst im Projektordner einen Backup-Ordner:
Stoppe SFTPGo kurz, damit sich die Daten während der Sicherung nicht ändern:
Sichere die Benutzerdateien in ein komprimiertes Archiv:
docker run --rm -v sftpgo-data:/data:ro -v "$PWD/backup:/backup" alpine sh -c 'tar czf /backup/sftpgo-data-$(date +%F).tar.gz -C /data .'
Sichere danach Konfiguration, Datenbank und Hostschlüssel:
docker run --rm -v sftpgo-config:/data:ro -v "$PWD/backup:/backup" alpine sh -c 'tar czf /backup/sftpgo-config-$(date +%F).tar.gz -C /data .'
Starte den Dienst wieder:
Kopiere beide Archive anschließend auf ein anderes Gerät. Für eine vollständige
Wiederherstellung brauchst du immer beide Sicherungen. Wenn du SFTPGo nur entfernen
möchtest, ohne Daten zu löschen, genügt docker compose down; verwende dabei nicht
die Option -v.
8. Typische Fehler beheben¶
- Weboberfläche nicht erreichbar: Prüfe mit
docker compose ps, ob Port 8080 veröffentlicht wurde und eine Firewall den Zugriff erlaubt. - SFTP-Verbindung abgelehnt: Kontrolliere, ob wirklich Port 2022 statt Port 22 verwendet wird.
- Hostschlüssel plötzlich geändert: Brich die Verbindung ab. Prüfe zuerst, ob das Konfigurations-Volume fehlt oder der Server tatsächlich ersetzt wurde.
- Zugriff aus dem Internet nötig: Öffne Port 2022 nicht unüberlegt für alle. Nutze bevorzugt ein VPN oder begrenze die erlaubten Quelladressen in der Firewall.
9. Quellen und Videos¶
- Offizielles SFTPGo-Docker-Image
- Offizielle Anleitung zur Ersteinrichtung
- Video: How to Set Up SFTPGo with Docker
- Video: SFTPGo on Docker
Fertig¶
SFTPGo läuft nun mit dauerhaft gespeicherten Benutzerdateien und Einstellungen. Melde dich testweise per SFTP an, lade eine kleine Datei hoch und prüfe im WebAdmin, ob sie im Home-Verzeichnis des Benutzers erscheint.