Installation (Entwicklung)
Diese Anleitung bringt Orimora für Entwicklung und Evaluation auf deinem Rechner zum Laufen. Für den empfohlenen Weg brauchst du keine Docker-Vorkenntnisse.
Für Produktion auf deinem eigenen Server siehe Deployment. Für Coolify siehe Coolify Setup.
Welcher Weg passt?
Abschnitt betitelt „Welcher Weg passt?“| Weg | Für wen | Was du installierst |
|---|---|---|
| A — Docker Compose (empfohlen) | Einsteiger, schneller Start | Nur Docker Desktop — Postgres, Redis und Mailpit starten automatisch |
| B — Native Yarn | Aktive Entwicklung am Code | Node.js 22+, Yarn, PostgreSQL 16+, Redis 7+ auf deinem Rechner |
Beide Wege nutzen dieselbe .env-Datei. Die Variablen-Referenz unten gilt für beide.
Weg A — Docker Compose (empfohlen)
-
Docker Desktop installieren (Mac/Windows) oder Docker Engine + Compose unter Linux. Prüfen:
Terminal-Fenster docker compose version -
Repository klonen und Node-Abhängigkeiten installieren:
Terminal-Fenster git clone https://github.com/defcon1702/orimora.git orimoracd orimorayarn install -
Infrastruktur starten (PostgreSQL, Redis, Mailpit):
Terminal-Fenster docker compose up -dLiest
docker-compose.ymlim Repo-Root. Dienste:Dienst Zweck Host-Port postgresDatenbank 5433 → Container 5432 redisSessions, Queues, Rate Limits 6379 mailpitFängt ausgehende E-Mails ab (Magic Links) SMTP 1026, Web-UI 9025 Optionale Redis-GUI (Profil
tools):docker compose --profile tools up -d→ http://localhost:8081 -
.env-Datei anlegen:Terminal-Fenster cp .env.example .envFüge diese minimale, funktionierende Dev-Konfiguration ein (die Geheimnisse sind Beispiele — erzeuge für alles Geteilte eigene Werte):
Terminal-Fenster # ── Required ─────────────────────────────────────────────DATABASE_URL=postgresql://kb:kb_dev_password@localhost:5433/knowledgebaseREDIS_URL=redis://localhost:6379APP_URL=http://localhost:5173SESSION_SECRET=PASTE_64_HEX_CHARS_HEREMAGIC_LINK_SECRET=PASTE_ANOTHER_64_HEX_CHARS_HERELLM_ENCRYPTION_KEY=PASTE_THIRD_64_HEX_CHARS_HEREPUBLISHING_ENCRYPTION_KEY=PASTE_FOURTH_64_HEX_CHARS_HERE# ── Email via Mailpit (optional but useful) ──────────────SMTP_HOST=localhostSMTP_PORT=1026SMTP_FROM=noreply@orimora.local# ── Dev defaults ─────────────────────────────────────────NODE_ENV=developmentALLOW_REGISTRATION=trueErzeuge vier unabhängige Geheimnisse (vier Mal ausführen):
Terminal-Fenster node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" -
Datenbank-Migrationen ausführen:
Terminal-Fenster yarn db:migrateNach jedem
git pull, der Dateien untersrc/lib/server/db/migrations/hinzufügt, wiederholen. -
Dev-Server starten:
Terminal-Fenster yarn dev -
App öffnen unter http://localhost:5173 und das Onboarding abschließen (legt deinen Workspace-Admin an).
-
Health prüfen:
Terminal-Fenster curl -s http://localhost:5173/api/healthMagic-Link-E-Mails erscheinen im Mailpit-UI: http://localhost:9025
Weg B — Native Yarn (ohne Docker)
-
Voraussetzungen installieren:
Werkzeug Version Node.js 22 LTS oder 24 Yarn wie in den Repo-Skripten genutzt PostgreSQL 16+ Redis 7+ -
Klonen und installieren (wie Weg A, Schritt 2).
-
PostgreSQL-Datenbank anlegen:
Terminal-Fenster createdb knowledgebaseredis-cli ping # must return PONG -
.envkonfigurieren — passeDATABASE_URLan deinen lokalen Postgres-Benutzer/-Passwort/-Port an (Standard-Port 5432, nicht 5433):Terminal-Fenster DATABASE_URL=postgresql://YOUR_USER:YOUR_PASSWORD@localhost:5432/knowledgebaseREDIS_URL=redis://localhost:6379APP_URL=http://localhost:5173# … same secrets as Path A -
Migrieren, Dev-Server, prüfen — wie Weg A, Schritte 5–8.
Umgebungsvariablen — vollständige Referenz
Abschnitt betitelt „Umgebungsvariablen — vollständige Referenz“Die kanonische Liste liegt in .env.example. Unten: jede Variable in verständlicher Sprache.
Pflicht für lokale Entwicklung — 7 Variablen
Minimum, um den Dev-Server zu booten.
| Variable | Was sie tut | Beispiel / wie setzen |
|---|---|---|
DATABASE_URL | PostgreSQL-Verbindungsstring | Weg A: postgresql://kb:kb_dev_password@localhost:5433/knowledgebase |
REDIS_URL | Redis für Sessions, Queues, Rate Limits | redis://localhost:6379 |
APP_URL | Öffentliche URL der App (Magic Links, OAuth-Redirects) | http://localhost:5173 im Vite-Dev |
SESSION_SECRET | Signiert HTTP-only-Session-Cookies (mind. 32 Bytes) | 64 Hex-Zeichen via randomBytes(32) |
MAGIC_LINK_SECRET | Signiert passwortlose Login-Tokens | Separater 64-Hex-Wert |
LLM_ENCRYPTION_KEY | Verschlüsselt gespeicherte LLM-API-Keys at rest | 64 Hex-Zeichen — auch nötig, wenn KI ungenutzt |
PUBLISHING_ENCRYPTION_KEY | Verschlüsselt Webhook-Secrets und Publishing-Credentials | 64 Hex-Zeichen |
Docker-Compose-Helfer
| Variable | Was sie tut | Standard |
|---|---|---|
COMPOSE_FILE | Welche Compose-Datei docker compose lokal nutzt | docker-compose.yml (in .env.example gesetzt) |
Optionale Auth-Härtung
| Variable | Was sie tut | Standard wenn ungesetzt |
|---|---|---|
API_KEY_SECRET | Hasht API-Keys at rest | MAGIC_LINK_SECRET |
EMAIL_CHANGE_SECRET | Signiert E-Mail-Änderungs-Tokens | MAGIC_LINK_SECRET |
ACCOUNT_DELETION_SECRET | Signiert Account-Löschungs-Tokens | SESSION_SECRET |
SESSION_IDLE_TIMEOUT_DAYS | Loggt inaktive Sessions nach N Tagen aus; 0 = aus | 7 |
OAuth (optional)
Registriere Redirect-URIs in der jeweiligen Provider-Konsole als {APP_URL}/auth/google/callback, /auth/microsoft/callback, /auth/oidc/callback.
| Variable | Was sie tut |
|---|---|
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET | Google-Anmeldung |
MICROSOFT_TENANT_ID | Azure-Tenant-ID oder common |
MICROSOFT_CLIENT_ID / MICROSOFT_CLIENT_SECRET | Microsoft-Anmeldung |
OIDC_ISSUER / OIDC_CLIENT_ID / OIDC_CLIENT_SECRET | Generisches OpenID Connect |
OIDC_SCOPE | Leerzeichen-getrennte Scopes (Standard: openid email profile) |
E-Mail / SMTP
Leer lassen, um E-Mail zu überspringen (stattdessen OAuth nutzen). Mit Mailpit (Weg A): SMTP_HOST=localhost, SMTP_PORT=1026.
| Variable | Was sie tut |
|---|---|
SMTP_HOST | Mailserver-Hostname |
SMTP_PORT | Meist 587 (STARTTLS) oder 465 |
SMTP_USER / SMTP_PASSWORD | Zugangsdaten (leer für Mailpit) |
SMTP_FROM | Absender-Adresse |
App-Verhalten
| Variable | Was sie tut | Standard |
|---|---|---|
NODE_ENV | development oder production | development |
ALLOW_REGISTRATION | Offene Registrierung erlauben | false in .env.example; lokal true nutzen |
DOCS_URL | Redirect-Ziel für /docs in der App | https://docs.orimora.com |
EXTRA_ALLOWED_ORIGINS | Zusätzliche erlaubte Origins für WebSocket /collab (komma-getrennt) | — |
Kollaboration (Echtzeit-Bearbeitung)
| Variable | Was sie tut | Standard |
|---|---|---|
COLLAB_SECRET | Optionales geteiltes Secret für Collab-WebSocket | ungesetzt im Dev |
COLLAB_MAX_CONNECTIONS | Max. gleichzeitige Collab-Verbindungen | 50 |
COLLAB_MAX_YJS_STATE_BYTES | Max. persistierte Yjs-Dokumentgröße (DoS-Schutz) | 8388608 (8 MB) |
Echtzeit-Bearbeitung nutzt den WebSocket-Pfad /collab auf derselben Origin wie die App. Vite übernimmt das Upgrade im Dev.
Betrieb (meist Produktion)
| Variable | Was sie tut |
|---|---|
CRON_SECRET | Schützt POST /api/admin/cron.cleanup (Papierkorb-Bereinigung, Einladungs-Erinnerungen) |
ORIMORA_API_KEY | Für lokales MCP-CLI (yarn mcp) — in Einstellungen → Entwickler anlegen |
KI, S3, Backups, Push, Quotas
| Gruppe | Variablen |
|---|---|
| KI & Publishing | LLM_ENCRYPTION_KEY, PUBLISHING_ENCRYPTION_KEY, GIT_MIRROR_ALLOWED_HOSTS |
S3-Speicher (reserviert — noch nicht verdrahtet; Uploads nutzen das lokale orimora-uploads-Volume) | S3_BUCKET, S3_REGION, S3_ACCESS_KEY, S3_SECRET_KEY, S3_ENDPOINT |
| Backups | BACKUP_ENABLED, BACKUP_PATH, BACKUP_RETENTION_DAILY, BACKUP_RETENTION_WEEKLY, BACKUP_SCHEDULE, BACKUP_S3_BUCKET, BACKUP_PG_DUMP_TIMEOUT_MS |
| Web Push | VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_SUBJECT — erzeugen mit node scripts/generate-vapid-keys.mjs |
| Webhook-/Publishing-Tuning | WEBHOOK_*, PUBLISHING_* — siehe Konfiguration |
| Speicher-Quota | DEFAULT_TEAM_STORAGE_QUOTA_BYTES, STORAGE_QUOTA_WARN_PERCENT |
Häufige Probleme
Abschnitt betitelt „Häufige Probleme“| Symptom | Lösung |
|---|---|
DATABASE_URL Verbindung abgelehnt | Weg A: docker compose up -d ausführen; Port 5433 statt 5432 |
| Redis-Fehler | REDIS_URL prüfen; redis-cli ping |
| Migrationen schlagen fehl | Gleiche DATABASE_URL wie laufende App; DB-Benutzer braucht DDL-Rechte |
| Magic Link kommt nie an | SMTP konfigurieren oder Mailpit unter http://localhost:9025 öffnen |
| WebSocket / Collab schlägt fehl | Firewall muss WS zu APP_URL erlauben; EXTRA_ALLOWED_ORIGINS prüfen |
| Boot-Fehler zu Encryption Keys | Sowohl LLM_ENCRYPTION_KEY als auch PUBLISHING_ENCRYPTION_KEY setzen |
401 auf /api/v1/* | Authorization: Bearer kb_… aus Einstellungen → Entwickler nutzen |
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- Deployment — Produktions-Docker-Compose-Stack
- Coolify Setup — gehostetes Deployment mit Traefik
- Konfiguration — gruppierte Referenz mit OAuth-Redirect-Beispielen
- Editor — Dokumente schreiben und formatieren