SSD Nodes Learn 🎉 VPS ab $5.50/Monat
Anleitungen Matt ConnorVon Matt Connor

Self-hosted Dateimanager im Vergleich: FileBrowser & Co.

FileBrowser, Filestash, SFTPGo und Cloud Commander im Vergleich: Scoping, Freigabelinks, Speicher-Backends und Authentifizierung sicher selbst betreiben.

Was ein selbst gehosteter Dateimanager ist und was nicht

Ein selbst gehosteter Dateimanager ist eine Webseite über dem Verzeichnisbaum, der bereits auf Ihrem VPS (virtual private server) vorhanden ist. Sie melden sich an, sehen /srv/files genau so, wie es auf der Festplatte liegt, und laden Dateien hoch, benennen sie um, laden sie herunter oder geben jemandem einen Link. Es wird nichts in ein zweites System kopiert. Eine Datei, die Sie im Browser ablegen, ist daher eine Datei, die ls eine Sekunde später anzeigt.

Suchergebnisse vermischen dies mit Software, die andere Aufgaben übernimmt. Synchronisationstools speichern eine Kopie jeder Datei auf jedem Gerät. Dafür ist eine selbst gehostete Dropbox-Alternative gedacht. Objektspeicher hat überhaupt keinen Verzeichnisbaum, sondern Buckets und eine API. MinIO für S3-kompatiblen Objektspeicher betreiben beantwortet daher eine andere Frage. Serververwaltungspanels verwalten den Rechner und nicht die Dateien. Dafür ist der Vergleich von Cockpit und Webmin gedacht.

Sie benötigen einen Dateimanager, wenn ein Kollege ein 300 MB großes Archiv vom Server benötigt oder wenn Sie einen Tippfehler in einer Konfigurationsdatei vom Telefon aus korrigieren möchten. Die Aufgabe ist klein, und die dafür benötigten Werkzeuge sind es ebenfalls.

Behalten Sie beim Lesen einen Punkt im Blick. Dies ist eine Webanwendung mit Lese- und Schreibzugriff auf Ihr Dateisystem, die auf einem Port lauscht. Jede der folgenden Entscheidungen betrifft letztlich die Frage, auf welchen Teil Ihrer Festplatte dieser Prozess zugreifen kann.

FileBrowser ist archiviert – lesen Sie dies vor der Installation

FileBrowser, das filebrowser/filebrowser-Projekt, wird in den meisten Anleitungen weiterhin empfohlen. Die README beginnt inzwischen mit einem Hinweis:

File Browser wird am 2026-09-01 archiviert. Die letzte geplante Version wurde bereits veröffentlicht. Es wird keine weiteren Versionen, Fehlerbehebungen oder Sicherheitsupdates geben.

Der Code unter der Apache-2.0-Lizenz funktioniert weiterhin. Sicherheitsupdates wird es jedoch nicht mehr geben. Das ist bei dieser Kategorie wichtiger als bei den meisten anderen, weil der eigentliche Zweck der Software im Schreibzugriff auf ein Dateisystem über HTTP besteht.

Die Maintainer haben dokumentiert, wie der Betrieb fortgesetzt werden kann. Diese Empfehlungen sollten Sie unabhängig vom gewählten Tool befolgen: Setzen Sie es nicht direkt dem Internet aus. Betreiben Sie es hinter einem Reverse Proxy, der TLS (Transport Layer Security) terminiert und eine eigene Authentifizierung durchführt. Lassen Sie den Befehls-Runner deaktiviert. Betreiben Sie die Anwendung unprivilegiert in einem Container und binden Sie darin nur das Verzeichnis ein, das Sie bereitstellen möchten.

Eine Zeile in dieser README ist wichtiger als der Rest. Sitzungen bestehen aus eigenständigen JWTs (JSON Web Tokens) und nicht aus serverseitigen Bezeichnern. Daher können sie nicht widerrufen werden. Ein offengelegtes Sitzungstoken bleibt bis zu seinem Ablauf gültig. Auch eine Änderung des Passworts macht es nicht ungültig. Wenn Sie FileBrowser weiterbetreiben, übernimmt die vorgeschaltete Authentifizierung die eigentliche Sicherheitsarbeit.

FileBrowser Quantum: der Fork, der noch aktiv weiterentwickelt wird

