Dify unter Linux mit automatischen Backups installieren

0 Aktien
0
0
0
0

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 -y

Dieser 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:
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.key

    Kopieren 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.pem

    Kopieren 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 -d

    Dieser 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 -a

    Schritt 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 restic

    Schritt 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.sh

    Kopieren 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 check

    Ersetzen 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 init

    Wir speichern das Passwort in einer neuen Datei für den Cronjob:

    echo "YOUR_PASSWORD" > /etc/restic-password
    chmod 600 /etc/restic-password

    Schritt 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>&1

    Dieser 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 snapshots

    Schritt 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 -d

    Diese 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.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    Das könnte Ihnen auch gefallen