Zum Inhalt springen

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.

WegFür wenWas du installierst
A — Docker Compose (empfohlen)Einsteiger, schneller StartNur Docker Desktop — Postgres, Redis und Mailpit starten automatisch
B — Native YarnAktive Entwicklung am CodeNode.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)

  1. Docker Desktop installieren (Mac/Windows) oder Docker Engine + Compose unter Linux. Prüfen:

    Terminal-Fenster
    docker compose version
  2. Repository klonen und Node-Abhängigkeiten installieren:

    Terminal-Fenster
    git clone https://github.com/defcon1702/orimora.git orimora
    cd orimora
    yarn install
  3. Infrastruktur starten (PostgreSQL, Redis, Mailpit):

    Terminal-Fenster
    docker compose up -d

    Liest docker-compose.yml im Repo-Root. Dienste:

    DienstZweckHost-Port
    postgresDatenbank5433 → Container 5432
    redisSessions, Queues, Rate Limits6379
    mailpitFängt ausgehende E-Mails ab (Magic Links)SMTP 1026, Web-UI 9025

    Optionale Redis-GUI (Profil tools): docker compose --profile tools up -dhttp://localhost:8081

  4. .env-Datei anlegen:

    Terminal-Fenster
    cp .env.example .env

    Fü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/knowledgebase
    REDIS_URL=redis://localhost:6379
    APP_URL=http://localhost:5173
    SESSION_SECRET=PASTE_64_HEX_CHARS_HERE
    MAGIC_LINK_SECRET=PASTE_ANOTHER_64_HEX_CHARS_HERE
    LLM_ENCRYPTION_KEY=PASTE_THIRD_64_HEX_CHARS_HERE
    PUBLISHING_ENCRYPTION_KEY=PASTE_FOURTH_64_HEX_CHARS_HERE
    # ── Email via Mailpit (optional but useful) ──────────────
    SMTP_HOST=localhost
    SMTP_PORT=1026
    SMTP_FROM=noreply@orimora.local
    # ── Dev defaults ─────────────────────────────────────────
    NODE_ENV=development
    ALLOW_REGISTRATION=true

    Erzeuge vier unabhängige Geheimnisse (vier Mal ausführen):

    Terminal-Fenster
    node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
  5. Datenbank-Migrationen ausführen:

    Terminal-Fenster
    yarn db:migrate

    Nach jedem git pull, der Dateien unter src/lib/server/db/migrations/ hinzufügt, wiederholen.

  6. Dev-Server starten:

    Terminal-Fenster
    yarn dev
  7. App öffnen unter http://localhost:5173 und das Onboarding abschließen (legt deinen Workspace-Admin an).

  8. Health prüfen:

    Terminal-Fenster
    curl -s http://localhost:5173/api/health

    Magic-Link-E-Mails erscheinen im Mailpit-UI: http://localhost:9025


Weg B — Native Yarn (ohne Docker)

  1. Voraussetzungen installieren:

    WerkzeugVersion
    Node.js22 LTS oder 24
    Yarnwie in den Repo-Skripten genutzt
    PostgreSQL16+
    Redis7+
  2. Klonen und installieren (wie Weg A, Schritt 2).

  3. PostgreSQL-Datenbank anlegen:

    Terminal-Fenster
    createdb knowledgebase
    redis-cli ping # must return PONG
  4. .env konfigurieren — passe DATABASE_URL an deinen lokalen Postgres-Benutzer/-Passwort/-Port an (Standard-Port 5432, nicht 5433):

    Terminal-Fenster
    DATABASE_URL=postgresql://YOUR_USER:YOUR_PASSWORD@localhost:5432/knowledgebase
    REDIS_URL=redis://localhost:6379
    APP_URL=http://localhost:5173
    # … same secrets as Path A
  5. Migrieren, Dev-Server, prüfen — wie Weg A, Schritte 5–8.


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.

VariableWas sie tutBeispiel / wie setzen
DATABASE_URLPostgreSQL-VerbindungsstringWeg A: postgresql://kb:kb_dev_password@localhost:5433/knowledgebase
REDIS_URLRedis für Sessions, Queues, Rate Limitsredis://localhost:6379
APP_URLÖffentliche URL der App (Magic Links, OAuth-Redirects)http://localhost:5173 im Vite-Dev
SESSION_SECRETSigniert HTTP-only-Session-Cookies (mind. 32 Bytes)64 Hex-Zeichen via randomBytes(32)
MAGIC_LINK_SECRETSigniert passwortlose Login-TokensSeparater 64-Hex-Wert
LLM_ENCRYPTION_KEYVerschlüsselt gespeicherte LLM-API-Keys at rest64 Hex-Zeichen — auch nötig, wenn KI ungenutzt
PUBLISHING_ENCRYPTION_KEYVerschlüsselt Webhook-Secrets und Publishing-Credentials64 Hex-Zeichen
Docker-Compose-Helfer
VariableWas sie tutStandard
COMPOSE_FILEWelche Compose-Datei docker compose lokal nutztdocker-compose.yml (in .env.example gesetzt)
Optionale Auth-Härtung
VariableWas sie tutStandard wenn ungesetzt
API_KEY_SECRETHasht API-Keys at restMAGIC_LINK_SECRET
EMAIL_CHANGE_SECRETSigniert E-Mail-Änderungs-TokensMAGIC_LINK_SECRET
ACCOUNT_DELETION_SECRETSigniert Account-Löschungs-TokensSESSION_SECRET
SESSION_IDLE_TIMEOUT_DAYSLoggt inaktive Sessions nach N Tagen aus; 0 = aus7
OAuth (optional)

Registriere Redirect-URIs in der jeweiligen Provider-Konsole als {APP_URL}/auth/google/callback, /auth/microsoft/callback, /auth/oidc/callback.

VariableWas sie tut
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRETGoogle-Anmeldung
MICROSOFT_TENANT_IDAzure-Tenant-ID oder common
MICROSOFT_CLIENT_ID / MICROSOFT_CLIENT_SECRETMicrosoft-Anmeldung
OIDC_ISSUER / OIDC_CLIENT_ID / OIDC_CLIENT_SECRETGenerisches OpenID Connect
OIDC_SCOPELeerzeichen-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.

VariableWas sie tut
SMTP_HOSTMailserver-Hostname
SMTP_PORTMeist 587 (STARTTLS) oder 465
SMTP_USER / SMTP_PASSWORDZugangsdaten (leer für Mailpit)
SMTP_FROMAbsender-Adresse
App-Verhalten
VariableWas sie tutStandard
NODE_ENVdevelopment oder productiondevelopment
ALLOW_REGISTRATIONOffene Registrierung erlaubenfalse in .env.example; lokal true nutzen
DOCS_URLRedirect-Ziel für /docs in der Apphttps://docs.orimora.com
EXTRA_ALLOWED_ORIGINSZusätzliche erlaubte Origins für WebSocket /collab (komma-getrennt)
Kollaboration (Echtzeit-Bearbeitung)
VariableWas sie tutStandard
COLLAB_SECRETOptionales geteiltes Secret für Collab-WebSocketungesetzt im Dev
COLLAB_MAX_CONNECTIONSMax. gleichzeitige Collab-Verbindungen50
COLLAB_MAX_YJS_STATE_BYTESMax. 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)
VariableWas sie tut
CRON_SECRETSchützt POST /api/admin/cron.cleanup (Papierkorb-Bereinigung, Einladungs-Erinnerungen)
ORIMORA_API_KEYFür lokales MCP-CLI (yarn mcp) — in Einstellungen → Entwickler anlegen
KI, S3, Backups, Push, Quotas
GruppeVariablen
KI & PublishingLLM_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
BackupsBACKUP_ENABLED, BACKUP_PATH, BACKUP_RETENTION_DAILY, BACKUP_RETENTION_WEEKLY, BACKUP_SCHEDULE, BACKUP_S3_BUCKET, BACKUP_PG_DUMP_TIMEOUT_MS
Web PushVAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_SUBJECT — erzeugen mit node scripts/generate-vapid-keys.mjs
Webhook-/Publishing-TuningWEBHOOK_*, PUBLISHING_* — siehe Konfiguration
Speicher-QuotaDEFAULT_TEAM_STORAGE_QUOTA_BYTES, STORAGE_QUOTA_WARN_PERCENT

SymptomLösung
DATABASE_URL Verbindung abgelehntWeg A: docker compose up -d ausführen; Port 5433 statt 5432
Redis-FehlerREDIS_URL prüfen; redis-cli ping
Migrationen schlagen fehlGleiche DATABASE_URL wie laufende App; DB-Benutzer braucht DDL-Rechte
Magic Link kommt nie anSMTP konfigurieren oder Mailpit unter http://localhost:9025 öffnen
WebSocket / Collab schlägt fehlFirewall muss WS zu APP_URL erlauben; EXTRA_ALLOWED_ORIGINS prüfen
Boot-Fehler zu Encryption KeysSowohl LLM_ENCRYPTION_KEY als auch PUBLISHING_ENCRYPTION_KEY setzen
401 auf /api/v1/*Authorization: Bearer kb_… aus Einstellungen → Entwickler nutzen
  • Deployment — Produktions-Docker-Compose-Stack
  • Coolify Setup — gehostetes Deployment mit Traefik
  • Konfiguration — gruppierte Referenz mit OAuth-Redirect-Beispielen
  • Editor — Dokumente schreiben und formatieren