Environment Variables
Required Variables
Section titled “Required Variables”These variables are required for Abacus to function:
| Variable | Description |
|---|---|
POSTGRES_URL |
PostgreSQL connection string |
BETTER_AUTH_SECRET |
Secret for session encryption. Generate with: openssl rand -base64 32 |
GOOGLE_CLIENT_ID |
Google OAuth client ID |
GOOGLE_CLIENT_SECRET |
Google OAuth client secret |
NEXT_PUBLIC_DOMAIN |
Email domain to restrict access (e.g., sentry.io) |
CRON_SECRET |
Secret for authenticating cron job requests. Generate with: openssl rand -hex 32 |
Provider Variables
Section titled “Provider Variables”Claude Code (Anthropic)
Section titled “Claude Code (Anthropic)”| Variable | Description |
|---|---|
ANTHROPIC_ADMIN_KEY |
Anthropic Admin API key (starts with sk-admin-) |
ANTHROPIC_ADMIN_KEYS |
JSON array of keys for multiple organizations (see Multi-Organization Keys) |
See Claude Code setup for details.
Cursor
Section titled “Cursor”| Variable | Description |
|---|---|
CURSOR_ADMIN_KEY |
Cursor Admin API key |
CURSOR_ADMIN_KEYS |
JSON array of keys for multiple teams (see Multi-Organization Keys) |
See Cursor setup for details.
GitHub Commits
Section titled “GitHub Commits”| Variable | Description |
|---|---|
GITHUB_APP_ID |
GitHub App ID |
GITHUB_APP_PRIVATE_KEY |
GitHub App private key (full PEM content) |
GITHUB_APP_INSTALLATION_ID |
Installation ID for your organization |
GITHUB_WEBHOOK_SECRET |
Webhook secret for verifying requests |
For local development only:
| Variable | Description |
|---|---|
GITHUB_TOKEN |
Fine-grained personal access token (alternative to App) |
See GitHub Commits setup for details.
Optional Variables
Section titled “Optional Variables”| Variable | Description |
|---|---|
NEXT_PUBLIC_SENTRY_DSN |
Sentry DSN for error tracking |
Local Development
Section titled “Local Development”| Variable | Description |
|---|---|
AUTH_BYPASS_LOCAL |
Set to true to bypass SSO login locally. Returns a mock “Dev User” session. |
Multi-Organization Keys
Section titled “Multi-Organization Keys”For managing multiple Anthropic organizations or Cursor teams, use a JSON array:
ANTHROPIC_ADMIN_KEYS='[{"key":"sk-admin-xxx","name":"Engineering"},{"key":"sk-admin-yyy","name":"Research"}]'CURSOR_ADMIN_KEYS='[{"key":"cur_xxx","name":"Team Alpha"},{"key":"cur_yyy","name":"Team Beta"}]'Each entry requires:
key: The admin API keyname: A label identifying the organization or team (used in reports)