Die aktive Entwicklung wurde in einen Fork verlagert: FileBrowser Quantum (gtsteffaniak/filebrowser), veröffentlicht als gtstef/filebrowser-Image. Die Konfiguration basiert nun auf einer einzelnen config.yaml statt auf der älteren Mischung aus Befehlszeilenoptionen und Datenbankeinstellungen. Der dokumentierte Schnelltest:

docker run -d \
  -v $(pwd):/srv \
  -p 80:80 \
  gtstef/filebrowser:beta

Damit wird das aktuelle Verzeichnis unter http://localhost bereitgestellt. Die erste Anmeldung erfolgt mit admin / admin. Ändern Sie dieses Kennwort, bevor der Container von einem anderen Gerät als Ihrem eigenen erreichbar ist.

Für eine dauerhaft betriebene Instanz verwenden Sie Compose, binden Sie das Verzeichnis mit den Daten statt einer einzelnen Datenbankdatei ein und binden Sie den Port an localhost:

services:
  filebrowser:
    image: gtstef/filebrowser:beta
    user: "1000:1000"
    volumes:
      - /srv/files:/folder
      - ./data:/home/filebrowser/data
    ports:
      - 127.0.0.1:8080:80
    restart: unless-stopped

Die Konfiguration liegt unter /home/filebrowser/data/config.yaml und die Datenbank unter /home/filebrowser/data/filebrowser.sqlite. Version 2.0.0 hat das Datenbankformat geändert und führt eine einmalige Migration durch. Deshalb verlangen die Dokumente einen Verzeichnis-Mount: Bei einem Mount einer einzelnen Datei gibt es keinen Ort, an dem die Migration die neue Datei ablegen kann. Die Pfade in config.yaml sind Containerpfade. Eine Quelle in der Konfiguration liest daher /folder und nicht /srv/files. Eine umgekehrte Zuordnung führt ohne Fehlermeldung zu einer leeren Dateiliste, weil das Verzeichnis tatsächlich nicht vorhanden ist.

Das Projekt veröffentlicht latest und stable mit einer Größe von etwa 60 MB und integriertem FFmpeg für Video-Miniaturbilder. stable-slim ist mit etwa 15 MB deutlich kleiner und enthält nur den Kern. Das sind die Angaben auf der Installationsseite im August 2026. Fixieren Sie den gewählten Tag. latest ändert sich, ohne Sie darüber zu informieren. Ein Dateimanager, der sein Konfigurationsformat während des laufenden Containers ändert, sorgt für unnötige Probleme.

Für diese Aufgabe ist es das leistungsfähigste der kleinen Tools. Es stellt mehrere Quellen mit Include- und Exclude-Regeln bereit. Dadurch kann eine Instanz /srv/media und /srv/docs mit unterschiedlichem Geltungsbereich veröffentlichen. Freigaben haben eine Ablaufzeit und können anonym oder auf einen Benutzer beschränkt sein. Die Authentifizierung unterstützt OIDC (OpenID Connect), LDAP (Lightweight Directory Access Protocol), Kennwörter mit Zwei-Faktor-Authentifizierung und einen Proxy-Header-Modus. Dieser Proxy-Modus ermöglicht den Betrieb hinter Single Sign-On (SSO) über einen selbst gehosteten Authentik-Server, ohne eine zweite Benutzerliste pflegen zu müssen.

Filestash: eine Oberfläche für vorhandenen Speicher

Filestash verfolgt einen anderen Ansatz. Es ist ein Frontend, das eine Verbindung zu einem Backend herstellt. Die Liste der Backends ist lang: FTP, SFTP (SSH file transfer protocol), S3, SMB, WebDAV, IPFS und etwa zwanzig weitere. Filestash eignet sich, wenn die Dateien nicht auf dem Server liegen, auf dem die Oberfläche läuft.

mkdir -p /srv/filestash && cd /srv/filestash
curl -O https://downloads.filestash.app/latest/docker-compose.yml
docker compose up -d

Das Image ist machines/filestash:latest. Öffnen Sie http://your_domain:8334. Auf dem ersten Bildschirm legen Sie das Administratorkennwort fest. Legen Sie es sofort fest. Bis dahin ist die Administratorkonsole für jeden geöffnet, der den Port findet.

