Aktualisiert März 2026 Docker Compose

Dify Docker Compose Einrichtung 2026

Vollständige Anleitung zur Dify Docker Compose Konfiguration — Ports anpassen, Datenbanken einrichten, Umgebungsvariablen optimieren und den Produktionsbetrieb sicherstellen.

Difys Container-Architektur

Dify besteht aus mehreren Docker-Containern, die zusammenarbeiten. Hier ist ein Überblick über die wichtigsten Dienste:

nginx
Reverse Proxy
Leitet HTTP-Traffic an API und Web weiter
Port: 80, 443
api
Backend-API
Haupt-API-Server (Python/Flask)
Port: 5001
worker
Background Worker
Celery-Worker für asynchrone Aufgaben
Port: —
web
Frontend
Next.js-Frontend-Anwendung
Port: 3000
db
PostgreSQL
Hauptdatenbank für Dify-Daten
Port: 5432
redis
Cache/Queue
Session-Cache und Task-Queue
Port: 6379
weaviate
Vektordatenbank
RAG-Pipeline Vektorspeicher
Port: 8080
sandbox
Code-Ausführung
Sichere Sandbox für Code-Tools
Port: 8194

Umgebungsvariablen (.env)

Erstelle die .env-Datei aus der Beispieldatei und passe diese Einstellungen an:

# Wichtigste .env-Einstellungen
SECRET_KEY=dein_zufaelliger_schluessel_hier
CONSOLE_WEB_URL=https://dify.deine-domain.de
APP_WEB_URL=https://dify.deine-domain.de
FILES_URL=https://dify.deine-domain.de

# Datenbank
DB_USERNAME=postgres
DB_PASSWORD=sicheres_passwort
DB_HOST=db
DB_PORT=5432
DB_DATABASE=dify

# Redis
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=redis_passwort
SECRET_KEY Pflichtfeld

Kryptografischer Schlüssel für Sitzungen und Tokens. Muss zufällig und mindestens 32 Zeichen lang sein.

openssl rand -base64 42
CONSOLE_WEB_URL / APP_WEB_URL Pflichtfeld

Öffentliche URL deiner Dify-Instanz. Muss mit https:// beginnen in Produktion. Ohne diese Einstellung funktionieren Datei-Uploads und OAuth nicht korrekt.

DB_PASSWORD Pflichtfeld

PostgreSQL-Datenbankpasswort. Setze ein starkes Passwort — auch wenn die Datenbank intern ist.

openssl rand -base64 24
REDIS_PASSWORD

Redis-Passwort. Empfohlen für Produktionsinstallationen.

Standard-Ports und Konflikte lösen

Wenn Port 80 bereits belegt ist (z.B. durch einen anderen Nginx), musst du Difys Ports in docker-compose.yml anpassen:

# In docker-compose.yml unter dem nginx-Service:
# Standard:
#   ports:
#     - "80:80"
# Geändert auf Port 8080:
ports:
  - "8080:80"

Tipp: Wenn du Nginx als äußeren Reverse Proxy nutzt, empfehlen wir, Dify auf einem internen Port (z.B. 8080) zu betreiben und den Nginx-Traffic darauf weiterzuleiten.

Produktions-Checkliste

SECRET_KEY auf starken zufälligen Wert gesetzt
CONSOLE_WEB_URL und APP_WEB_URL auf HTTPS-Domain gesetzt
Starke Datenbankpasswörter vergeben
UFW-Firewall konfiguriert (nur 22, 80, 443 offen)
Nginx Reverse Proxy eingerichtet
SSL-Zertifikat mit Certbot installiert
Automatische Datenbank-Backups eingerichtet
Docker auto-restart konfiguriert (restart: unless-stopped)
Monitoring-Alerts eingerichtet