Skip to main content
OpenIndex reads configuration from environment variables at startup. Set these in your deployment environment to customize behavior.

Timezone

string
default:"Australia/Perth"
Default timezone for the Convex backend. Affects scheduling, display, and audit timestamps. Use any valid IANA timezone identifier (e.g. America/New_York, Europe/London).
string
default:"Australia/Perth"
Default timezone for the web UI. Set this to the same value as OPENINDEX_TIMEZONE so the web UI and backend agree on time rendering.
Both variables must be set if you want consistent timezone display across the backend and the web UI.

CORS

string
Comma-separated CORS allowlist for Convex HTTP actions. In production, set this to the explicit origin of your deployment (e.g. https://app.example.com).Supports wildcard host suffixes for preview environments:
Also supports wildcard loopback ports (e.g. http://localhost:*) for local development.
Leave this variable unset only during initial local development. In any shared or production environment, restrict it to the specific origins that should be allowed to call your API.

Authentication email

string
required
Resend API key used to send authentication emails (magic links, invite emails). Starts with re_.
string
required
The sender address for authentication emails. Use the format Display Name <address@example.com>. The sending domain must be verified in your Resend account.

Inbound email

string
required
Webhook signing secret from Resend, used to verify inbound email webhook payloads. Starts with whsec_. Required when you provision an inbound receiving domain through the email infrastructure settings.
RESEND_WEBHOOK_SECRET is also used for work-item comment email threading by default. You can override this with COMMENT_EMAIL_WEBHOOK_SECRET if you use a separate Resend webhook endpoint for comment replies.

Attachments

number
default:"104857600"
Maximum file attachment size in bytes. Defaults to 100 MB (104857600). Uploads that exceed this limit are rejected before storage.

Calendar sync

number
default:"1800000"
Base interval for calendar sync in milliseconds. Defaults to 30 minutes (1800000). The sync scheduler uses this as the starting backoff interval.
number
default:"172800000"
Maximum interval between calendar syncs in milliseconds. Defaults to 48 hours (172800000). The sync scheduler will not wait longer than this between attempts, even under exponential backoff.
Manual syncs triggered via POST /calendar-sources/:id/sync or oi calendar-sources sync run immediately regardless of the interval settings.

CLI troubleshooting

string
Shell environment override for the oi CLI base URL. Use this to point the CLI at a specific deployment when troubleshooting, without updating your stored CLI profile.
This variable is not persisted — it applies only for the duration of the shell session or command.