SSD Nodes Learn
Anleitungen Matt ConnorVon Matt Connor · Aktualisiert 2026-07-24

Dify mit Docker Compose auf VPS installieren

Nutzen Sie Docker Compose für Dify. Planen Sie 4 GB RAM ein und konfigurieren Sie alle Secrets in der .env Datei vor dem Start der sechs Container.

Was Dify ist und was Sie mit der Installation übernehmen

Dify ist eine selbst hostbare Plattform zum Erstellen von Anwendungen auf Basis von Large Language Models. Sie erhalten eine Web-Oberfläche zum Entwerfen von Chat-Apps, Agenten und Retrieval-Pipelines, eine API für den Aufruf aus eigenem Code sowie eine zentrale Stelle zur Verwaltung von Prompts, Datensätzen und Model-Keys. Es ist ein Werkzeug für kleine Teams, damit alle auf einer gemeinsamen privaten Basis arbeiten, anstatt API-Keys über verschiedene Skripte zu verteilen.

Ein Eigenbetrieb erfordert mehrere Komponenten. Dify wird als Satz von Docker-Containern ausgeliefert: ein API-Server, ein Background-Worker, ein Web-Frontend, eine Postgres-Datenbank, ein Redis-Cache und eine Vektordatenbank. Alle Komponenten sind über Docker Compose miteinander verbunden. Dies umfasst mehr als eine einzelne Binärdatei, aber Compose übernimmt die Verbindung. Ein VPS mit einigen Gigabyte freiem RAM reicht für den Betrieb aus.

Da Dify Ihre Model-API-Keys und oft auch private Dokumente für das Retrieval speichert, behandeln Sie den Host-Server ab der ersten Minute als sensibel. Diese Anleitung installiert die Software und härtet sie anschließend so, wie Sie es bei jedem Dienst tun würden, der Secrets speichert.

Voraussetzungen

Sie benötigen einen VPS mit Ubuntu 24.04, auf dem Docker und das Docker Compose Plugin installiert sind, sowie einen Benutzer mit sudo oder der Mitgliedschaft in der Gruppe docker. Falls Docker neu für Sie ist, behandelt die Grundlagen von Docker Compose auf einem VPS die Installation und die Kernbefehle, die diese Anleitung voraussetzt. Ein auf den Server verwiesener Domainname ist empfehlenswert, da Sie TLS vor Dify anstelle einer nackten IP-Adresse verwenden sollten.

Schritt 1: Dify und die Compose-Dateien erhalten

Dify speichert sein Docker-Setup im Haupt-Repository. Klonen Sie dieses und wechseln Sie in das Verzeichnis docker:

git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env

Die Datei .env enthält die gesamte Konfiguration. Lesen Sie diese, bevor Sie beginnen. Die wichtigsten Werte sind jene, die Passwörter und Secrets festlegen: SECRET_KEY, das Postgres-Passwort und das Redis-Passwort. Die Beispiel-Datei enthält Platzhalterwerte. Das Belassen dieser Werte ist der häufigste Grund für eine Kompromittierung von selbst gehostetem Dify. Generieren Sie einen echten Secret-Key:

openssl rand -base64 42

Fügen Sie diesen in SECRET_KEY ein und setzen Sie für jedes Passwortfeld in der Datei einen starken, eindeutigen Wert.

Schritt 2: Starten

Starten Sie den Stack:

docker compose up -d

Beim ersten Durchlauf werden mehrere Images heruntergeladen und die Datenbank wird initialisiert; planen Sie hierfür eine Minute ein. Prüfen Sie, ob die Container laufen:

docker compose ps

Jeder Dienst sollte running lesen. Dify stellt seine Web-Oberfläche standardmäßig über einen integrierten nginx-Container auf Port 80 bereit. Beim ersten Aufruf von http://YOUR_SERVER/install erstellen Sie das Admin-Konto. Tun Sie dies sofort, bevor andere Dienste den Port erreichen können. Solange dieses Konto nicht existiert, kann jeder, der die Seite lädt, das Konto beanspruchen und Ihre Instanz übernehmen.

Schritt 3: Nicht ungeschützt exponieren. TLS und Firewall vorschalten

Hier enden die meisten schnellen Installationen und hier beginnen die meisten Vorfälle. Der integrierte nginx von Dify lauscht unverschlüsselt auf Port 80 auf allen Interfaces. Sie sollten nicht möchten, dass Ihr Admin-Login und Ihre Model-Keys über unverschlüsseltes HTTP übertragen werden, und die internen Dienste sollten von außen nicht erreichbar sein.

