Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Künstliche Intelligenz 01.06.2026 · 9 min Lesezeit

AnythingLLM installieren (Docker): Lokale KI-Zentrale mit RAG-Workspaces und Ollama

AnythingLLM per Docker installieren: lokale KI-Zentrale mit Ollama, RAG-Workspaces für eigene Dokumente und Multi-User-Rollen, mit Backup, Updates und Prüfschritten.

Geprüft am 14.10.2026 · für AnythingLLM 1.18.0

WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Kompakter PC mit Glasseitenteil auf einem Schreibtisch in einem hellen Arbeitszimmer, daneben Ordner und Papierstapel

Mit AnythingLLM bauen Sie eine lokale KI-Zentrale auf: Dokumente per RAG durchsuchbar machen, mit lokalen Sprachmodellen chatten und mehrere Nutzer mit Rollen verwalten, auf Ihrem eigenen Server ohne Datenabfluss an Cloud-Anbieter. Die Anleitung zeigt den Weg per Docker vom Container über Ollama als LLM-Backend bis zu RAG-Workspaces und Multi-User-Verwaltung. Sie richtet sich an Admins und Selfhoster, die eine zentrale Oberfläche für ihre lokale KI suchen.

Was ist AnythingLLM und warum lohnt es sich?

AnythingLLM von Mintplex Labs ist eine Open-Source-Plattform mit Chat-Oberfläche, Dokumenten-RAG (Retrieval Augmented Generation), Vektordatenbank und Nutzerverwaltung. Hochgeladene Dokumente zerlegt sie in Abschnitte (Chunks), erzeugt daraus Embeddings und legt sie in der Vektordatenbank ab. Bei einer Frage sucht das System die passenden Textstellen und gibt sie mit der Frage an das Sprachmodell, das so auf Basis Ihrer Dokumente antwortet.

Mit Ollama läuft die gesamte Verarbeitung lokal; Dokumente und Prompts verlassen den Server nicht. Organisiert wird über Workspaces: Jeder ist ein abgeschotteter RAG-Kontext mit eigenen Dokumenten, Systemprompt und Einstellungen, etwa „Interne IT-Doku“, „Vertragsrecht“ und „Projekt X“.

Wann ist AnythingLLM die richtige Wahl?

AnythingLLM passt, wenn Sie eine Wissensplattform mit Dokumentenbasis und mehreren Nutzern brauchen. Für einen schlanken Chat mit lokalen Modellen ist Ollama mit Open WebUI oft einfacher (Anleitung weiter unten).

Voraussetzungen

  1. Ein Linux-Server, eine VM oder ein Homeserver mit Docker (unter Linux mindestens Version 20.10) und Docker Compose, alternativ Windows oder macOS mit Docker Desktop. Das Image gibt es für x86-64 (amd64) und ARM64.
  2. Für AnythingLLM selbst mindestens 2 GB RAM und 2 CPU-Kerne. Für Ollama-Modelle kommen je nach Modellgröße 8 GB RAM und mehr hinzu; eine GPU beschleunigt deutlich, ist aber kein Muss.
  3. Eine laufende Ollama-Instanz auf dem Host (Port 11434) mit mindestens einem Chat-Modell (z. B. llama3.1) und optional einem Embedding-Modell (z. B. nomic-embed-text).
  4. Mindestens 10 GB freier Speicherplatz für Image, Dokumente und Vektordatenbank; der Bedarf wächst mit Ihrer Dokumentenmenge.
  5. Grundkenntnisse in der Shell und im Umgang mit Docker-Volumes.

Schritt 1: Docker prüfen und Verzeichnisstruktur anlegen

Stellen Sie sicher, dass Docker läuft (sonst zuerst die Docker-Grundinstallation, Link am Ende), und legen Sie einen Ordner für die persistenten Daten an.

  1. Docker-Version prüfen:
docker --version
docker compose version
  1. Projektverzeichnis und den Daten-Unterordner anlegen:
mkdir -p ~/anythingllm/storage
cd ~/anythingllm

storage nimmt interne Datenbank, Vektorindizes, hochgeladene Dokumente und Konfiguration auf, die .env die Einstellungen aus der Oberfläche (LLM-Provider, Embedder). Der Container läuft mit UID 1000; damit er schreiben darf, übergeben Sie ihm den Ordner:

touch storage/anythingllm.db storage/.env
sudo chown -R 1000:1000 ~/anythingllm/storage

Setzen Sie hier kein chmod 777, denn dann könnte jeder Benutzer des Systems Ihre Dokumente und Zugangsdaten lesen.