Machen Sie sich mit dem Identitätsmodell vertraut, bevor Sie darauf aufbauen. Filestash verwaltet keine Benutzerdatenbank im üblichen Sinn. Anmeldedaten werden in Ihrem Browser in Cookies gespeichert, die verschlüsselt und authentifiziert sind und nur über HTTP übertragen werden. Serverseitig wird nichts gespeichert, außer wenn Sie die Freigabefunktion verwenden. In diesem Fall speichert Filestash eine dauerhaft gespeicherte, verschlüsselte Version Ihrer Anmeldedaten. Die „Benutzer“ sind Speicherkonten: Die Identität liegt im Backend, also im SFTP-Konto oder im S3-Schlüssel, nicht in Filestash.

Dieses Design ist übersichtlich, hat aber seinen Preis. Auf der Preisseite wird der kostenlose Self-Hosted-Tarif als AGPL v3 (GNU Affero General Public License) mit bis zu 3 Benutzern aufgeführt. SSO (SAML, OIDC und LDAP) mit rollenbasierter Zugriffskontrolle ist dort dem kostenpflichtigen Self-Hosted-Tarif ab $50 pro Monat zugeordnet, Stand August 2026. Wenn Ihr Plan „Filestash vor dem Unternehmens-SSO, kostenlos“ lautet, prüfen Sie diese Seite, bevor Sie Ihre Architektur darauf ausrichten.

SFTPGo: ein Protokollserver mit Weboberfläche

SFTPGo ist hier die leistungsfähigste Software und wird am häufigsten aus dem falschen Grund empfohlen. Die Software stellt SFTP, HTTP/S, FTP/S und WebDAV bereit. Als Speicher unterstützt sie das lokale Dateisystem, ein verschlüsseltes lokales Dateisystem, S3-kompatiblen Objektspeicher, Google Cloud Storage, Azure Blob Storage oder einen anderen SFTP-Server.

Binaries, Debian- und Ubuntu-Pakete sowie ein Container-Image werden veröffentlicht. Die aktuelle APT-Repository-Zeile und der zugehörige Signaturschlüssel stehen auf der Installationsseite der SFTPGo-Dokumentation. Der Container ist der schnellste Weg zum laufenden Dienst. Ersetzen Sie tag durch die gewünschte Version:

docker run --name some-sftpgo -p 8080:8080 -p 2022:2022 -d "drakkan/sftpgo:tag"

SFTP lauscht auf Port 2022. Die Weboberflächen lauschen auf Port 8080. Binden Sie /srv/sftpgo als Volume ein. Andernfalls verschwinden die Konten und ihre Dateien, wenn der Container neu erstellt wird, weil die Home-Verzeichnisse der Benutzer standardmäßig auf /srv/sftpgo/data/<username> gesetzt sind.

Es gibt zwei Weboberflächen. Der Unterschied wird in vielen Anleitungen nicht ausdrücklich erklärt. WebAdmin unter /web/admin dient der Administration. Dort erstellen Sie Benutzer, Gruppen, virtuelle Ordner und Ereignisregeln. Außerdem legen Sie Quotas, Bandbreitenbegrenzungen und zeitliche Zugriffsbeschränkungen fest. WebClient unter /web/client ist die Oberfläche für Endbenutzer. Dort durchsucht eine Person Dateien, ändert ihre eigenen Zugangsdaten, richtet die Zwei-Faktor-Authentifizierung ein und erstellt Freigaben.

Diese Freigaben sind im Vergleich die beste Funktion. Benutzer können HTTP/S-Links zum Freigeben von Dateien und Ordnern erstellen, die Anzahl der Downloads und Uploads begrenzen, die Freigabe mit einem Passwort schützen, den Zugriff anhand der Quell-IP-Adresse beschränken und ein automatisches Ablaufdatum festlegen.

Warum ist trotzdem Vorsicht angebracht? Der Schwerpunkt liegt auf dem Kontomodell und dem Protokollserver, nicht auf der Dateiansicht. Wählen Sie SFTPGo, wenn andere Personen echte Konten mit Quotas benötigen, wenn Uploads von einem nicht von Ihnen kontrollierten System über SFTP oder FTPS eingehen oder wenn ein Bucket in den Home-Verzeichnissen mehrerer Benutzer erscheinen soll. Virtuelle Ordner erledigen Letzteres. Dabei wird ein durch lokale Datenträger, S3, GCS, Azure Blob, SFTP oder HTTP bereitgestellter Ordner in mehrere Konten eingebunden. Für diesen gemeinsam genutzten Ordner kann jedes Konto eine eigene Quota erhalten. Wenn Sie lediglich eine browsbare Seite für /srv/files benötigen, ist SFTPGo dafür eine umfangreiche Lösung.