Sichern Sie den Server mit einer Default-Deny-Firewall ab, die nur SSH und Web-Traffic erlaubt:

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Bedenken Sie, dass eine Firewall, die nur IPv4 abdeckt, dieselben Ports auf IPv6 offen lassen kann; dies ist die IPv6-Firewall-Lücke, die viele Selbsthoster betrifft. Bestätigen Sie, dass beide Stacks gefiltert werden.

Für TLS ist der sauberste Weg, den Web-Port von Dify an den Loopback zu binden und einen Reverse-Proxy mit einem Let's Encrypt-Zertifikat davorzuschalten. So ist das einzige Element im öffentlichen Internet der Proxy, der HTTPS spricht. Mit .env können Sie den freigegebenen Port von Dify ändern; setzen Sie ihn so, dass er an 127.0.0.1 bindet, und verweisen Sie Ihren Proxy darauf. Die Ideen zur Agenten-Härtung aus sicheres Ausführen eines KI-Agenten auf einem VPS gelten hier ebenfalls: Halten Sie die Komponenten auf dem Loopback, exponieren Sie nur das Nötige und lassen Sie eine gehärtete Front-Tür TLS sprechen.

Schritt 4: Patches einspielen

Dify entwickelt sich schnell weiter, und Updates enthalten Sicherheitsfixes. Ein Update besteht aus einem Pull und einem Neustart aus dem Verzeichnis docker:

git pull
docker compose pull
docker compose up -d

Lesen Sie die Release Notes vor einem größeren Versionssprung. Dify ändert gelegentlich das .env-Schema zwischen den Releases. Eine neue Variable, die Sie nicht gesetzt haben, kann dazu führen, dass ein Container nicht startet.

Schritt 5: Sichern Sie, was Sie nicht regenerieren können

Zwei Dinge auf einem Dify-Server sind unersetzlich: die Postgres-Datenbank, die Ihre Apps, Benutzer und Einstellungen enthält, und das Volume, das hochgeladene Dokumente und den Vektor-Index speichert. Beide liegen als Docker-Volumes im Verzeichnis docker. Erstellen Sie nach einem Zeitplan Snapshots und kopieren Sie diese vom Server weg. Ein Model-API-Key kann neu ausgestellt werden; die App, an der Sie eine Woche gebaut haben, nicht.

Für einen autonomeren, Code ausführenden Agenten lesen Sie Self-Hosting von Agent Zero. Erstellen eines eigenen KI-Agenten auf einem VPS behandelt die Grundlagen für alle diese Anwendungen.

FAQ

Was sind die Systemanforderungen für das Self-Hosting von Dify?

Dify läuft als Docker Compose Stack mit etwa einem halben Dutzend Containern. Planen Sie einen VPS mit mindestens 2 GB freiem RAM ein, idealerweise 4 GB, plus einige CPU-Kerne und ausreichend Speicherplatz für Ihre hochgeladenen Dokumente und den Vektor-Index. Die Speicherlast entsteht durch die Datenbank und den Vektor-Store, nicht durch Dify selbst.

Ist es sicher, Dify direkt auf Port 80 zu exponieren?

Nein. Der integrierte Webserver von Dify nutzt unverschlüsseltes HTTP und schützt Ihr Admin-Login sowie Ihre Model-API-Keys nicht. Schalten Sie einen Reverse-Proxy mit einem Let's Encrypt-Zertifikat vor, binden Sie den eigenen Port von Dify an den Loopback und lassen Sie nur den HTTPS-Proxy auf das Internet zugreifen. Kombinieren Sie dies mit einer Default-Deny-Firewall für IPv4 und IPv6.

Wie aktualisiere ich ein selbst gehostetes Dify?

Führen Sie im Verzeichnis docker git pull aus, gefolgt von docker compose pull und docker compose up -d, um neue Images abzurufen und neu zu starten. Lesen Sie zuerst die Release Notes, da Dify zwischen den Versionen manchmal neue .env-Variablen hinzufügt. Eine fehlende Variable kann dazu führen, dass ein Container nicht startet.

Was ist als Erstes nach der Installation von Dify zu tun?

Besuchen Sie /install und erstellen Sie sofort das Admin-Konto. Solange dieses Konto nicht existiert, kann jeder, der die Seite erreicht, das Konto übernehmen. Richten Sie es ein, sobald die Container laufen, und bevor Sie die Firewall für das öffentliche Internet öffnen.