Verifizieren: ls -la ~/anythingllm/storage zeigt anythingllm.db und .env mit dem Eigentümer 1000 (bzw. Ihrem Benutzernamen, falls dieser die UID 1000 hat).

Schritt 2: docker-compose.yml mit Volume und Ollama-Anbindung erstellen

Die docker-compose.yml im Projektordner definiert Container, Port 3001, Storage-Volume samt .env und den Zugriff auf die Ollama-Instanz des Hosts über host.docker.internal.

services:
  anythingllm:
    image: mintplexlabs/anythingllm:1.18.0
    container_name: anythingllm
    ports:
      - "3001:3001"
    # nur nötig, wenn AnythingLLM Webseiten einlesen soll (Browser im Container)
    cap_add:
      - SYS_ADMIN
    environment:
      - STORAGE_DIR=/app/server/storage
      - JWT_SECRET=HIER-LANGEN-ZUFALLSWERT-EINTRAGEN
    volumes:
      - ./storage:/app/server/storage
      - ./storage/.env:/app/server/.env
    extra_hosts:
      - "host.docker.internal:host-gateway"
    restart: unless-stopped

Ersetzen Sie JWT_SECRET durch einen langen Zufallswert, etwa aus openssl rand -hex 32. ./storage und die eingebundene .env überstehen so jeden Neustart und jedes Update.

Hinweis zu host.docker.internal unter Linux

extra_hosts macht den Host im Container als host.docker.internal erreichbar, nötig für die Ollama-URL. Unter Docker Desktop (Windows/macOS) ist der Name automatisch verfügbar.

Verifizieren: docker compose config gibt die Konfiguration ohne Fehlermeldung aus und zeigt beide Einträge unter volumes.

Schritt 3: Container starten und Erstkonfiguration aufrufen

  1. Container im Hintergrund starten:
docker compose up -d
  1. Logs beobachten, bis der Server bereit ist (Abbruch mit Strg+C):
docker compose logs -f anythingllm
  1. Sobald der Server läuft, öffnen Sie im Browser die Oberfläche:
http://SERVER-IP:3001

Beim ersten Aufruf wählen Sie im Einrichtungsassistenten LLM-Provider, Embedding-Anbieter und Vektordatenbank. Die Vektordatenbank LanceDB ist integriert und braucht keinen eigenen Container.

Port 3001 ist unverschlüsselt. Für Zugriff von außen nutzen Sie einen Reverse Proxy mit HTTPS oder ein VPN, keine direkte Freigabe.

Verifizieren: docker compose ps zeigt den Container als running, und im Browser erscheint unter http://SERVER-IP:3001 der Einrichtungsassistent.

Schritt 4: Ollama als LLM-Provider verbinden

Ollama darf nicht nur auf 127.0.0.1 lauschen, sonst erreicht der Container es über host.docker.internal nicht.

  1. Auf dem Host prüfen, ob Ollama antwortet, und ein Modell laden:
curl http://localhost:11434/api/tags
ollama pull llama3.1
  1. Ollama auf allen Schnittstellen lauschen lassen. Bei einer Installation als systemd-Dienst öffnen Sie mit sudo systemctl edit ollama eine Override-Datei und tragen dort ein:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"

Übernehmen Sie die Änderung mit sudo systemctl daemon-reload und sudo systemctl restart ollama. Sperren Sie Port 11434 nach außen, denn Ollama hat keine eigene Anmeldung.

  1. In AnythingLLM unter Settings → AI Providers → LLM als Provider Ollama wählen.
  2. Als Ollama Base URL eintragen:
http://host.docker.internal:11434
  1. Das gewünschte Chat-Modell (z. B. llama3.1) aus der Liste auswählen und speichern.

Verifizieren: docker exec anythingllm curl -s http://host.docker.internal:11434/api/tags liefert eine JSON-Liste mit Ihren Modellen, und in AnythingLLM erscheint das Modell in der Auswahlliste.

Schritt 5: Embeddings konfigurieren

Für das RAG braucht AnythingLLM ein Embedding-Modell, das Ihre Dokumente in Vektoren umwandelt. Sie haben zwei Optionen:

  1. Lokal über Ollama: Embedding-Modell laden und als Embedding-Provider wählen; auch dieser Schritt bleibt lokal.
ollama pull nomic-embed-text
  1. Eingebauter Embedder: AnythingLLM bringt einen lokalen Embedder mit, der ohne Zusatzmodell funktioniert. Für kleinere Setups reicht das.