Zwei weitere Fakten sind relevant. Die Community Edition steht unter AGPL-3.0-only mit zusätzlichen Bedingungen. Daneben gibt es eine kommerziell lizenzierte Enterprise Edition. Die OIDC-Anmeldung ist im Open-Source-Build enthalten. Sie ordnet Benutzer des Identity Providers den Administratoren und Benutzern von SFTPGo für beide Weboberflächen zu. Sie können die Clientoberfläche global mit enable_web_client in der httpd-Konfiguration deaktivieren. Alternativ können Sie sie pro Benutzer deaktivieren, indem Sie HTTP zu den verweigerten Protokollen dieses Benutzers hinzufügen. So kann der Dateimanager für eine Person verfügbar sein, ohne ihn für alle Benutzer bereitzustellen.

Cloud Commander: zwei Bereiche und ein Terminal für eine Person

Cloud Commander ist ein unter der MIT-Lizenz veröffentlichtes Node.js-Verwaltungsprogramm im Zwei-Bereiche-Stil mit integriertem Editor, einer Konsole und einem Terminal. Installieren Sie es global mit npm i cloudcmd -g oder starten Sie den veröffentlichten Container:

docker run -it --rm -v ~:/root -v /:/mnt/fs -w=/root -p 8000:8000 coderaiser/cloudcmd

Lesen Sie diesen Befehl, bevor Sie ihn ausführen. -v /:/mnt/fs bindet das gesamte Dateisystem des Hosts in den Container ein, und das Beispiel ~/.cloudcmd.json liefert "root": "/", "auth": false und "console": true mit. Dadurch erhält jeder, der Port 8000 erreicht, Zugriff auf Ihre gesamte Festplatte und eine Befehlskonsole auf dem Server. Für einen Laptop ist das eine sinnvolle Voreinstellung, für einen VPS jedoch nicht.

Schränken Sie den Zugriff ein. Der Container liest /root/.cloudcmd.json. Der veröffentlichte Befehl stellt diese Datei bereit, indem er Ihr Home-Verzeichnis einbindet. Behalten Sie daher den Konfigurations-Mount bei und entfernen Sie den Rest:

docker run -d --name cloudcmd \
  -v ~/.cloudcmd.json:/root/.cloudcmd.json \
  -v /srv/files:/srv/files \
  -w=/srv/files \
  -p 127.0.0.1:8000:8000 \
  coderaiser/cloudcmd

Setzen Sie in dieser Konfigurationsdatei "root" auf /srv/files, "auth" mit einem "username" und "password" auf true sowie "console" und "terminal" auf false, sofern Sie nicht ausdrücklich Shell-Zugriff über den Browser benötigen. Entsprechende Befehlszeilenoptionen sind ebenfalls vorhanden, darunter --root, --auth, --username, --password und --prefix.

Seien Sie sich über den Funktionsumfang im Klaren. Es gibt ein einziges Zugangsdatenpaar, keine Berechtigungsbeschränkung pro Benutzer, keine Quotas und keine Freigabelinks. Cloud Commander ist ein persönliches Werkzeug. Binden Sie es daher wie oben an localhost und greifen Sie über einen Tunnel darauf zu:

ssh -L 8000:127.0.0.1:8000 you@your-vps

Öffnen Sie anschließend http://127.0.0.1:8000 auf Ihrem eigenen Rechner. Der Dateimanager ist niemals öffentlich erreichbar. Dem Internet ist nur der SSH-Daemon ausgesetzt, den Sie auf Ihrem VPS abgesichert haben.

Warum Nextcloud für diese eine Aufgabe das falsche Werkzeug ist

