Skip to content

Configuration

import { Aside } from ‘@astrojs/starlight/components’;

Orimora is configured entirely through environment variables (and team-level preferences in the database). The source of truth is .env.example at the repository root; this page gives a structured overview and links related behavior.

VariableRequiredDescription
APP_URLYes (prod)Public base URL, e.g. https://wiki.example.com. Drives magic links and OAuth redirects. Dev: http://localhost:5173.
NODE_ENVdevelopment or production.
PORTHTTP listen port (default 3000 in Docker; Vite dev uses its own port).
VariableRequiredDescription
DATABASE_URLYesPostgreSQL 16+ connection string.
REDIS_URLYesUsed for sessions, rate limiting, queues, and BullMQ workers.
VariableRequiredDescription
SESSION_SECRETYes64 hex chars (32 bytes). Signs session cookies.
MAGIC_LINK_SECRETYes64 hex chars. Signs magic-link JWTs.

Generate both with:

Terminal window
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

If SMTP is unset, magic-link email is not sent (use OAuth or another strategy in dev).

VariableDescription
SMTP_HOSTServer hostname
SMTP_PORTUsually 587 (STARTTLS) or 465
SMTP_USERUsername
SMTP_PASSWORDPassword (name in .env.example)
SMTP_FROMFrom address
VariableDescription
GOOGLE_CLIENT_IDOAuth client ID
GOOGLE_CLIENT_SECRETOAuth client secret

Authorized redirect URI (replace host with yours):

{APP_URL}/auth/google/callback
VariableDescription
OIDC_ISSUERIssuer URL
OIDC_CLIENT_IDClient ID
OIDC_CLIENT_SECRETClient secret
OIDC_SCOPESpace-separated scopes (default openid email profile)

Redirect URI pattern:

{APP_URL}/auth/oidc/callback
VariableDescription
COLLAB_SECRETOptional shared secret for the collab endpoint
COLLAB_MAX_CONNECTIONSMax concurrent WebSocket connections

The editor connects to /collab on the same origin as the app.

S3-compatible storage for attachments when enabled in the product:

VariableDescription
S3_BUCKETBucket name
S3_REGIONRegion
S3_ACCESS_KEY / S3_SECRET_KEYCredentials
S3_ENDPOINTCustom endpoint (e.g. MinIO)
VariableRequiredDescription
LLM_ENCRYPTION_KEYYes64 hex chars — encrypts API keys stored for LLM providers.
VariableDescription
CRON_SECRETBearer token for POST /api/admin/cron.cleanup — trash purge, pending invite reminders. If empty, external cron must not call the endpoint (or it will reject).
VariableDescription
ORIMORA_API_KEYConvenience for local tooling / MCP (yarn mcp) — create a key in Settings → Developers and paste it here.

Some defaults are stored per team and updated via the app or internal APIs, for example:

ConcernNotes
Default document widthnormal / wide
Default language for membersLocale string
Revision retentionUpper bound of stored snapshots per document

See the admin settings UI and REST API overview for integration boundaries.