Self-hosting

OpenReview has two parts:

Repository files are stored as Convex file blobs. Metadata, symbols, the code graph and embeddings live in Convex tables.

Checklist

  1. Set the core configuration:
    • APP_URL identically on the web app and the backend.
    • SESSION_SECRET (32+ characters) and SERVICE_SECRET on both.
    • CREDENTIAL_ENCRYPTION_KEY (32+ characters) on the backend, to encrypt provider and integration credentials. Back it up.
  2. Configure a model (LLM_PROVIDER, LLM_API_KEY) and the inference budget.
  3. Register your GitHub App or connect another provider.
  4. Optionally add:
    • embeddings (EMBEDDING_MODEL, EMBEDDING_API_KEY).
    • Slack and email (notifications).
    • more sign-in methods (identity).
  5. Decide on outbound advisory lookups: security checks query OSV.dev for changed dependency versions. Set OSV_ENABLED=false on the backend to stop those requests (pattern checks still run), or set OSV_API_URL to an internal OSV mirror.
  6. Leave BILLING_ENABLED unset. Billing is for hosted cloud deployments only, and self-hosted installs have no quotas.

Docker

docker build -t openreview:local .

The deployment guide covers Docker Compose with a self-hosted Convex backend, backups and upgrades.