Nextcloud ist gute Software, aber dafür nicht geeignet. Es ist eine Kollaborationsplattform: eine PHP-Anwendung, eine Datenbank, Hintergrundaufgaben, Desktop-Synchronisationsclients und ein App Store. Nextcloud zu betreiben, nur um eine Webansicht von /srv/files zu erhalten, bedeutet für eine kleine Aufgabe viele zusätzliche Komponenten. Außerdem besteht eine konkrete funktionale Abweichung. Nextcloud speichert Dateimetadaten in einer Datenbanktabelle, statt das Verzeichnis bei jeder Anfrage einzulesen. Daher können Dateien, die von rsync oder einem cron-Job geschrieben wurden, in der Oberfläche unsichtbar bleiben, bis ein Scan abgeschlossen ist, mit sudo -u www-data php occ files:scan --all. Ein Dateimanager listet das Verzeichnis beim Laden der Seite auf. Diese Lücke besteht dort nicht.

Verwenden Sie Nextcloud für die Aufgaben, die es gut erfüllt: Kalender, Kontakte, Synchronisation und die Freigabe für Personen, die einen Desktop-Client erwarten. Nextcloud auf einem VPS mit Docker, TLS und Backups beschreibt diese Einrichtung. Wenn Sie Nextcloud bereits betreiben und nur ein vorhandenes Verzeichnis anzeigen müssen, aktivieren Sie die External Storage App und belassen Sie es dabei. Eine zweite Webanwendung mit Schreibzugriff auf dieselbe Festplatte ist eine weitere Anwendung, die gepatcht werden muss.

Wie Sie einen Dienst betreiben, ohne den gesamten Server preiszugeben

Richten Sie ihn niemals auf /. Der Prozess kann alles lesen und schreiben, worauf sein Benutzerkonto zugreifen kann. Ein gestohlenes Sitzungstoken gewährt daher genau diesen Dateisystemzugriff. Stellen Sie ein einzelnes Verzeichnis bereit, /srv/files, und erstellen Sie es für diesen Zweck.

Führen Sie den Dienst mit einem Benutzer ohne Root-Rechte aus und mounten Sie nur die Verzeichnisse, die er bereitstellt. In Compose bedeutet das user: "1000:1000" sowie einen Bind-Mount pro Verzeichnis. Verwenden Sie :ro für alles, worin der Dienst niemals schreiben muss:

    volumes:
      - /srv/files:/folder
      - /srv/media:/media:ro

Nach dieser Änderung funktioniert das Auflisten der Dateien normalerweise, während Uploads mit permission denied fehlschlagen. Der Grund ist, dass die Benutzer-ID im Container nicht Eigentümer des Verzeichnisses außerhalb des Containers ist. Vergleichen Sie beide Seiten: docker exec filebrowser id gibt den Benutzer im Container aus, ls -ln /srv/files den numerischen Eigentümer auf dem Host. Korrigieren Sie das mit sudo chown -R 1000:1000 /srv/files. Dies ist dasselbe Eigentumsproblem, das PUID und PGID in Docker-Images lösen sollen.

Binden Sie den veröffentlichten Port an localhost, 127.0.0.1:8080:80, und nicht an 8080:80. Docker schreibt seine eigenen netfilter-Regeln vor den ufw-Regeln. Ein direkt veröffentlichter Port bleibt daher aus dem Internet erreichbar, selbst wenn ufw deny 8080 aktiv ist. Schalten Sie einen Reverse Proxy für TLS davor. Bei einfachem HTTP wird das Sitzungscookie unverschlüsselt über das Netzwerk übertragen. Dieses Cookie gewährt Dateisystemzugriff. Wenn Compose für Sie neu ist, beschreibt Docker Compose auf einem VPS den in diesen Beispielen vorausgesetzten Dateiufbau.

Fügen Sie eine Authentifizierungsschicht hinzu, wenn die integrierte Authentifizierung der Anwendung nur eingeschränkt ist. HTTP-Basic-Authentication am Proxy reicht für eine Instanz mit einem einzelnen Benutzer aus. Sobald mehrere Personen beteiligt sind, verwenden Sie OIDC oder Forward Auth gegenüber einem Identity Provider. Dadurch widerruft das Sperren eines Kontos den Zugriff überall.

Deaktivieren Sie zusätzliche Funktionen. Jeder Dateimanager, der eine Shell, einen Befehlsausführer oder ein Terminal im Browser anbietet, ermöglicht Remote-Codeausführung für jeden, der eine gültige Sitzung besitzt. Die eigene Dokumentation von FileBrowser empfiehlt, den Befehlsausführer deaktiviert zu lassen. Die Beispielkonfiguration von Cloud Commander aktiviert dagegen die Konsole. Treffen Sie diese Entscheidung bewusst und nicht aufgrund der Standardeinstellung.

