AnythingLLM 2026 selbst hosten: Dokumente, Embeddings und Persistenz
AnythingLLM mit den richtigen Ports, persistentem Speicher, HTTPS, Secrets, Backups und Upgrade-Prüfungen selbst hosten. Erfahren Sie, wie Sie ein fehlendes Storage-Mount beheben.
Ein AnythingLLM-Container kann grün angezeigt werden, obwohl der für Benutzer entscheidende Prozess nicht funktioniert. Bei AnythingLLM besteht dieser versteckte Fehler meist darin, dass das Storage-Mount fehlt oder sich das Embedding-Modell nach der Indexierung geändert hat. In diesem Leitfaden gilt folgende Abnahmeprüfung: „Ein Dokument aufnehmen, auf das Embedding warten, eine Frage stellen, deren Antwort von diesem Dokument abhängt, und den zitierten Quellenausschnitt überprüfen.“ Die Bereitstellung wird von diesem Ergebnis aus rückwärts geplant.
AnythingLLM hat im Stack eine klare Aufgabe: Dokument-Chat und Retrieval ohne eine selbst entwickelte Pipeline. Die Frage für den produktiven Betrieb lautet daher nicht, ob Port 3001 einmal antwortet, sondern ob State, Abhängigkeiten und öffentliche Adresse nach einem Neustart, Update und Restore weiterhin zusammenpassen.
Ports, Prozesse und private Services
Ein hilfreiches AnythingLLM-Diagramm zeigt die öffentliche Route, den privaten Port 3001, die State-Grenze und jede unterstützende Voraussetzung. Kennzeichnen Sie, welche Pfeile Credentials übertragen und welche normalen Benutzer-Traffic darstellen. Der Netzwerkvertrag für AnythingLLM umfasst einen Embedding-Provider, einen LLM-Provider und ausreichend Speicher für Dokumente. Halten Sie private Endpunkte im internen DNS, erlauben Sie nur erforderliche ausgehende Verbindungen und geben Sie AnythingLLM ein eingeschränktes Service-Credential.
Belegen Sie das Diagramm mit einer echten Aktion: Nehmen Sie ein Dokument auf, warten Sie auf das Embedding, stellen Sie eine Frage, deren Antwort von diesem Dokument abhängt, und überprüfen Sie den zitierten Quellenausschnitt. Die wahrscheinliche Belastung entsteht durch das Parsen von Dokumenten, den Embedding-Durchsatz, die Größe des Vector Stores und den an das ausgewählte Modell gesendeten Kontext. Überwachen Sie diesen Pfad, statt alle HTTP-Requests als gleichwertig zu behandeln.
Die Wiederherstellung von AnythingLLM messbar machen
Erfassen Sie alle persistenten Artefakte: Dokumente, Vector-Indizes, Workspaces und Anwendungseinstellungen. Mounten Sie /app/server/storage vor dem Bootstrap, schreiben Sie harmlose Beispieldaten und ersetzen Sie den Container, um zu beweisen, dass dieser Pfad tatsächlich persistent ist. Berücksichtigen Sie auch Konfigurationen, die die Interpretation gespeicherter Daten verändern, und nicht nur das größte Verzeichnis.
Legen Sie eine Aufbewahrungsfrist fest, kopieren Sie Backups auf einen anderen Host und führen Sie ein Restore in einer sauberen Umgebung durch. Der AnythingLLM-Wiederherstellungstest ist abgeschlossen, wenn Dokumente, Embeddings, Workspace-Mitgliedschaften und Provider-Einstellungen gemeinsam wiederhergestellt werden und dieselbe evidenzbasierte Frage beantworten. Wenn Snapshots Teil des Plans sind, dokumentieren Sie mithilfe der Anleitung zu PITR und Snapshots, welche Daten mit welchem Mechanismus wiederhergestellt werden können.
Die Trust Boundary von AnythingLLM festlegen
Überprüfen Sie nach dem ersten Login, welche Aktionen anonyme Besucher, normale Benutzer und Administratoren jeweils ausführen können. Der zu vermeidende AnythingLLM-Fehler besteht darin, den Workspace-Login als Ersatz für die Isolierung von Provider-Keys zu behandeln. Die vorgesehene Richtlinie besteht darin, Mitglieder auf Workspaces zu beschränken und LLM-, Embedding- sowie Vector-Datenbank-Credentials auf dem Server zu halten.
Generieren Sie JWT_SECRET als langen Zufallswert. Eine Rotation macht Sessions oder Tokens normalerweise ungültig. Planen Sie daher die Auswirkungen auf Benutzer ein, statt dies als Verschlüsselungsmigration zu bezeichnen. Halten Sie Accounts für Abhängigkeiten von menschlichen Accounts getrennt, verweigern Sie nicht benötigten ausgehenden Traffic, soweit praktikabel, und begrenzen Sie die Arbeit, die durch das Parsen von Dokumenten, den Embedding-Durchsatz, die Größe des Vector Stores und den an das ausgewählte Modell gesendeten Kontext beeinflusst wird.
Was vor dem Eintreffen echter AnythingLLM-Daten erfolgreich sein muss
Der Release-Eintrag für AnythingLLM braucht Fakten, kein „sieht gut aus“. Speichern Sie den ausgewählten Image-Digest, den Konfigurations-Checksum, den öffentlichen Hostnamen und ein Ergebnis mit Zeitstempel für folgende Prüfung: ein Dokument aufnehmen, auf das Embedding warten, eine Frage stellen, deren Antwort von diesem Dokument abhängt, und den zitierten Quellenausschnitt überprüfen. Verwenden Sie Daten aus einer Nicht-Produktionsumgebung, damit die Prüfung nach jedem Deployment ausgeführt werden kann.
Beweisen Sie zwei Lifecycle-Ereignisse getrennt voneinander. Ein Container-Ersatz muss den normalen Betrieb erhalten. Ein sauberes Recovery muss zeigen, dass Dokumente, Embeddings, Workspace-Mitgliedschaften und Provider-Einstellungen gemeinsam wiederhergestellt werden und dieselbe evidenzbasierte Frage beantworten. Messen Sie während der Prüfungen das Parsen von Dokumenten, den Embedding-Durchsatz, die Größe des Vector Stores und den an das ausgewählte Modell gesendeten Kontext. Bewahren Sie das Ergebnis als erwarteten Rahmen für diese Version auf.
Testen Sie außerdem eine abgewiesene oder ungültige Bedingung: Verweigern Sie der Test-Identität vorübergehend den Zugriff auf einen Embedding-Provider, einen LLM-Provider und den für Dokumente erforderlichen Speicher. AnythingLLM sollte auf nachvollziehbare Weise fehlschlagen und keinen gesunden State überschreiben. Stellen Sie die gültige Bedingung wieder her, führen Sie das Beispiel erneut aus und hängen Sie die relevanten, redigierten Logs an. Diese Artefakte liefern für eine spätere Rollback-Entscheidung konkrete Belege.
Einen ersetzbaren AnythingLLM-Container erstellen
Ein minimaler Befehl ist hilfreich, wenn er sichtbar macht, was die Plattform später verwalten wird.
docker run -d \
--name anythingllm \
--restart unless-stopped \
-p 127.0.0.1:3001:3001 \
-v anythingllm-data:/app/server/storage \
-e JWT_SECRET=replace-with-a-long-random-value \
mintplexlabs/anythingllm:latest
Hier bleibt Port 3001 auf dem Host privat, und jeder erforderliche Pfad ist explizit angegeben. Ergänzen Sie die geprüften Verbindungseinstellungen für einen Embedding-Provider, einen LLM-Provider und ausreichend Speicher für Dokumente. Verwenden Sie private Namen für private Services. Überprüfen Sie den Start sowohl anhand der Logs als auch mit dem anwendungsspezifischen Nachweis: ein Dokument aufnehmen, auf das Embedding warten, eine Frage stellen, deren Antwort von diesem Dokument abhängt, und den zitierten Quellenausschnitt überprüfen. Sobald dies bestätigt ist, pinnen Sie die Image-Version, damit ein routinemäßiger Austausch das Verhalten nicht unbemerkt verändert.
AnythingLLM von außerhalb des Servers testen
Vermeiden Sie temporäre und permanente öffentliche Origins für AnythingLLM. Verwenden Sie stattdessen den externen HTTPS-Origin für Browser- und API-Zugriffe, zeigen Sie den ausgewählten DNS-Namen auf die Platform-Route und proxyen Sie ausschließlich auf Port 3001.
Führen Sie diese Aktion außerhalb des Hosts aus: Nehmen Sie ein Dokument auf, warten Sie auf das Embedding, stellen Sie eine Frage, deren Antwort von diesem Dokument abhängt, und überprüfen Sie den zitierten Quellenausschnitt. Wenn der Ingress fehlschlägt, behandelt der Leitfaden zur Behebung eines 502 Bad Gateway nach dem Deployment Fehler bei Ports und Listenern. Wenn AnythingLLM die Anfrage erhält, aber das Storage-Mount fehlt oder sich das Embedding-Modell nach der Indexierung geändert hat, weist die Evidenz nun auf einen Bereich hinter dem Proxy hin.
Fehlerübungen für AnythingLLM
Erstellen Sie Dashboards für das Parsen von Dokumenten, den Embedding-Durchsatz, die Größe des Vector Stores und den an das ausgewählte Modell gesendeten Kontext. Ein CPU-Diagramm ohne Kontext zu dieser Workload kann nicht erklären, warum AnythingLLM langsam ist. Ergänzen Sie eine synthetische oder geplante Prüfung, die versucht, ein Dokument aufzunehmen, auf das Embedding zu warten, eine Frage zu stellen, deren Antwort von diesem Dokument abhängt, und den zitierten Quellenausschnitt anhand harmloser Testdaten zu überprüfen.
Berücksichtigen Sie vor einem Upgrade dieses anwendungsspezifische Risiko: Eine Änderung des Embedding-Modells kann eine erneute Indexierung erfordern, während Anwendungs-Releases Workspace- und Vector-Metadaten migrieren können. Stellen Sie ein aktuelles Backup in einem isolierten Deployment wieder her, führen Sie die Migrationen dort aus und vergleichen Sie das Verhalten. Wenn das Storage-Mount fehlt oder sich das Embedding-Modell nach der Indexierung geändert hat, prüfen Sie die betroffene Grenze — öffentlicher Origin, Storage oder Abhängigkeit — bevor Sie andere Einstellungen verändern.
Was Dockup für AnythingLLM automatisieren sollte
Für AnythingLLM kann Dockup die Route und das TLS-Zertifikat erstellen, Mounts erhalten, Secrets bereitstellen und einen Embedding-Provider, einen LLM-Provider sowie ausreichend Speicher für Dokumente über ein privates Netzwerk erreichbar machen — bei einem Deployment auf Dockup oder auf angebundenen Servern.
Das Release-Gate bleibt dennoch die konkrete AnythingLLM-Transaktion: ein Dokument aufnehmen, auf das Embedding warten, eine Frage stellen, deren Antwort von diesem Dokument abhängt, und den zitierten Quellenausschnitt überprüfen. Überprüfen Sie außerdem die Restore-Bedingung: Dokumente, Embeddings, Workspace-Mitgliedschaften und Provider-Einstellungen werden gemeinsam wiederhergestellt und beantworten dieselbe evidenzbasierte Frage. Diese beiden Prüfungen zeigen, ob das Deployment funktioniert und ob es wiederhergestellt werden kann.
Häufig gestellte Fragen
Was benötigt AnythingLLM für ein produktives Deployment?
Routen Sie den AnythingLLM-Container auf Port 3001 über einen HTTPS-Origin. Die unterstützenden Netzwerkanforderungen sind ein Embedding-Provider, ein LLM-Provider und ausreichend Speicher für Dokumente. Erklären Sie AnythingLLM erst dann für bereit, wenn Sie ein Dokument aufnehmen, auf das Embedding warten, eine Frage stellen, deren Antwort von diesem Dokument abhängt, und den zitierten Quellenausschnitt überprüfen können.
Welche AnythingLLM-Daten gehören in ein Backup?
Persistieren Sie /app/server/storage und nehmen Sie Dokumente, Vector-Indizes, Workspaces und Anwendungseinstellungen in dasselbe Recovery-Manifest auf. Ein sauberes AnythingLLM-Restore ist nur dann erfolgreich, wenn Dokumente, Embeddings, Workspace-Mitgliedschaften und Provider-Einstellungen gemeinsam wiederhergestellt werden und dieselbe evidenzbasierte Frage beantworten.
Benötigt AnythingLLM hinter einem Reverse Proxy HTTPS?
Verwenden Sie HTTPS für den öffentlichen AnythingLLM-Origin und halten Sie Port 3001 auf der internen Route. Wenden Sie die AnythingLLM-Einstellung korrekt an: Verwenden Sie den externen HTTPS-Origin für Browser- und API-Zugriffe. Bei AnythingLLM schützt HTTPS Credentials und Benutzerinhalte bei der Übertragung und sorgt für ein konsistentes, vom Origin abhängiges Verhalten des Clients.
Wie sollte ein AnythingLLM-Upgrade getestet werden?
Stellen Sie den aktuellen AnythingLLM-State in einem isolierten Deployment wieder her, spielen Sie die Zielversion ein und wiederholen Sie die Abnahmetransaktion. Achten Sie besonders darauf, dass eine Änderung des Embedding-Modells eine erneute Indexierung erfordern kann, während Anwendungs-Releases Workspace- und Vector-Metadaten migrieren können. Behalten Sie das vorherige AnythingLLM-Image, bis die Grenzen für Datenmigration und Rollback verstanden sind.
