> ## Documentation Index
> Fetch the complete documentation index at: https://sourcebot-msukkarieh-ado.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Environment variables

<Note>This page provides a detailed reference of all environment variables supported by Sourcebot. If you're just looking to get up and running, we recommend starting with the [deployment guide](/docs/deployment-guide) instead.</Note>

### Core Environment Variables

The following environment variables allow you to configure your Sourcebot deployment.

| Variable                               | Default                                                                                               | Description                                                                                                                                                                                                                                               |
| :------------------------------------- | :---------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AUTH_CREDENTIALS_LOGIN_ENABLED`       | `true`                                                                                                | <p>Enables/disables authentication with basic credentials. Username and passwords are stored encrypted at rest within the postgres database. Checkout the [auth docs](/docs/configuration/auth/overview) for more info</p>                                |
| `AUTH_EMAIL_CODE_LOGIN_ENABLED`        | `false`                                                                                               | <p>Enables/disables authentication with a login code that's sent to a users email. `SMTP_CONNECTION_URL` and `EMAIL_FROM_ADDRESS` must also be set. Checkout the [auth docs](/docs/configuration/auth/overview) for more info </p>                        |
| `AUTH_SECRET`                          | Automatically generated at startup if no value is provided. Generated using `openssl rand -base64 33` | <p>Used to validate login session cookies</p>                                                                                                                                                                                                             |
| `AUTH_URL`                             | -                                                                                                     | <p>URL of your Sourcebot deployment, e.g., `https://example.com` or `http://localhost:3000`.</p>                                                                                                                                                          |
| `CONFIG_PATH`                          | `-`                                                                                                   | <p>The container relative path to the declerative configuration file. See [this doc](/docs/configuration/declarative-config) for more info.</p>                                                                                                           |
| `DATA_CACHE_DIR`                       | `$DATA_DIR/.sourcebot`                                                                                | <p>The root data directory in which all data written to disk by Sourcebot will be located.</p>                                                                                                                                                            |
| `DATA_DIR`                             | `/data`                                                                                               | <p>The directory within the container to store all persistent data. Typically, this directory will be volume mapped such that data is persisted across container restarts (e.g., `docker run -v $(pwd):/data`)</p>                                        |
| `DATABASE_DATA_DIR`                    | `$DATA_CACHE_DIR/db`                                                                                  | <p>The data directory for the default Postgres database.</p>                                                                                                                                                                                              |
| `DATABASE_URL`                         | `postgresql://postgres@ localhost:5432/sourcebot`                                                     | <p>Connection string of your Postgres database. By default, a Postgres database is automatically provisioned at startup within the container.</p><p>If you'd like to use a non-default schema, you can provide it as a parameter in the database url </p> |
| `EMAIL_FROM_ADDRESS`                   | `-`                                                                                                   | <p>The email address that transactional emails will be sent from. See [this doc](/docs/configuration/transactional-emails) for more info.</p>                                                                                                             |
| `FORCE_ENABLE_ANONYMOUS_ACCESS`        | `false`                                                                                               | <p>When enabled, [anonymous access](/docs/configuration/auth/access-settings#anonymous-access) to the organization will always be enabled</p>                                                                                                             |
| `REDIS_DATA_DIR`                       | `$DATA_CACHE_DIR/redis`                                                                               | <p>The data directory for the default Redis instance.</p>                                                                                                                                                                                                 |
| `REDIS_URL`                            | `redis://localhost:6379`                                                                              | <p>Connection string of your Redis instance. By default, a Redis database is automatically provisioned at startup within the container.</p>                                                                                                               |
| `REDIS_REMOVE_ON_COMPLETE`             | `0`                                                                                                   | <p>Controls how many completed jobs are allowed to remain in Redis queues</p>                                                                                                                                                                             |
| `REDIS_REMOVE_ON_FAIL`                 | `100`                                                                                                 | <p>Controls how many failed jobs are allowed to remain in Redis queues</p>                                                                                                                                                                                |
| `REPO_SYNC_RETRY_BASE_SLEEP_SECONDS`   | `60`                                                                                                  | <p>The base sleep duration (in seconds) for exponential backoff when retrying repository sync operations that fail</p>                                                                                                                                    |
| `GITLAB_CLIENT_QUERY_TIMEOUT_SECONDS`  | `600`                                                                                                 | <p>The timeout duration (in seconds) for GitLab client queries</p>                                                                                                                                                                                        |
| `SHARD_MAX_MATCH_COUNT`                | `10000`                                                                                               | <p>The maximum shard count per query</p>                                                                                                                                                                                                                  |
| `SMTP_CONNECTION_URL`                  | `-`                                                                                                   | <p>The url to the SMTP service used for sending transactional emails. See [this doc](/docs/configuration/transactional-emails) for more info.</p>                                                                                                         |
| `SOURCEBOT_ENCRYPTION_KEY`             | Automatically generated at startup if no value is provided. Generated using `openssl rand -base64 24` | <p>Used to encrypt connection secrets and generate API keys.</p>                                                                                                                                                                                          |
| `SOURCEBOT_PUBLIC_KEY_PATH`            | `/app/public.pem`                                                                                     | <p>Sourcebot's public key that's used to verify encrypted license key signatures.</p>                                                                                                                                                                     |
| `SOURCEBOT_LOG_LEVEL`                  | `info`                                                                                                | <p>The Sourcebot logging level. Valid values are `debug`, `info`, `warn`, `error`, in order of severity.</p>                                                                                                                                              |
| `SOURCEBOT_STRUCTURED_LOGGING_ENABLED` | `false`                                                                                               | <p>Enables/disable structured JSON logging. See [this doc](/docs/configuration/structured-logging) for more info.</p>                                                                                                                                     |
| `SOURCEBOT_STRUCTURED_LOGGING_FILE`    | -                                                                                                     | <p>Optional file to log to if structured logging is enabled</p>                                                                                                                                                                                           |
| `SOURCEBOT_TELEMETRY_DISABLED`         | `false`                                                                                               | <p>Enables/disables telemetry collection in Sourcebot. See [this doc](/docs/overview.mdx#telemetry) for more info.</p>                                                                                                                                    |
| `TOTAL_MAX_MATCH_COUNT`                | `100000`                                                                                              | <p>The maximum number of matches per query</p>                                                                                                                                                                                                            |
| `ZOEKT_MAX_WALL_TIME_MS`               | `10000`                                                                                               | <p>The maximum real world duration (in milliseconds) per zoekt query</p>                                                                                                                                                                                  |

### Enterprise Environment Variables

| Variable                             | Default              | Description                                                                                                  |
| :----------------------------------- | :------------------- | :----------------------------------------------------------------------------------------------------------- |
| `SOURCEBOT_EE_AUDIT_LOGGING_ENABLED` | `true`               | <p>Enables/disables audit logging</p>                                                                        |
| `AUTH_EE_GITHUB_BASE_URL`            | `https://github.com` | <p>The base URL for GitHub Enterprise SSO authentication.</p>                                                |
| `AUTH_EE_GITHUB_CLIENT_ID`           | `-`                  | <p>The client ID for GitHub Enterprise SSO authentication.</p>                                               |
| `AUTH_EE_GITHUB_CLIENT_SECRET`       | `-`                  | <p>The client secret for GitHub Enterprise SSO authentication.</p>                                           |
| `AUTH_EE_GITLAB_BASE_URL`            | `https://gitlab.com` | <p>The base URL for GitLab Enterprise SSO authentication.</p>                                                |
| `AUTH_EE_GITLAB_CLIENT_ID`           | `-`                  | <p>The client ID for GitLab Enterprise SSO authentication.</p>                                               |
| `AUTH_EE_GITLAB_CLIENT_SECRET`       | `-`                  | <p>The client secret for GitLab Enterprise SSO authentication.</p>                                           |
| `AUTH_EE_GOOGLE_CLIENT_ID`           | `-`                  | <p>The client ID for Google SSO authentication.</p>                                                          |
| `AUTH_EE_GOOGLE_CLIENT_SECRET`       | `-`                  | <p>The client secret for Google SSO authentication.</p>                                                      |
| `AUTH_EE_KEYCLOAK_CLIENT_ID`         | `-`                  | <p>The client ID for Keycloak SSO authentication.</p>                                                        |
| `AUTH_EE_KEYCLOAK_CLIENT_SECRET`     | `-`                  | <p>The client secret for Keycloak SSO authentication.</p>                                                    |
| `AUTH_EE_KEYCLOAK_ISSUER`            | `-`                  | <p>The issuer URL for Keycloak SSO authentication.</p>                                                       |
| `AUTH_EE_OKTA_CLIENT_ID`             | `-`                  | <p>The client ID for Okta SSO authentication.</p>                                                            |
| `AUTH_EE_OKTA_CLIENT_SECRET`         | `-`                  | <p>The client secret for Okta SSO authentication.</p>                                                        |
| `AUTH_EE_OKTA_ISSUER`                | `-`                  | <p>The issuer URL for Okta SSO authentication.</p>                                                           |
| `AUTH_EE_GCP_IAP_ENABLED`            | `false`              | <p>When enabled, allows Sourcebot to automatically register/login from a successful GCP IAP redirect</p>     |
| `AUTH_EE_GCP_IAP_AUDIENCE`           | -                    | <p>The GCP IAP audience to use when verifying JWT tokens. Must be set to enable GCP IAP JIT provisioning</p> |

### Review Agent Environment Variables

| Variable                           | Default  | Description                                                                                             |
| :--------------------------------- | :------- | :------------------------------------------------------------------------------------------------------ |
| `GITHUB_APP_ID`                    | `-`      | <p>The GitHub App ID used for review agent authentication.</p>                                          |
| `GITHUB_APP_PRIVATE_KEY_PATH`      | `-`      | <p>The container relative path to the private key file for the GitHub App used by the review agent.</p> |
| `GITHUB_APP_WEBHOOK_SECRET`        | `-`      | <p>The webhook secret for the GitHub App used by the review agent.</p>                                  |
| `OPENAI_API_KEY`                   | `-`      | <p>The OpenAI API key used by the review agent.</p>                                                     |
| `REVIEW_AGENT_API_KEY`             | `-`      | <p>The Sourcebot API key used by the review agent.</p>                                                  |
| `REVIEW_AGENT_AUTO_REVIEW_ENABLED` | `false`  | <p>Enables/disables automatic code reviews by the review agent.</p>                                     |
| `REVIEW_AGENT_LOGGING_ENABLED`     | `true`   | <p>Enables/disables logging for the review agent. Logs are saved in `DATA_CACHE_DIR/review-agent`</p>   |
| `REVIEW_AGENT_REVIEW_COMMAND`      | `review` | <p>The command used to trigger a code review by the review agent.</p>                                   |