Was zuerst ausfällt und welche Fehler auftreten

listen tcp :80: bind: permission denied. Linux reserviert Ports unter 1024 für privilegierte Prozesse. Die dokumentierte Konfiguration von FileBrowser Quantum verwendet Port 80. Das funktioniert innerhalb eines Containers, schlägt aber sofort fehl, wenn Sie die Binärdatei auf dem Host als nicht privilegierter Benutzer ausführen. Setzen Sie in config.yaml einen Port über 1024 und lassen Sie den Proxy Port 443 übernehmen.

Uploads schlagen fehl, während das Durchsuchen funktioniert. Zum Auflisten eines Verzeichnisses ist r-x erforderlich, zum Schreiben darin w. Die Weboberfläche zeigt einen allgemeinen Fehler an. Prüfen Sie daher zuerst das Dateisystem und nicht die Anwendungslogs.

413 Request Entity Too Large. Dieser Fehler stammt von nginx und nicht vom Dateimanager. Der Standardwert von client_max_body_size beträgt 1 MB. Ein größerer Upload wird daher bereits am Proxy abgewiesen, bevor die Anwendung ihn erhält. Setzen Sie client_max_body_size 4096m; im Block server oder verwenden Sie 0, um die Prüfung zu deaktivieren.

Hochgeladene Dateien haben die falsche Gruppe. Neue Dateien gehören dem Benutzer, unter dem der Prozess läuft, unabhängig von den Angaben des übergeordneten Verzeichnisses. Dadurch kann ein zweiter Dienst denselben Verzeichnisbaum nicht lesen. Weisen Sie beiden Diensten eine gemeinsame Gruppe zu und setzen Sie das setgid-Bit mit sudo chmod g+s /srv/files auf dem Verzeichnis. Neue Dateien übernehmen dann die Gruppe des Verzeichnisses.

Auf dem Port funktioniert alles, hinter dem Proxy jedoch nicht. Eine Anwendung, die unter einem Unterpfad bereitgestellt wird, erstellt Links anhand eines Präfixes. Dieses Präfix muss der Anwendung mitgeteilt werden. Cloud Commander bietet dafür --prefix. Wenn keine entsprechende Option vorhanden ist, weisen Sie der Anwendung eine eigene Subdomain zu und proxien Sie den Root-Pfad.

Welchen selbst gehosteten Dateimanager sollten Sie einsetzen?

  • Ein VPS, ein oder zwei Verzeichnisse, Freigabelinks mit Ablaufdatum und möglicherweise später SSO: FileBrowser Quantum.
  • Dateien, die an einem anderen Ort liegen, etwa in einem S3-Bucket, auf einem SFTP-Host oder auf einem NAS über SMB, und eine einheitliche Webansicht darüber: Filestash innerhalb der Grenzen des kostenlosen Tarifs.
  • Andere Personen benötigen Konten, Kontingente sowie Uploads über SFTP oder FTPS: SFTPGo. Betrachten Sie den Webclient dabei als nützliche Zusatzfunktion und nicht als Grund für die Auswahl.
  • Ein persönliches Werkzeug mit Editor und Terminal, das über einen SSH-Tunnel erreicht und niemals veröffentlicht wird: Cloud Commander.
  • Nextcloud läuft bereits, und ein vorhandenes Verzeichnis soll bereitgestellt werden: die App External Storage und überhaupt keine neue Software.

Unabhängig von Ihrer Auswahl ist die Bereitstellung wichtiger als das Produkt. Verwenden Sie ein Verzeichnis, einen Benutzer ohne root-Rechte, einen an localhost gebundenen Port und eine vorgeschaltete Authentifizierung. Ein so eingerichteter Dateimanager ist eine praktische Hilfe. Dieselbe Software, die auf / zeigt und ein gemeinsames Passwort verwendet, ist eine Remote-Shell mit einer komfortablen Oberfläche.

FAQ

Ist FileBrowser im Jahr 2026 noch sicher einsetzbar?

