Einführung
In diesem Tutorial zeige ich Ihnen, wie Sie Dify, eine Open-Source-LLMOps-Plattform, auf einem Linux-Server (Ubuntu, Debian oder CentOS) installieren. Außerdem richte ich automatische Backups mit Restic und einem S3-kompatiblen Objektspeicher (z. B. Cloudflare R2) ein. Am Ende dieses Tutorials verfügen Sie über eine voll funktionsfähige Dify-Instanz mit regelmäßigen Backups auf Ihrem Server.
Dify ist ein leistungsstarkes Tool zum Erstellen, Bereitstellen und Verwalten von KI-Anwendungen. Die Plattform bietet eine einfache Benutzeroberfläche zum Entwickeln von KI-Anwendungen ohne umfangreiche Programmierkenntnisse und integriert verschiedene KI-Modelle und -Dienste.
Diese Konfiguration bietet Ihnen eine robuste Umgebung für die Entwicklung und den Betrieb von KI-Anwendungen.
Voraussetzungen
Bevor Sie beginnen, benötigen Sie Folgendes:
- Ein Linux-Server (Ubuntu, Debian oder CentOS) und Zugriff auf einen Benutzer mit sudo-Berechtigungen.
- Ein Domainname, der auf die IP-Adresse Ihres Servers verweist.
- Ein SSL-Zertifikat für Ihre Domain (z. B. über Cloudflare).
Um ein SSL-Zertifikat mit Cloudflare zu generieren, müssen Sie sich zunächst anmelden und:
- Erwerben Sie eine Domain oder leiten Sie Ihre bestehende Domain an die Nameserver von Cloudflare weiter.
- Generieren Sie das SSL-Zertifikat, indem Sie Ihre Domain auswählen und zu SSL/TLS » Ursprungsserver » Zertifikat erstellen gehen.
Cloudflare SSL-Zertifikat
Wir verwenden Ubuntu als Beispielbetriebssystem, aber die Schritte sind für Debian und CentOS ähnlich.
Schritt 1 – Server vorbereiten
Zuerst aktualisieren wir das System, installieren Docker und Docker Compose und richten Git ein. Dieser Befehl erledigt das alles für uns:
sudo apt update -y && \
sudo apt upgrade -y && \
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && \
sudo apt-get update -y && \
sudo apt-get install -y docker-ce && \
sudo usermod -aG docker $USER && \
sudo curl -L https://github.com/docker/compose/releases/download/v2.26.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose && \
sudo chmod +x /usr/local/bin/docker-compose && \
sudo apt install git -yDieser Befehl führt folgende Aktionen aus:
- Aktualisiert die Systempaketliste und die installierten Pakete.
- Installiert die erforderlichen Abhängigkeiten.
- Fügt den GPG-Schlüssel und das offizielle Docker-Repository hinzu.
- Installiert Docker und Docker Compose.
- Fügt Ihren Benutzer der Docker-Gruppe hinzu.
- Installiert Git.
Zur Überprüfung können Sie folgenden Befehl ausführen:
docker --version && docker compose version && git version
Möglicherweise müssen Sie sich ab- und wieder anmelden, damit die Gruppen aktualisiert werden.
Schritt 2 – Klonen Sie das Dify-Repository
Nun klonen wir das Dify-Repository:
cd ~ && git clone https://github.com/langgenius/dify.git
Mit diesem Befehl wird der Dify-Quellcode auf Ihren Server heruntergeladen.
Schritt 3 – Dify konfigurieren
Als Nächstes richten wir die Konfigurationsdatei ein:
cd ~/dify/docker
cp .env.example .env
nano .env
Diese Befehle:
- Leitet zum Dify Docker-Verzeichnis weiter.
- Erstellen Sie eine Kopie der Beispielumgebungsdatei.
- Öffnen Sie die neue .env-Datei im Texteditor nano.
In der .env-Datei können Sie die folgenden Variablen Ihren Bedürfnissen entsprechend festlegen:
- Domänenvariablen aktualisieren:
APP_WEB_URL=your_domain_name
NGINX_HTTPS_ENABLED=true- Zertifikatsvariablen aktualisieren:
- Wenn Sie Ihr eigenes Zertifikat verwenden, können Sie die Standardwerte beibehalten und die entsprechenden Schlüsseldateien im nächsten Schritt hinzufügen.
- Wenn Sie ein Cloudflare-Zertifikat verwenden, aktualisieren Sie die Werte der Zertifikatsvariablen wie folgt:
- Zertifikatsvariablen aktualisieren:
NGINX_SSL_CERT_FILENAME=cert.pem
NGINX_SSL_CERT_KEY_FILENAME=key.pem- Andere Variablen aktualisieren:
Prüfen Sie auch die anderen Variablen in der .env-Datei und passen Sie diese Ihren Bedürfnissen entsprechend an.
Nach der Änderung drücken Sie Strg+S, um die Datei zu speichern, und Strg+X, um den Nano-Editor zu beenden.
Schritt 4 – SSL-Zertifikate einrichten
Nun fügen wir das SSL-Zertifikat hinzu.
Wenn Sie Ihr eigenes Zertifikat verwenden, können Sie es in die Dateien dify.crt und dify.key einbinden.
Wenn Sie ein Cloudflare-Zertifikat verwenden, müssen Sie es in die Dateien cert.pem und key.pem einbinden.
Persönliches Zertifikat
Erstellen Sie zwei neue Dateien:
nano ~/dify/docker/nginx/ssl/dify.crt
nano ~/dify/docker/nginx/ssl/dify.keyKopieren Sie Ihr Zertifikat und Ihren Schlüssel in diese Dateien. Speichern Sie anschließend den Editor und beenden Sie ihn (Strg+S, Strg+X).
Cloudflare-Zertifikat
Fügen Sie das Cloudflare-Zertifikat wie folgt hinzu:
nano ~/dify/docker/nginx/ssl/cert.pem
nano ~/dify/docker/nginx/ssl/key.pemKopieren Sie den Inhalt des Cloudflare-Zertifikats in diese Dateien. Speichern Sie anschließend die Dateien und beenden Sie den Editor (Strg+S, Strg+X).
Schritt 5 – Dify bereitstellen
Jetzt sind wir bereit, Dify einzusetzen:
cd ~/dify/docker docker
compose up -dDieser Befehl startet alle von Dify benötigten Container. Die Option -d führt die Container im Hintergrundmodus aus.
Nach etwa einer Minute sollten Sie Ihre Dify-Instanz sehen können, indem Sie Ihre Domain in einem Browser aufrufen.
Um den Status der Container zu überprüfen, können Sie folgenden Befehl ausführen:
docker ps -aSchritt 6 – Automatische Datensicherung einrichten
Nach der Bereitstellung von Dify richten wir automatisierte Backups mit Restic und einem S3-kompatiblen Objektspeicher (z. B. Cloudflare R2) ein. Zuerst müssen wir zum Root-Benutzer wechseln:
sudo su
cd ~Schritt 6.1 – Restic installieren
Die obigen Befehle führen uns ins Stammverzeichnis. Jetzt installieren wir Restic:
sudo apt update
sudo apt install resticSchritt 6.2 – S3-kompatiblen Bucket vorbereiten
Falls Sie noch keinen Bucket erstellt haben, erstellen Sie einen neuen Bucket bei Ihrem Provider oder einen R2-Bucket in Ihrem Cloudflare-Konto. Beachten Sie folgende Informationen:
- Bucket-Name
- ID-Zugriffsschlüssel
- Geheimer Zugriffsschlüssel
- Endpunkt-URL
Schritt 6.3 – Erstellen Sie ein Sicherungsskript
Wir erstellen ein neues Verzeichnis und richten das Backup-Skript ein:
mkdir -p /root/restic
nano /root/restic/backup.shKopieren Sie den folgenden Inhalt und fügen Sie ihn in die Datei ein:
#!/bin/bash
# Set environment variables for Restic
export RESTIC_REPOSITORY="s3:YOUR_S3_ENDPOINT_URL/YOUR_BUCKET_NAME"
export AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID"
export AWS_SECRET_ACCESS_KEY="YOUR_SECRET_ACCESS_KEY"
export RESTIC_PASSWORD_FILE="/etc/restic-password"
# Set the backup source
# Replace "YOUR_USER" with the user that installed Dify
BACKUP_SOURCE="/home/YOUR_USER/dify/docker/volumes"
# Perform the backup
restic backup $BACKUP_SOURCE
# Prune old snapshots (keep last 7 daily, last 4 weekly, and last 12 monthly backups)
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
# Check the repository for errors
restic checkErsetzen Sie die ursprünglichen Werte durch die tatsächlichen Informationen Ihres S3-Buckets und “YOUR_USER” durch den Benutzernamen, unter dem Dify installiert wurde. Speichern Sie anschließend die Datei und beenden Sie den Editor (Strg+S, Strg+X).
Schritt 6.4 – Einrichten des Restic-Repositorys
Wir setzen die Umgebungsvariablen und starten das Repository:
export RESTIC_REPOSITORY="s3:YOUR_S3_ENDPOINT_URL/YOUR_BUCKET_NAME"
export AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID"
export AWS_SECRET_ACCESS_KEY="YOUR_SECRET_ACCESS_KEY"
restic initWir speichern das Passwort in einer neuen Datei für den Cronjob:
echo "YOUR_PASSWORD" > /etc/restic-password
chmod 600 /etc/restic-passwordSchritt 6.5 – Tägliche Datensicherungen einrichten
Öffnen Sie die Cron-Datei und fügen Sie am Ende der Datei die folgende Zeile hinzu:
crontab -e 0 3 * * * /root/restic/backup.sh > /root/restic/backup.log 2>&1Dieser Befehl erstellt eine tägliche Datensicherung um 3 Uhr morgens. Speichern Sie die Datei und beenden Sie den Editor.
Schritt 7 – Einstellungen überprüfen
Um sicherzustellen, dass die Einstellungen korrekt sind:
- Führen Sie das Sicherungsskript manuell aus:
/root/restic/backup.sh- Besuchen Sie das Restic-Repository, um die Fotos anzusehen:
restic snapshotsSchritt 8 – Zukünftige Dify-Updates
Um Dify zukünftig zu aktualisieren, führen Sie diese Befehle aus:
cd ~/dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -dDiese Befehle stoppen aktuelle Container, laden neue Änderungen, laden aktualisierte Images herunter und starten neue Container.
Ergebnis
Herzlichen Glückwunsch! Sie haben Dify erfolgreich auf Ihrem Linux-Server installiert, SSL-Zertifikate eingerichtet und automatische Backups konfiguriert. Ihre Dify-Instanz ist nun einsatzbereit, und tägliche Backups gewährleisten die Sicherheit Ihrer Daten.