Den Anbieter stellen Sie unter Settings → AI Providers → Embedder ein. Beide Varianten arbeiten lokal ohne externe API.

Verifizieren: Die Embedder-Seite zeigt nach dem Speichern den gewählten Anbieter, und grep -i embedding ~/anythingllm/storage/.env enthält die passende Einstellung.

Schritt 6: Workspace anlegen und RAG-Dokumente hochladen

Workspaces sind das Herz von AnythingLLM. Jeder Workspace ist ein eigener RAG-Kontext mit eigenen Dokumenten und eigenem Systemprompt.

  1. In der Oberfläche links auf New Workspace klicken und einen sprechenden Namen vergeben (z. B. „IT-Dokumentation“).
  2. Den Workspace öffnen und über das Upload-Symbol Dokumente hinzufügen. Unterstützt werden unter anderem PDF, TXT, DOCX und CSV.
  3. Die Dateien im Dialog mit Move to Workspace übernehmen und mit Save and Embed einbetten; sie werden in Chunks zerlegt und als Embeddings abgelegt.
  4. Optional einen Systemprompt pro Workspace setzen (z. B. „Antworte ausschließlich auf Basis der bereitgestellten Dokumente“).

Ein eigener Workspace je Einsatzzweck hält den Kontext getrennt; das RAG durchsucht nur dessen Dokumente.

Verifizieren: Im Dokumentendialog stehen die Dateien auf der Workspace-Seite, und unter ~/anythingllm/storage/lancedb ist ein neuer Unterordner entstanden.

Schritt 7: Multi-User und Rollen aktivieren

Standardmäßig läuft AnythingLLM im Single-User-Modus; für Teams aktivieren Sie den integrierten Mehrbenutzermodus mit Rollen.

  1. Unter Settings → Security → Multi-User Mode den Mehrbenutzermodus aktivieren.
  2. Ein Admin-Konto mit Benutzername und starkem Passwort anlegen. Dieses Konto verwaltet künftig alle Nutzer.
  3. Unter Settings → Users weitere Nutzer hinzufügen und ihnen Rollen zuweisen: Admin (volle Verwaltung), Manager (Workspaces und Nutzer eingeschränkt) oder Default (nur zugewiesene Workspaces nutzen).
  4. Jedem Nutzer gezielt die erlaubten Workspaces zuweisen, damit niemand Dokumente sieht, die ihn nichts angehen.

Verifizieren: Nach dem Abmelden verlangt die Oberfläche eine Anmeldung, und ein Testnutzer mit der Rolle Default sieht nach dem Login nur die ihm zugewiesenen Workspaces.

Schritt 8: Verifikation und erster Test

Prüfen Sie nun, ob die gesamte Kette funktioniert, vom Modell über die Embeddings bis zum RAG.

  1. Im Workspace eine Frage stellen, deren Antwort nur in den hochgeladenen Dokumenten steht.
  2. Prüfen, ob die Antwort die Inhalte korrekt wiedergibt und ob unter der Antwort die zitierten Quellen (Citations) angezeigt werden.
  3. Container-Status und Erreichbarkeit prüfen:
docker compose ps
curl -I http://localhost:3001

Verifizieren: Die Antwort passt zum Dokument und zeigt Citations, docker compose ps meldet running, und curl -I liefert HTTP/1.1 200 OK. Bleibt die Antwort generisch oder ohne Quellen, kontrollieren Sie, ob die Dokumente wirklich eingebettet wurden und ein Embedding-Modell konfiguriert ist.

Updates und Wartung

Updates sind dank Storage-Ordner unkompliziert: neues Image ziehen, Container neu starten, die Daten bleiben. Legen Sie vorher ein Backup an (siehe unten).

Die compose.yaml legt die Version mit dem Tag 1.18.0 fest (Stand 14.10.2026), damit ein docker compose pull nicht unbemerkt eine neue Version einspielt. Für ein Update tragen Sie die neue Versionsnummer aus den GitHub-Releases im Image-Tag ein. Das gleitende Tag latest funktioniert ebenfalls, macht Updates aber unkontrolliert.

docker compose pull
docker compose up -d
docker image prune -f

Lesen Sie bei größeren Versionssprüngen die Release-Notes, da sich Einstellungen oder das Datenformat ändern können, und prüfen Sie nach jedem Update Workspaces und Ollama-Verbindung.

