Skip to main content
☁️ Option 0: Cloud (Keine Einrichtung erforderlich) Möchten Sie nicht selbst hosten? Probieren Sie FIM One sofort unter cloud.fim.ai aus – kein Docker, keine API-Schlüssel, keine Konfiguration. Melden Sie sich an und schon können Sie loslegen. Früher Zugriff.

Option A: Docker (Empfohlen)

Keine lokale Python- oder Node.js-Installation erforderlich — alles wird im Container erstellt.
Öffnen Sie http://localhost:3000 — beim ersten Start werden Sie durch die Erstellung eines Admin-Kontos geführt. Das war’s. Nach dem ersten Build benötigen nachfolgende Starts nur:
Daten werden in Docker Named Volumes (fim-data, fim-uploads) gespeichert und bleiben nach Container-Neustarts erhalten. Hinweis: Der Docker-Modus unterstützt kein Hot Reload. Code-Änderungen erfordern ein Neuerstellen des Images (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.

Konfiguration

FIM One funktioniert mit jedem OpenAI-kompatiblen LLM-Anbieter — OpenAI, DeepSeek, Anthropic, Qwen, Ollama, vLLM und mehr. Jina AI ermöglicht Websuche/Abruf, Einbettung und die vollständige RAG-Pipeline (kostenlose Stufe verfügbar). Minimale .env:
Eine vollständige Liste aller Konfigurationsoptionen finden Sie in der Referenz Umgebungsvariablen.

Produktionsbereitstellung

Docker (Empfohlen)

docker compose up -d startet alles, was Sie benötigen — keine manuelle Servicekonfiguration erforderlich:

Skalierung mit Workern

Standardmäßig wird die API mit einem einzelnen Worker-Prozess ausgeführt. Um mehr gleichzeitige Benutzer zu verarbeiten, erhöhen Sie die Worker über .env:
Anforderungen für mehrere Worker:
  • PostgreSQL — SQLite ist ein Single-Writer und unterstützt keine gleichzeitigen Schreibvorgänge. Setzen Sie DATABASE_URL auf eine PostgreSQL-Verbindungszeichenfolge.
  • Redis — bereits in Docker Compose enthalten (automatisch konfiguriert). Verwaltet das Cross-Worker-Interrupt/Inject-Relay.
Mit 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:
Die API läuft intern auf Port 8000 — Next.js leitet /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:

Cloudflare Tunnel

Verwenden Sie für ein Setup ohne offene Ports Cloudflare Tunnel anstelle von Nginx. Der gesamte Datenverkehr fließt über Cloudflares Edge — es ist nicht erforderlich, die Ports 80/443 freizugeben, SSL-Zertifikate zu verwalten oder Firewall-Regeln zu konfigurieren.
Benutzer in Festlandchina: Cloudflare Free/Pro/Business-Pläne haben keine PoPs (Points-of-Presence) in Festlandchina. Der Datenverkehr aus Festlandchina wird zu Overseas-Edges weitergeleitet (typischerweise US West), was häufig zu 502-Fehlern und hoher Latenz führt. Verwenden Sie nicht Cloudflare Tunnel, wenn Ihre primären Benutzer in Festlandchina sind. Cloudflare Enterprise mit China Network (JD Cloud-Partnerschaft) ist erforderlich für zuverlässigen Zugriff auf Festlandchina.
Einrichtung:
1

Tunnel erstellen

Gehen Sie zu Cloudflare Zero Trust → Networks → Tunnels → Create a tunnel. Wählen Sie Cloudflared als Connector-Typ.
2

Öffentlichen Hostnamen konfigurieren

Fügen Sie in der Tunnel-Konfiguration einen öffentlichen Hostnamen hinzu:Lassen Sie alle anderen Einstellungen (HTTP Host Header, Chunked Encoding, Timeouts, Access) auf ihren Standardwerten.
Die URL verwendet den Docker-Servicenamen fim-one, nicht localhost, da cloudflared als separater Container im selben Docker-Netzwerk ausgeführt wird.
3

Tunnel-Token kopieren

Suchen Sie auf der Seite Configure des Tunnels den Installationsbefehl — er enthält einen Token, der mit eyJ... beginnt. Kopieren Sie ihn.
4

Token zu .env hinzufügen

5

Mit dem Tunnel-Overlay bereitstellen

Das docker-compose.tunnel.yml-Overlay fügt einen cloudflared-Sidecar-Container hinzu. Die Basis-docker-compose.yml bleibt unverändert — Community-Benutzer ohne Cloudflare können weiterhin docker compose up -d wie zuvor verwenden.
6

Alten DNS-Eintrag entfernen

Wenn Ihre Domain zuvor einen A-Eintrag hatte, der auf die IP-Adresse Ihres Servers verweist, löschen Sie ihn in Cloudflare DNS. Der Tunnel erstellt automatisch einen CNAME-Eintrag, der auf seinen Edge-Endpunkt verweist.
7

Server-Ports schließen

Entfernen Sie (oder kommentieren Sie aus) den Abschnitt ports aus docker-compose.yml auf Ihrem Server. Der Datenverkehr fließt nun ausschließlich durch den Tunnel — keine eingehenden Ports erforderlich.
Cloudflare Tunnel ist kostenlos bei allen Plänen, einschließlich Free. Es gibt keine Bandbreiten- oder Datenverkehrsgrenzen.

Script-Bereitstellung (Bare Metal)

Für Bare-Metal-Server oder benutzerdefinierte Prozessmanager verwenden Sie ./start.sh direkt:
In diesem Modus ist Redis nicht automatisch enthalten. Das System läuft standardmäßig im Single-Worker-, In-Process-Modus — geeignet für Bereitstellungen mit geringem Datenverkehr. Um Multi-Worker mit Redis lokal zu aktivieren: