Docker (Remote-Linux)
Diese Anweisungen sind für jemanden gedacht, der bei einer Docker Installation auf einem entfernten Ubuntu-Server bei Null anfängt
Um diese Anleitung nutzen zu können, benötigen Sie einen bereitgestellten Remote-Computer oder eine VM. Obwohl Sie diese Anleitung auch mit einer lokalen Installation verwenden können, beachten Sie bitte, dass sie ursprünglich für die Cloud-Bereitstellung geschrieben wurde.
⚠️ Diese Anleitung wurde ursprünglich für Digital Ocean konzipiert, daher müssen Sie die Anweisungen für andere Plattformen möglicherweise anpassen, aber das Grundprinzip bleibt unverändert.
Teil I: Installation von Docker und anderen Abhängigkeiten:
Es gibt viele Möglichkeiten, Docker auf Linux-Systemen einzurichten. Ich werde Sie durch die beste und empfohlene Methode führen, basierend auf dieser Anleitung.
Beachte, dass der "beste" Weg für eine Docker-Installation unter Ubuntu nicht der "schnellste" oder "einfachste" ist. Er ist der beste Weg für eine langfristige Nutzung (d. h. schnellere Updates, Sicherheits-Patches usw.).
1. Docker-Abhängigkeiten aktualisieren und installieren
Zuerst aktualisieren wir unsere Paketliste und installieren die erforderlichen Docker-Abhängigkeiten.
Verwenden Sie anschließend den folgenden Befehl, um die Abhängigkeiten oder erforderlichen Pakete zu installieren.
Installationshinweise
- Geben Sie „Y“ für alle [Y/n] (Ja/Nein) Terminal-Eingabeaufforderungen in diesem gesamten Leitfaden ein.
- Nach der ersten [Y/n]-Aufforderung erhalten Sie den ersten von einigen lila Bildschirmen, die Sie zum Neustart der Dienste auffordern.
- Jedes Mal, wenn dies geschieht, können Sie sicher die EINGABETASTE für die standardmäßig bereits ausgewählten Optionen drücken:
- Falls deine Droplet-Konsole zu irgendeinem Zeitpunkt die Verbindung trennt, führe die folgenden Schritte aus und mache dann dort weiter, wo du aufgehört hast:
- Greifen Sie erneut auf die Konsole zu, wie oben angegeben
- Wechseln Sie zu dem Benutzer, den Sie mit
su - <yourusername>erstellt haben.
2. Docker-Repository zu APT-Quellen hinzufügen
Während die Installation von Docker Engine aus den Ubuntu-Repositorys einfacher ist, bietet das Hinzufügen des offiziellen Docker-Repositorys schnellere Updates. Deshalb ist dies die empfohlene Methode.
Zuerst rufen wir den GPG-Schlüssel ab, der für die Verbindung zum Docker-Repository benötigt wird. Verwenden Sie dazu den folgenden Befehl.
Fügen Sie als Nächstes das Repository zur Quellenliste hinzu. Obwohl Sie es auch manuell hinzufügen können, erledigt der folgende Befehl dies automatisch für Sie.
Der obige Befehl fügt automatisch Ihren Release-Codenamen ein (jammy für 22.04, focal für 20.04 und bionic für 18.04).
Aktualisieren Sie abschließend Ihre Pakete erneut.
Wenn Sie vergessen, den GPG-Schlüssel hinzuzufügen, schlägt der obige Schritt mit einer Fehlermeldung fehl. Andernfalls fahren wir mit der Installation von Docker unter Ubuntu fort.
3. Docker installieren
Was ist der Unterschied zwischen docker.io und docker-ce?
docker.io ist das docker-Paket, das von einigen gängigen Linux-Distributionen (z. B. Ubuntu/Debian) angeboten wird. docker-ce hingegen ist das docker-Paket aus dem offiziellen Docker-Repository. Normalerweise ist docker-ce aktueller und wird bevorzugt.
Wir werden nun docker-ce (und nicht das Paket docker.io) installieren
Der violette Bildschirm bedeutet, dass Sie ENTER drücken müssen. :)
Empfohlen: Sie sollten sicherstellen, dass der erstellte Benutzer zur docker Gruppe hinzugefügt wird, um Befehle nahtlos verwenden zu können:
Starten wir nun das System neu, um sicherzustellen, dass alles in Ordnung ist.
Nach dem Neustart können Sie, falls Sie die Browser-Droplet-Konsole verwenden, auf „Neu laden“ klicken und warten, bis Sie wieder Zugriff auf die Konsole haben.
Hinweis: Jedes Mal, wenn Sie einen Neustart mit sudo reboot durchführen, sollten Sie wieder zu dem Benutzer wechseln, den Sie zuvor mit su - <yourusername> eingerichtet haben.
4. Überprüfen, ob Docker unter Ubuntu läuft
Es gibt viele Möglichkeiten zu überprüfen, ob Docker unter Ubuntu läuft. Eine Möglichkeit ist die Verwendung des folgenden Befehls:
Du solltest eine Ausgabe sehen, die active (running) als Status anzeigt.
Beenden Sie dieses Protokoll, indem Sie STRG (oder CMD) + C drücken.
5. Docker Compose installieren
Da wir das offizielle Repository von Docker bereits in Schritt 2 hinzugefügt haben, ist die Installation von Docker Compose über das offizielle Compose-Plugin unkompliziert:
Überprüfen Sie die Installation:
Hinweis: Docker Compose v2 verwendet den Befehl
docker compose(ohne Bindestrich) anstelle des veraltetendocker-compose. Alle Befehle in dieser Anleitung verwenden die moderne Syntax.
6. Als Teil dieser Anleitung empfehle ich, dass Sie git und npm installiert haben:
Obwohl technisch nicht erforderlich, machen git und npm die Installation/Aktualisierung sehr einfach:
Lass die Matrix-Linien erscheinen.
Sie können die erfolgreiche Installation dieser Pakete mit dem folgenden Befehl überprüfen:
Hinweis: Dies kann veraltete Node.js- und npm-Versionen installieren. Wenn Sie LibreChat direkt auf dem Host ausführen, verwenden Sie Node.js
v24.16.0mit npmv11.16.0. Für diese Docker-basierte Anleitung spielt die Node.js-Version des Hosts keine Rolle, da LibreChat innerhalb von Containern ausgeführt wird.
Ok, jetzt, da du das Droplet eingerichtet hast, wirst du nun die App selbst einrichten
Teil II: Einrichtung von LibreChat
1. Das Repo klonen
Von der droplet Befehlszeile (als Ihr Benutzer, nicht als root):
2. LibreChat Konfigurations- und Umgebungsdateien erstellen
Konfigurationsdatei (librechat.yaml)
Als Nächstes erstellen wir die LibreChat Konfigurationsdatei, auch bekannt als librechat.yaml, die eine Anpassung der App-Einstellungen sowie benutzerdefinierte endpoints ermöglicht.
Egal, ob Sie die App weiter anpassen möchten oder nicht, sie ist für die von uns verwendete deploy-compose.yml-Datei erforderlich, sodass wir eine mit dem absoluten Mindestwert erstellen können, um zu starten:
Sie gelangen nun zum Editor-Bildschirm, in den Sie Folgendes einfügen können:
Verlassen Sie den Editor mit CTRL + X, dann Y zum Speichern und ENTER zur Bestätigung.
Konfigurationsvalidierung
LibreChat wird mit einem Fehler (Exit-Code 1) beendet, wenn Ihre librechat.yaml Datei Validierungsfehler enthält. Dieses Fail-Fast-Verhalten stellt sicher, dass Konfigurationsprobleme frühzeitig bei der Bereitstellung erkannt werden.
Bevor Sie die Bereitstellung durchführen, validieren Sie Ihre Konfiguration mithilfe des YAML Validator. Wenn Ihre CI/CD-Pipeline den Server startet, wird sie bei einer ungültigen Konfiguration sofort abbrechen und so Bereitstellungen mit falsch konfigurierten Einstellungen verhindern.
Umgebung (.env) Datei
Die Standardwerte reichen aus, um die App zu starten und auszuführen, sodass Sie Ihre Anmeldedaten über die Web-App eingeben können.
Es wird jedoch dringend empfohlen, die "secret"-Werte für zusätzliche Sicherheit von ihren Standardwerten zu ändern. Die API-Startprotokolle werden Sie warnen, falls Sie dies nicht tun.
Zur Vereinfachung können Sie dies ausführen, um Ihre eigenen Werte zu generieren:
https://www.librechat.ai/toolkit/creds_generator
Wenn Sie Anmeldedaten für alle Benutzer Ihrer Instanz bereitstellen möchten, sollten Sie diese hinzufügen, während Sie diese Datei noch bearbeiten:
Wie zuvor, beenden Sie den Editor mit CTRL + X, dann Y zum Speichern und ENTER zur Bestätigung.
Das war's!
Für eine gründliche Konfiguration sollten Sie jedoch Ihre .env Datei nach Bedarf bearbeiten und die Kommentare in der Datei sowie die unten aufgeführten Ressourcen lesen.
Dies ist eine solche .env Variable, die beachtet werden sollte. Sie deaktiviert externe Registrierungen, falls Sie dies tun möchten, nachdem Sie Ihr Konto erstellt haben.
Ressourcen:
3. Docker starten
Jetzt können wir den App-Container starten. Beim ersten Mal verwenden wir den vollständigen Befehl, später können wir einen Kurzbefehl verwenden.
Sie können das Terminal sicher schließen, wenn Sie möchten – die Docker-App wird weiterhin ausgeführt.
Hinweis: Hierfür wird eine spezielle compose-Datei verwendet, die für diese bereitgestellte Umgebung optimiert ist. Wenn Sie hier weitere Konfigurationen wünschen, sollten Sie die Dateien deploy-compose.yml und Dockerfile.multi untersuchen, um zu sehen, wie sie eingerichtet sind. Wir erstellen das Image in dieser Umgebung nicht, da der Arbeitsspeicher dafür nicht ausreicht. Stattdessen ziehen wir das neueste dev-api Image von LibreChat, das nach jedem Push auf main automatisch erstellt wird.
Wenn Sie eine Domain für die Verwendung mit LibreChat einrichten, verwendet diese compose-Datei die nginx-Datei unter client/nginx.conf. Anweisungen dazu finden Sie weiter unten in Teil V.
4. Sobald die App läuft, können Sie unter http://yourserverip darauf zugreifen
Gehen Sie zurück zur Droplet-Seite, um Ihre Server-IP zu erhalten, kopieren Sie diese und fügen Sie sie in Ihren Browser ein!
Registrieren Sie sich, melden Sie sich an und genießen Sie Ihr eigenes, privat gehostetes, remote LibreChat :)
Teil III: Aktualisierung von LibreChat
Ich habe diesen Schritt ziemlich einfach gestaltet, vorausgesetzt, alles oben Genannte wurde erfolgreich installiert und Sie haben die git-Historie nicht bearbeitet.
Hinweis: Wenn Sie an einem bearbeiteten Branch mit eigenen Commits arbeiten, zum Beispiel mit Änderungen an client/nginx.conf, sollten Sie config/deployed-update.js überprüfen, um einige der Befehle nach eigenem Ermessen manuell auszuführen. Siehe Teil V für weitere Informationen dazu.
Führen Sie den folgenden Befehl für ein automatisiertes Update aus
Stoppen des Docker-Containers
Dies führt einfach
docker compose -f ./deploy-compose.yml downaus
Starten des Docker-Containers
Dies führt einfach
docker compose -f ./deploy-compose.yml up -daus.
Aktive Docker-Container überprüfen
Sie können manuell ohne die Skripte aktualisieren, falls Probleme auftreten.
Teil IV: Bearbeiten der NGINX-Datei (für benutzerdefinierte Domains und erweiterte Konfigurationen)
Falls Sie die NGINX-Datei aus irgendeinem Grund bearbeiten möchten, beispielsweise um Ihren Server auf eine benutzerdefinierte Domain zu verweisen, verwenden Sie Folgendes:
Ich werde dich nicht durch die Einrichtung einer benutzerdefinierten Domain oder andere Änderungen an NGINX führen; du kannst dir den Cloudflare guide, den Traefik guide oder den NGINX guide ansehen, um mit benutzerdefinierten Domains zu beginnen.
Ich werde dir jedoch zeigen, was du auf der LibreChat-Seite für eine benutzerdefinierte Domain mit diesem Setup bearbeiten musst.
Da NGINX standardmäßig als Proxy-Pass verwendet wird, bearbeite ich nur Folgendes:
Hinweis: Dies funktioniert, weil die Datei deploy-compose.yml standardmäßig NGINX verwendet, im Gegensatz zur Hauptdatei docker-compose.yml. Wie immer können Sie die Compose-Dateien nach Bedarf konfigurieren.
Übertrage diese Änderungen nun auf einen separaten Branch:
Um Änderungen an einem git-Branch zu committen, müssen Sie sich bei git identifizieren. Dies können fiktive Werte sein, aber wenn Sie möchten, dass sie mit GitHub synchronisiert werden, falls Sie diesen Branch auf ein geforktes Repo von LibreChat pushen, verwenden Sie Ihre GitHub-E-Mail-Adresse.
Das Aktualisieren auf einem bearbeiteten Branch funktioniert jetzt etwas anders
Du solltest nun alles bereit haben!
Warnung Sie werden Merge-Konflikte erleben, wenn Sie anfangen, den Branch maßgeblich zu bearbeiten. Dies wird nicht empfohlen, es sei denn, Sie wissen, was Sie tun.
Beachte, dass Änderungen am Code in dieser Umgebung nicht übernommen werden, da die compose-Datei die automatisch von GitHub erstellten Docker-Images abruft.
Teil V: Verwenden Sie das neueste stabile Release anstelle des neuesten Main-Branch
Standardmäßig lädt dieses Setup die neuesten Updates des main-Branches von LibreChat herunter. Wenn Sie stattdessen die neueste "stabile" Version bevorzugen, die durch die latest tags definiert ist, müssen Sie die deploy-compose.yml bearbeiten und Ihre Änderungen genau wie oben in Teil V committen. Beachten Sie, dass Sie in diesem Fall nicht sofort von den neuesten Funktionen profitieren werden, sobald diese verfügbar sind.
Lassen Sie uns deploy-compose.yml bearbeiten:
Ändere librechat-dev-api zu librechat-api:
Stagen und committen Sie wie in Teil V, und schon sind Sie fertig!
Wie finden Sie diese Anleitung?