Beispiel Update von 1.17.0 auf 1.18.0: Tag in der compose.yaml ändern, docker compose pull und docker compose up -d. Laut Release-Notes ist 1.18.0 ein Fehlerbehebungs-Release ohne neue Pflichtvariablen. Im Test blieben Workspace und API-Schlüssel erhalten, das Protokoll meldete „No pending migrations to apply.“, und /api/ping antwortete mit HTTP 200. Für Kubernetes-Probes verweist das Projekt jetzt auf /api/ping.

Backup

Sichern Sie regelmäßig den gesamten storage-Ordner mit Datenbank, Dokumenten, Vektorindizes und .env. Stoppen Sie den Container kurz für einen konsistenten Stand und packen Sie das Verzeichnis ein.

cd ~/anythingllm
docker compose stop
sudo tar czf anythingllm-backup-$(date +%F).tar.gz storage/
docker compose start

Bewahren Sie die Sicherung auf einem getrennten Datenträger oder Server auf. Zum Wiederherstellen entpacken Sie das Archiv an die alte Stelle und starten den Container neu. Die Sicherung enthält Zugangsdaten und Dokumente; schützen Sie sie entsprechend.

Troubleshooting

  1. Ollama wird nicht erreicht (ECONNREFUSED): Prüfen Sie, ob Ollama mit OLLAMA_HOST=0.0.0.0:11434 läuft und der Eintrag host.docker.internal:host-gateway unter extra_hosts gesetzt ist. Testen Sie die Verbindung aus dem Container heraus mit docker exec -it anythingllm curl http://host.docker.internal:11434/api/tags.
  2. Keine Antworten aus Dokumenten: Vergewissern Sie sich, dass die Dateien mit Save and Embed tatsächlich eingebettet wurden und ein Embedding-Provider konfiguriert ist.
  3. Permission denied im Storage: Der Ordner gehört nicht der UID 1000. Korrigieren Sie das mit sudo chown -R 1000:1000 ~/anythingllm/storage.
  4. Einstellungen nach Update weg: Die .env war nicht eingebunden. Ergänzen Sie den Volume-Eintrag ./storage/.env:/app/server/.env und richten Sie die Provider einmal neu ein.
  5. Port 3001 belegt: Ändern Sie das Port-Mapping in der Compose-Datei, z. B. auf "3002:3001".
  6. Modell antwortet sehr langsam: Meist fehlt eine GPU oder das Modell ist zu groß. Wählen Sie ein kleineres Ollama-Modell oder nutzen Sie GPU-Beschleunigung für Ollama.

Häufige Fragen

Läuft AnythingLLM komplett lokal und offline?

Ja. Mit Ollama als LLM-Provider und lokalem Embedder verarbeitet AnythingLLM Prompts, Dokumente und Embeddings vollständig auf Ihrem Server, ohne Cloud-API.

Was ist der Unterschied zwischen einem Workspace und einem Chat?

Ein Workspace ist ein abgeschotteter RAG-Kontext mit eigenen Dokumenten, Systemprompt und Einstellungen; ein Chat ist ein Gesprächsverlauf darin.

Welche Dateiformate kann AnythingLLM für RAG verarbeiten?

Unter anderem PDF, TXT, DOCX und CSV; Webseiten und weitere Quellen lesen die integrierten Connectoren ein.

Brauche ich zwingend eine GPU?

Nein. Die Geschwindigkeit hängt an Ollama: Eine GPU beschleunigt deutlich, für kleinere Modelle reicht die CPU.

Kann ich AnythingLLM mit mehreren Nutzern betreiben?

Ja, über den Multi-User-Modus mit den Rollen Admin, Manager und Default und gezielt zugewiesenen Workspaces.

Fazit

Mit Docker, Storage-Ordner und Ollama-Anbindung läuft AnythingLLM als lokale KI-Zentrale: Chat mit lokalen Modellen, RAG über eigene Dokumente, Workspaces und Nutzer mit Rollen, ohne dass Daten den Server verlassen.

Weiterführende Anleitungen

Wenn Sie das LLM-Backend noch nicht eingerichtet haben, starten Sie mit der Anleitung Ollama mit Open WebUI per Docker für lokale LLMs. Fehlt Ihnen die Container-Basis, hilft die Docker-Installation Schritt für Schritt. Weitere Selfhosting-Anleitungen finden Sie in der Kategorie Docker.

Quellen

Offizielle Dokumentation und Quellcode: AnythingLLM Documentation, AnythingLLM: How to use Docker, Mintplex-Labs/anything-llm auf GitHub sowie die Release v1.18.0, die offizielle Docker-Image-Seite und die Ollama-FAQ.