Erste Schritte

Docker-Installation

TraDoc aus GHCR auf dem einheitlichen Docker-Host- und Container-Port 2507 bereitstellen.

TraDoc verwendet Port 2507 auf dem Docker-Host und 2507 im Produktionscontainer. Datenbank, Dokumente und Anbieterdaten bleiben in ./data erhalten.

Kopierfertiges Docker Compose

services:
  tradoc:
    image: ghcr.io/lucas-lepajollec/tradoc:latest
    ports:
      - "2507:2507"
    env_file:
      - path: .env
        required: false
    volumes:
      - ./data:/app/data
    extra_hosts:
      - "host.docker.internal:host-gateway"
    restart: unless-stopped

Starte und prüfe TraDoc:

mkdir -p data
sudo chown -R 1000:1000 data
docker compose pull
docker compose up -d --force-recreate
docker compose ps
curl http://localhost:2507/health

Die ersten beiden Befehle bereiten einen Linux-Bind-Mount für die Nicht-Root-UID/GID 1000:1000 des Images vor. Docker Desktop verwaltet die Freigabe von Hostdateien normalerweise selbst. Ersetze korrekte Eigentumsrechte niemals durch chmod 777.

Für den ersten Start ist keine .env nötig. Eine optionale, nicht versionierte .env kann die anfänglichen Anbietereinstellungen überschreiben; kopiere .env.example und ersetze die Beispielwerte vor dem Neustart. Ein älterer APP_SECRET-Wert wird ignoriert.

Öffne http://<server-ip>:2507 im LAN. Das Image läuft bereits ohne Root-Rechte und enthält seinen eigenen Healthcheck auf Port 2507; Compose wiederholt diese Einstellungen nicht. Konfiguriere danach Anbieter, Schlüssel und Modell in TraDoc.

Der Eintrag host.docker.internal ermöglicht dem Container den Zugriff auf einen Inferenzserver, der direkt auf dem Docker-Host läuft. Ändere LLM_ENDPOINT, wenn sich der Anbieter anderswo befindet.

Aus dem Quellcode bauen

git clone https://github.com/lucas-lepajollec/tradoc.git
cd tradoc
docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build

Das Overlay baut tradoc:local, ohne Port 2507 oder ./data zu ändern.

Sicher aktualisieren

Stoppe TraDoc und sichere das vollständige Verzeichnis data vor einem Update. Lade dann das Image und erstelle den Container neu. Verwende bei normalen Updates nie docker compose down -v und lösche data nicht. Siehe Aktualisierungen.