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
    TLS vs. SSL – Die wichtigsten Unterschiede verstehen und warum sie wichtig sind

    TLS vs. SSL – Unterschiede, Geschichte und Bedeutung für die Websicherheit

    Wenn es um Websicherheit geht, fallen ständig die Begriffe «SSL» und «TLS». Doch worin genau besteht der Unterschied zwischen den beiden? Warum gilt TLS heute als sicherer Webstandard, während SSL fast in Vergessenheit geraten ist? In diesem Artikel beleuchten wir dieses Thema professionell, um Ihnen ein besseres Verständnis von Websicherheitsprotokollen und der Bedeutung der richtigen Wahl zu vermitteln.