Nachdem ich in meinen vorherigen Beiträgen gezeigt habe, wie ihr Ollama, Open WebUI, ComfyUI, LLaMA Factory, vLLM und LM Studio auf dem Gigabyte AI TOP ATOM installiert, kommt jetzt eine weitere interessante Alternative für alle, die eine professionelle Chat-Oberfläche mit erweiterten Features wie RAG (Retrieval-Augmented Generation), Multi-User-Support und Plugin-System suchen: LibreChat ist eine Open-Source-Alternative zu ChatGPT mit umfangreichen Konfigurationsmöglichkeiten und Unterstützung für lokale Ollama-Modelle.
In diesem Beitrag zeige ich euch, wie ich LibreChat auf meinem Gigabyte AI TOP ATOM installiert und so konfiguriert habe, dass es mit dem bereits laufenden Ollama-Server zusammenarbeitet. Da das System auf der gleichen Plattform wie die NVIDIA DGX Spark basiert und die ARM64-Architektur (aarch64) mit NVIDIA Grace CPU nutzt, funktionieren die offiziellen Container hervorragend sofern man ein paar spezifische Anpassungen für die ARM-Architektur vornimmt. Denn ganz so einfach klappte es nicht aber mit meiner Anleitung hier sollte ihr alles in ca. 30 Minuten aufgesetzt haben. Von diesen 30 Minuten entfällt der größte Anteil auf das Herunterladen der Container-Images. So war es zumindest bei mir da ich kein ganz so schneller Internet habe.
Hinweis: Für meine Erfahrungsberichte hier auf meinem Blog habe ich den Gigabyte AI TOP ATOM von der Firma MIFCOM ausgeliehen bekommen.
Die Grundidee: Professionelle Chat-Oberfläche mit erweiterten Features
LibreChat ist eine vollständig selbst gehostete Alternative zu ChatGPT mit Funktionen wie RAG für Dokumentenintegration und Multi-User-Support. Das System besteht aus mehreren Containern: einem API-Server, MongoDB für die Datenbank, Meilisearch für die Suche und PostgreSQL/pgvector für die RAG-Funktionalität.
Das Besondere beim AI TOP ATOM: Docker Compose erkennt automatisch die aarch64-Architektur. Da MongoDB in der neuesten Version jedoch oft spezielle CPU-Instruktionen (AVX) erwartet, die auf ARM-Clustern zu Problemen führen können, zeige ich euch hier den Weg über die stabilere Version 6.0 für die DGX Spark Architektur.
Was ihr dafür braucht:
- Einen Gigabyte AI TOP ATOM (oder vergleichbares Grace-System mit ARM64/aarch64 Architektur)
- Ollama bereits installiert (siehe meinen vorherigen Blogpost)
- Docker und Docker Compose
- Terminal-Zugriff (SSH oder direkt)
- Git zum Klonen des Repositorys
- Mehrere Ollama-Modelle bereits heruntergeladen (z.B. ministral-3:14b, qwen3:4b, qwen3:30b-thinking, qwen3-coder:30b, deepseek-ocr:latest, gpt-oss:20b)
Phase 1: System-Voraussetzungen prüfen
Zuerst prüfen wir im Terminal, ob die Architektur und Docker korrekt bereitstehen:
Architektur prüfen: uname -m (sollte aarch64 ausgeben)
Docker prüfen: docker compose version
Phase 2: LibreChat Repository klonen
Wir erstellen ein Verzeichnis und laden den aktuellen Code von GitHub:
Befehl: mkdir -p ~/librechat && cd ~/librechat
Befehl: git clone https://github.com/danny-avila/LibreChat.git .
Phase 3: Verzeichnisse vorbereiten und Berechtigungen setzen (Wichtig!)
Dieser Schritt ist kritisch, um Permission-Fehler auf ARM-Systemen zu vermeiden!
Erstellt die benötigten Verzeichnisse:
Befehl: mkdir -p data/db data/meili logs images uploads
Setzt die korrekten Besitzrechte und Berechtigungen:
Befehl: sudo chown -R 1000:1000 data logs images uploads
Befehl: sudo chmod -R 775 data logs images uploads
Warum das wichtig ist: Ohne diese Berechtigungen können die MongoDB- und Meilisearch-Container nicht in die Datenverzeichnisse auf ARM-Systemen schreiben.
Phase 4: Umgebungsvariablen konfigurieren (.env)
Kopiert die Beispiel-Umgebungsdatei:
Befehl: cp .env.example .env
Sicherheitsschlüssel generieren:
Damit LibreChat startet, müssen wir die Keys in der .env füllen. Das geht am schnellsten so:
Befehl: sed -i "s/CREDS_KEY=.*/CREDS_KEY=$(openssl rand -hex 32)/" .env
Befehl: sed -i "s/CREDS_IV=.*/CREDS_IV=$(openssl rand -hex 16)/" .env
Befehl: sed -i "s/JWT_SECRET=.*/JWT_SECRET=$(openssl rand -hex 32)/" .env
Befehl: sed -i "s/JWT_REFRESH_SECRET=.*/JWT_REFRESH_SECRET=$(openssl rand -hex 32)/" .env
Tipp für den AI TOP ATOM: Setzt eure User-IDs in die .env, um Permission-Fehler zu vermeiden:
Befehl: echo "UID=$(id -u)" >> .env && echo "GID=$(id -g)" >> .env
Phase 5: Der ARM-Fix für MongoDB & Meilisearch
Hier kommt der wichtigste Teil für den AI TOP ATOM. Die Standard-Konfiguration von LibreChat nutzt MongoDB 8.0, was auf der Grace CPU (ARM64) oft zu Abstürzen führt. Wir stellen das System auf die stabilere Version 6.0 um.
Öffnet die docker-compose.yml:
Befehl: nano docker-compose.yml
Sucht den Abschnitt mongodb: und passt das Image sowie den User-Tag an:
mongodb:
container_name: chat-mongodb
image: mongo:6.0 # WICHTIG: Version 6.0 für ARM-Stabilität
restart: always
user: "1000:1000" # Verhindert Permission-Errors
volumes:
- ./data/db:/data/db
command: mongod --noauth
Gleiches gilt für Meilisearch. Stellt sicher, dass auch hier ein fester User definiert ist, damit die Suchindizes geschrieben werden können:
meilisearch:
container_name: chat-meilisearch
image: getmeili/meilisearch:v1.12.3
user: "1000:1000"
environment:
- MEILI_HOST=http://0.0.0.0:7700
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
volumes:
- ./data/meili:/meili_data
Wichtige Änderungen:
- MongoDB Image von Standard (8.0) auf
mongo:6.0geändert user: "1000:1000"zu beiden Services (MongoDB und Meilisearch) hinzugefügt- Dies stellt sicher, dass Container mit korrekten Berechtigungen auf ARM-Systemen laufen
Phase 6: Konfiguration für Ollama (librechat.yaml)
Wir kopieren die Beispiel-Konfiguration und passen sie an:
Befehl: cp librechat.example.yaml librechat.yaml
Befehl: nano librechat.yaml
Fügt unter endpoints: custom: eure Ollama-Modelle hinzu. Wichtig ist die baseURL:
endpoints:
custom:
# Ollama Local Models
- name: 'Ollama'
apiKey: 'ollama'
baseURL: 'http://host.docker.internal:11434/v1/'
models:
default:
- 'ministral-3:14b'
- 'qwen3:4b'
- 'qwen3:30b-thinking'
- 'qwen3-coder:30b'
- 'deepseek-ocr:latest'
- 'gpt-oss:20b'
fetch: true
titleConvo: true
titleModel: 'current_model'
summarize: false
summaryModel: 'current_model'
forcePrompt: false
modelDisplayLabel: 'Ollama'
Hinweis: host.docker.internal ist zwingend erforderlich, damit der Container den Ollama-Dienst auf dem Host erreicht.
Wichtige Konfigurationshinweise:
baseURL: Musshost.docker.internalstattlocalhostverwenden, wenn LibreChat in Docker läuftapiKey: Auf ‚ollama‘ gesetzt (erforderlich, wird aber von Ollama ignoriert)fetch: true: Entdeckt automatisch neue Modelle, die zu Ollama hinzugefügt wurdentitleModel: 'current_model': Verhindert, dass mehrere Modelle gleichzeitig geladen werden
Phase 7: Docker Compose Override-Datei erstellen
Die Standard-docker-compose.yml von LibreChat mountet die librechat.yaml nicht standardmäßig. Wir erstellen eine Override-Datei, um sie einzubinden:
Datei erstellen: docker-compose.override.yaml
# Docker Compose override file to mount librechat.yaml configuration
services:
api:
volumes:
# Mount the librechat.yaml configuration file
- ./librechat.yaml:/app/librechat.yaml
Warum das nötig war: Ohne diesen Mount konnte LibreChat die Konfigurationsdatei nicht lesen und zeigte den Fehler: ENOENT: no such file or directory, open '/app/librechat.yaml'
Phase 8: Ollama-Service verifizieren
Prüft, ob Ollama läuft und erreichbar ist:
Befehl: systemctl status ollama
Befehl: ollama list
Befehl: curl http://localhost:11434/api/tags
Phase 9: LibreChat starten
Nachdem wir die Pfade und Versionen korrigiert haben, starten wir die Container-Struktur neu. Docker Compose lädt nun automatisch die passenden ARM64-Images für die gewählten Versionen herunter:
Befehl: docker compose up -d
Prüft den Status nach ca. 20 Sekunden:
Befehl: docker compose ps
Wenn in der Spalte STATUS bei allen Containern (api, mongodb, meilisearch, rag_api, vectordb) ein freundliches Up steht, war die Installation erfolgreich.
Falls der Start anfangs fehlgeschlagen ist:
Falls die librechat.yaml nicht gemountet war, startet nach dem Erstellen der Override-Datei neu:
docker compose down
docker compose up -d
Phase 10: Unerwünschte Endpoints entfernen (Optional)
Falls ihr andere Provider (Groq, Mistral, OpenRouter, Helicone, Portkey) nicht benötigt, entfernt diese aus der librechat.yaml:
Datei bearbeiten:
Befehl: nano librechat.yaml
Entfernt alle Custom-Endpoint-Konfigurationen außer Ollama aus dem endpoints.custom Abschnitt.
Neustart, um die Änderungen anzuwenden:
Befehl: docker compose restart api
Phase 11: Zugriff und erster Test
Öffnet im Browser: http://<IP-ADRESSE-ATOM>:3080 (oder http://localhost:3080). Erstellt den ersten Account (dieser wird automatisch Admin). Unter den Modellen findet ihr nun eure Ollama-Instanzen. Ein kurzer Test wie „Warum ist der Himmel blau?“ zeigt euch sofort die Power der lokalen GPU-Beschleunigung.
Troubleshooting Tipps
- Permission Denied: Prüft, ob die Ordner
dataundlogswirklich dem User 1000 gehören (sudo chown -R 1000:1000 data logs images uploads). - MongoDB Loop: Falls MongoDB ständig neu startet, stellt sicher, dass ihr Version 6.0 in der YAML nutzt und keine alten Datenreste im
dataOrdner liegen. - Ollama Endpoint erscheint nicht: Prüft, ob die
librechat.yamlkorrekt gemountet ist. Logs prüfen mitdocker compose logs api | grep -i ollama. - Container starten nicht: Prüft, ob alle Verzeichnisse existieren und die Berechtigungen korrekt sind. Löscht bei Bedarf alte Container und Volumes:
docker compose down -v(Vorsicht: löscht Daten!)
Zusammenfassung & Fazit
LibreChat auf dem Gigabyte AI TOP ATOM ist eine extrem mächtige Kombination. Dank der 256GB Unified Memory der Grace Hopper Architektur (oder dem massiven VRAM eurer AI TOP Setups) könnt ihr auch riesige Modelle mit professioneller Oberfläche im Team nutzen. Die RAG-Funktionalität macht das System zudem zum idealen lokalen Wissensspeicher für sensible Dokumente.
Die wichtigsten Erfolgsfaktoren auf ARM-Systemen:
- MongoDB Version 6.0 statt 8.0 verwenden
- Verzeichnisberechtigungen vor dem Start korrekt setzen
- User-Tags in docker-compose.yml zu den Services hinzufügen
- Sicherstellen, dass alle benötigten Verzeichnisse mit korrekten Besitzrechten existieren
Geänderte/Erstellte Dateien:
librechat.yaml– Ollama-Endpoint-Konfiguration hinzugefügt, andere Provider entferntdocker-compose.override.yaml– Erstellt, um Config-Datei zu mountendocker-compose.yml– MongoDB auf Version 6.0 geändert und User-Tags für ARM-Stabilität hinzugefügt.env– Sicherheitsschlüssel generiert und UID/GID hinzugefügt
Laufende Docker-Container:
- LibreChat (api container) – Port 3080
- MongoDB 6.0 (chat-mongodb) – ARM-stabile Version
- Meilisearch (chat-meilisearch) – Mit korrekten User-Berechtigungen
- PostgreSQL mit pgvector (vectordb)
- RAG API (rag_api)
Viel Erfolg beim Experimentieren! Habt ihr LibreChat schon für RAG mit euren eigenen PDFs genutzt? Schreibt es mir in die Kommentare!








Ein toller Guide der leicht zugänglich und verständlich ist. Perfekt für ein kleines Side-Project geeignet. Aktuell half mir noch mein…
Thank you for this great tutorial, could you share n8n workflow and comfyui workflow please?
Hallo Anton, die Meldung besagt das in meinem Beisiel Methoden verwendet werden die veraltet (deprecated) sind. Also müsstest Du die…
Danke für das Tool! Ich habe erst kürzlich angefangen mich mit der Thematik zu beschäftigen und bin für meine Erwartungen…
Hallo, ich habe ihre Anleitung befolgt und bekomme im letzten Schritt leider immer folgende Meldung im Terminal: bash <(wget -qO-…