Option A: Docker (Empfohlen)
Keine lokale Python- oder Node.js-Installation erforderlich – alles wird im Container erstellt.Konfigurieren — nur LLM_API_KEY ist erforderlich
cp example.env .envBearbeiten Sie .env: Setzen Sie LLM_API_KEY (und optional LLM_BASE_URL, LLM_MODEL)
Erstellen und Ausführen (beim ersten Mal oder nach dem Abrufen neuer Code)
docker compose up —build -dfim-data, fim-uploads) persistent gespeichert und überstehen Container-Neustarts.
Hinweis: Der Docker-Modus unterstützt kein Hot Reload. Code-Änderungen erfordern ein Rebuild des Image (docker compose up --build -d). Für aktive Entwicklung mit Live Reload verwenden Sie Option B unten.
Option B: Lokale Entwicklung
Voraussetzungen: Python 3.11+, uv, Node.js 18+, pnpm..env bearbeiten: LLM_API_KEY setzen
Installieren
uv sync —all-extras cd frontend && pnpm install && cd ..Starten (mit Hot Reload)
./start.shLLM_BASE_URL=https://api.openai.com/v1 # Standard — für andere Anbieter ändern
LLM_MODEL=gpt-4o # Standard — für andere Modelle ändern
JINA_API_KEY=jina_… # entsperrt Web-Tools + RAGSkalierung mit Workern
Standardmäßig wird die API mit einem einzelnen Worker-Prozess ausgeführt. Um mehr gleichzeitige Benutzer zu unterstützen, erhöhen Sie die Worker über.env:
- PostgreSQL — SQLite ist ein Single-Writer und unterstützt keine gleichzeitigen Schreibvorgänge. Setzen Sie
DATABASE_URLauf eine PostgreSQL-Verbindungszeichenfolge. - Redis — bereits in Docker Compose enthalten (automatisch konfiguriert). Verwaltet die Relay von Interrupts/Injections zwischen Workern.
WORKERS=1 (Standard) sind weder Redis noch PostgreSQL erforderlich — SQLite funktioniert einwandfrei.
Nginx Reverse Proxy
Für HTTPS und benutzerdefinierte Domäne setzen Sie einen Nginx Reverse Proxy davor:/api/* Anfragen automatisch weiter. Nur Port 3000 muss freigegeben werden.
Code Execution Sandbox
Wenn Sie die Code-Ausführungs-Sandbox (CODE_EXEC_BACKEND=docker) verwenden, mounten Sie den Docker-Socket:
Script-Bereitstellung (Bare Metal)
Für Bare-Metal-Server oder benutzerdefinierte Prozessmanager verwenden Sie./start.sh direkt: