Dify selbst hosten 2026 — Vollständige Anleitung
Eine vollständige, praxisnahe Anleitung für den Betrieb von Dify auf deinem eigenen VPS. Von der Serverwahl bis zu SSL-Zertifikaten und laufender Wartung — alles an einem Ort.
Inhaltsverzeichnis
- Mindestanforderungen
- Schritt 1: Server auswählen und einrichten
- Schritt 2: Docker installieren
- Schritt 3: Dify klonen und konfigurieren
- Schritt 4: Dify starten
- Schritt 5: SSL mit Nginx einrichten
- Schritt 6: Produktion absichern
- Wartung und Updates
Voraussetzungen
Mindestanforderungen
Empfehlung: Hetzner CX32 (€5,59/Mon.) — 4 vCPU, 8 GB RAM, 80 GB NVMe. Idealer Dify-Produktionsserver. Jetzt testen →
Schritt 1
Server auswählen und einrichten
VPS erstellen und SSH-Zugang einrichten
Erstelle einen VPS mit Ubuntu 22.04 LTS. Füge beim Erstellen deinen SSH-Public-Key hinzu. Nach der Provisionierung (30–60 Sekunden) per SSH verbinden:
ssh root@DEINE_SERVER_IP System aktualisieren
Alle Pakete auf einem frischen Server aktualisieren:
apt update && apt upgrade -y Nicht-Root-Benutzer erstellen (empfohlen)
Aus Sicherheitsgründen empfehlen wir, einen nicht-Root-Benutzer zu erstellen:
adduser dify
usermod -aG sudo dify
# SSH-Schlüssel für neuen Benutzer kopieren
rsync --archive --chown=dify:dify ~/.ssh /home/dify Firewall konfigurieren
UFW-Firewall für SSH, HTTP und HTTPS einrichten:
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable Schritt 2
Docker Engine installieren
Docker mit offiziellem Skript installieren
Das offizielle Docker-Installationsskript funktioniert auf Ubuntu 22.04 zuverlässig:
curl -fsSL https://get.docker.com | sh
apt-get install -y docker-compose-plugin
# Installation prüfen
docker --version
docker compose version Benutzer zur Docker-Gruppe hinzufügen
Damit du Docker ohne sudo ausführen kannst:
usermod -aG docker dify
# Neue Sitzung beginnen oder ausführen:
newgrp docker Schritt 3
Dify klonen und konfigurieren
Repository klonen
git clone https://github.com/langgenius/dify.git
cd dify/docker Umgebungsvariablen konfigurieren
Beispieldatei kopieren und einen starken Secret-Key generieren:
cp .env.example .env
# Starken Secret-Key generieren:
openssl rand -base64 42
# Ergebnis in .env einsetzen:
nano .env Wichtige .env-Einstellungen
Diese Werte musst du in der .env-Datei konfigurieren:
SECRET_KEY — Kryptografischer Schlüssel — muss zufällig und stark sein CONSOLE_WEB_URL — Öffentliche URL deiner Dify-Instanz (z.B. https://dify.deine-domain.de) APP_WEB_URL — Gleiche URL wie oben FILES_URL — URL für Datei-Uploads Schritt 4
Dify starten
Container starten
Alle Dify-Container im Hintergrundmodus starten. Beim ersten Start werden ca. 4 GB Docker-Images heruntergeladen (5–10 Minuten):
docker compose up -d
# Startvorgang verfolgen:
docker compose logs -f
# Status aller Container prüfen:
docker compose ps Erster Zugriff
Öffne http://DEINE_SERVER_IP im Browser. Du siehst den Dify-Einrichtungsassistenten. Erstelle das erste Admin-Konto und schließe die initiale Konfiguration ab.
Schritt 5
SSL mit Nginx einrichten
Nginx und Certbot installieren
apt install -y nginx certbot python3-certbot-nginx Nginx-Konfiguration erstellen
Erstelle eine neue Nginx-Site-Konfiguration:
nano /etc/nginx/sites-available/dify Füge diesen Inhalt ein (ersetze deine-domain.de mit deiner Domain):
Site aktivieren und SSL-Zertifikat einrichten
ln -s /etc/nginx/sites-available/dify /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
# Kostenloses SSL-Zertifikat von Let's Encrypt holen:
certbot --nginx -d deine-domain.de -d www.deine-domain.de Wartung
Dify aktuell halten
Dify aktualisieren
Vor jedem Update die Datenbank sichern:
cd ~/dify/docker
git pull
docker compose pull
docker compose up -d PostgreSQL-Datenbank sichern
docker compose exec db pg_dump -U postgres dify \
> backup_$(date +%Y%m%d).sql Container-Logs überprüfen
# Alle Container-Logs
docker compose logs -f
# Nur API-Server-Logs
docker compose logs -f api Bereit zum Loslegen?
Starte mit dem besten Preis-Leistungs-Verhältnis — Hetzner CX32 für €5,59/Mon.
Weiterführende Ressourcen
Häufige Fehler und wie man sie vermeidet
1. Falsche Docker-Version installiert
Ein häufiger Fehler ist die Installation einer inkompatiblen Docker-Version. Dies kann passieren, wenn das Installationsskript nicht die neueste Version bezieht.
Fix: Überprüfen Sie die Docker-Version mit docker --version. Stellen Sie sicher, dass Sie die neueste Version verwenden. Aktualisieren Sie Docker bei Bedarf mit:
apt-get install --only-upgrade docker-ce 2. Fehlende Umgebungsvariablen
Einige Benutzer vergessen, die erforderlichen Umgebungsvariablen zu setzen, was zu Laufzeitfehlern führt.
Fix: Stellen Sie sicher, dass Sie alle notwendigen Variablen in Ihrer .env-Datei definiert haben. Ein Beispiel für eine fehlende Variable könnte DATABASE_URL sein.
3. Nginx-Konfiguration nicht korrekt
Fehlerhafte Nginx-Konfiguration führt oft zu 502 Bad Gateway-Fehlern.
Fix: Überprüfen Sie die Konfiguration mit nginx -t. Achten Sie darauf, dass der Upstream-Server korrekt definiert ist und auf den richtigen Port zeigt.
4. Ports nicht freigegeben
Manchmal sind die Ports 80 und 443 nicht in der Firewall geöffnet, was zu Verbindungsproblemen führt.
Fix: Überprüfen Sie die UFW-Regeln mit ufw status. Fügen Sie fehlende Regeln hinzu:
ufw allow 80/tcp
ufw allow 443/tcp Erweiterte Konfiguration
1. Optimierung der Docker-Compose-Konfiguration
Um die Leistung zu verbessern, können Sie die Anzahl der Replikate erhöhen und Ressourcenlimits festlegen:
version: '3.8'
services:
api:
image: dify/api
deploy:
replicas: 3
resources:
limits:
cpus: '0.5'
memory: 512M 2. Caching aktivieren
Aktivieren Sie Caching in der Nginx-Konfiguration, um die Antwortzeiten zu verbessern:
location / {
proxy_pass http://localhost:8000;
proxy_cache my_cache;
proxy_cache_valid 200 1h;
}