Zum Inhalt

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:

mkdir -p ~/sftpgo && cd ~/sftpgo

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:

docker compose up -d

Prüfe anschließend den Zustand:

docker compose ps

Falls der Container nicht als Up angezeigt wird, siehst du mit diesem Befehl die letzten Protokollmeldungen:

docker compose logs --tail=100 sftpgo

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:

sftp -P 2022 <sftp-benutzer>@<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:

mkdir -p backup

Stoppe SFTPGo kurz, damit sich die Daten während der Sicherung nicht ändern:

docker compose stop sftpgo

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:

docker compose start sftpgo

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

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.