Die filebrowser/filebrowser-README des Upstream-Projekts gibt an, dass File Browser am 2026-09-01 archiviert wird und danach keine Releases, Fehlerbehebungen oder Sicherheitsupdates mehr erhält. Der Code funktioniert weiterhin. Nicht gepatchte Software mit Schreibzugriff auf Ihr Dateisystem stellt jedoch ein mit der Zeit zunehmendes Risiko dar. Wenn Sie FileBrowser weiterverwenden, beachten Sie die Empfehlungen des Projekts: keine direkte Erreichbarkeit aus dem Internet, ein Reverse Proxy mit TLS und eigener Authentifizierung, der deaktivierte Command Runner sowie ein unprivilegierter Container, in den nur das bereitgestellte Verzeichnis eingebunden ist. Beachten Sie außerdem, dass die Sitzungen als eigenständige JWTs und nicht als serverseitige Kennungen umgesetzt sind. Sie können daher nicht widerrufen werden. Auch eine Änderung des Passworts macht ein bereits ausgestelltes Token nicht ungültig. Verwenden Sie für eine neue Installation den FileBrowser-Quantum-Fork, der als gtstef/filebrowser-Image veröffentlicht wird und weiterentwickelt wird.

Kann ein selbst gehosteter Dateimanager mein vorhandenes SSO verwenden?

FileBrowser Quantum unterstützt OIDC, LDAP und einen Proxy-Header-Modus. Dadurch kann die Anwendung hinter einem vorhandenen Identity Provider betrieben werden, ohne eine zweite Benutzerliste zu benötigen. Die OpenID-Connect-Integration von SFTPGo ist in der Open-Source-Version enthalten und ordnet Benutzer des Identity Providers den Administratoren und Benutzern von SFTPGo zu. Das gilt sowohl für die WebAdmin- als auch für die WebClient-Oberfläche. Bei Filestash ist Vorsicht geboten: Die Preisseite führt SSO (SAML, OIDC und LDAP) ab August 2026 in der kostenpflichtigen Self-Hosted-Stufe ab $50 pro Monat. Die kostenlose Stufe ist dort als AGPL v3 mit bis zu 3 Benutzern angegeben. Wenn eine Anwendung überhaupt kein SSO unterstützt, ist Forward Authentication am Reverse Proxy die Ausweichlösung. Sie schützt die Anmeldeseite, ändert jedoch nichts an den internen Berechtigungen der Anwendung.

SFTPGo bietet die vollständigste Umsetzung. Ein Benutzer erstellt im WebClient einen HTTP/S-Link und kann die Anzahl der Downloads und Uploads begrenzen, ein Passwort festlegen, den Zugriff anhand der Quell-IP-Adresse beschränken und ein automatisches Ablaufdatum setzen. FileBrowser Quantum unterstützt Freigaben mit einer Ablaufzeit. Der Zugriff kann anonym oder auf einen Benutzer beschränkt erfolgen. Zusätzlich lassen sich pro Freigabe Berechtigungen zum Anzeigen, Bearbeiten und Hochladen festlegen. Filestash bietet ebenfalls eine Freigabefunktion. Dabei handelt es sich um den einzigen Fall, in dem der Server eine persistente verschlüsselte Kopie der Zugangsdaten zum Speicher behält, da der Link auch funktionieren muss, wenn Ihre Browsersitzung beendet ist. Cloud Commander bietet überhaupt keine Freigabelinks.

Ist es sicher, einen Dateimanager auf / zu richten, wenn ich der einzige Benutzer bin?

Nein. Das Risiko besteht nicht primär darin, ob Sie sich selbst vertrauen. Der Prozess besitzt Lese- und Schreibzugriff auf alle Daten, die das Benutzerkonto erreichen kann. Jeder Pfad in diese Sitzung, ein gestohlenes Cookie, ein ungepatchter Fehler im Upload-Handler oder ein wiederverwendetes Passwort wird dadurch zum Zugriff auf /etc, auf Ihre SSH-Schlüssel und auf die Datenverzeichnisse aller Dienste. Beschränken Sie den Mount stattdessen auf ein einzelnes Verzeichnis: /srv/files statt /. Bei Cloud Commander ist dieses Problem besonders kritisch, weil der veröffentlichte Docker-Befehl das Root-Verzeichnis des Hosts unter /mnt/fs einbindet und die Beispielkonfiguration "root": "/" mit "auth": false setzt. Ändern Sie beides, bevor der Container an etwas anderem als localhost lauscht.

#file-manager#filebrowser#sftpgo#self-hosting#storage