Configuration
open-dpp is configured through environment variables. Some settings can also be changed in the admin UI, but environment variables always take precedence.
Common
| Variable | Type | Required | Default | Description |
|---|---|---|---|---|
OPEN_DPP_PORT | number | No | 3000 | HTTP port for the main service. |
OPEN_DPP_URL | URL | Yes | – | Public base URL of open-dpp (https://your-open-dpp.example). |
OPEN_DPP_LOG_FORMAT | json | plain | No | plain | Log output format. |
OPEN_DPP_LOG_LEVEL | fatal | error | warn | log | debug | verbose | No | debug | Most verbose level that is printed. Requests are logged at debug, successfully served frontend assets (JS, CSS, images, …) at verbose, and failed requests at warn (4xx) or error (5xx). |
OPEN_DPP_TRUST_PROXY | true | false | number | string | No | false | Express trust proxy setting. Set it when running behind a reverse proxy so the real client IP is logged and used for rate limiting: a hop count (1), or a comma-separated list of trusted proxy IP addresses, CIDR ranges and the presets loopback, linklocal and uniquelocal (loopback, 10.0.0.0/8). Netmask notation (10.0.0.0/255.0.0.0) and hostnames are not accepted, and invalid values stop open-dpp at startup. true trusts any X-Forwarded-For, so only use it if open-dpp is not reachable directly. |
OPEN_DPP_INSTANCE_BRANDING | string | No | – | Optional instance branding image location. |
OPEN_DPP_USAGE_MANAGEMENT_URL | URL | No | – | http(s) URL where users manage their usage. When set, a button to it appears on the usage page. {organizationId} in the URL is replaced with the current organization's ID (e.g. https://billing.example.com/organizations/{organizationId}). |
Database
| Variable | Type | Required | Default | Description |
|---|---|---|---|---|
OPEN_DPP_MONGODB_URI | string | Conditional | – | Full MongoDB connection URI. |
OPEN_DPP_MONGODB_HOST | string | Conditional | – | MongoDB host (when not using URI). |
OPEN_DPP_MONGODB_PORT | number | Conditional | – | MongoDB port (when not using URI). |
OPEN_DPP_MONGODB_USER | string | Conditional | – | MongoDB username. |
OPEN_DPP_MONGODB_PASSWORD | string | Conditional | – | MongoDB password. |
OPEN_DPP_MONGODB_DATABASE | string | Conditional | management | MongoDB database name. |
OPEN_DPP_MONGODB_URIorOPEN_DPP_MONGODB_HOST,OPEN_DPP_MONGODB_PORT,OPEN_DPP_MONGODB_PASSWORDandOPEN_DPP_MONGODB_USERmust be provided.
AI Integration
| Variable | Type | Required | Default | Description |
|---|---|---|---|---|
OPEN_DPP_MISTRAL_API_KEY | string | Yes | – | API key for Mistral integration. |
MISTRAL_DEBUGandLANGCHAIN_VERBOSEmust not be set. They make the Mistral SDK and LangChain print every chat message and reply to the logs, so open-dpp refuses to start while either has a value. The Mistral SDK treats any non-empty value as on, evenfalse.
S3 storage
| Variable | Type | Required | Default | Description |
|---|---|---|---|---|
OPEN_DPP_S3_ENDPOINT | string | Yes | – | S3 endpoint hostname/address. |
OPEN_DPP_S3_PORT | number | Yes | – | S3 endpoint port. |
OPEN_DPP_S3_SSL | boolean (string-parsed) | Yes | – | Enable SSL for S3 connection ("true" => true). |
OPEN_DPP_S3_ACCESS_KEY | string | Yes | – | S3 access key. |
OPEN_DPP_S3_SECRET_KEY | string | Yes | – | S3 secret key. |
OPEN_DPP_S3_DEFAULT_BUCKET | string | No | open-dpp | Default bucket name. |
OPEN_DPP_S3_PROFILE_PICTURE_BUCKET | string | No | open-dpp-profile-pictures | Profile picture bucket name. |
ClamAV
| Variable | Type | Required | Default | Description |
|---|---|---|---|---|
OPEN_DPP_CLAMAV_URL | URL (http) | No | – | clamav-rest endpoint incl. port, e.g. http://clamav-rest:9000. Unset or empty disables virus scanning: uploads are accepted unscanned and a warning is logged at startup. See the Production setup guide. |
Mail
| Variable | Type | Required | Default | Description |
|---|---|---|---|---|
OPEN_DPP_MAIL_HOST | string | Yes | – | SMTP host. |
OPEN_DPP_MAIL_PORT | number | Yes | – | SMTP port. |
OPEN_DPP_MAIL_USER | string | Yes | – | SMTP username. |
OPEN_DPP_MAIL_PASSWORD | string | Yes | – | SMTP password. |
OPEN_DPP_MAIL_SENDER_ADDRESS | string | Yes | – | Sender address used in outgoing emails. |
Authentication
| Variable | Type | Required | Default | Description |
|---|---|---|---|---|
OPEN_DPP_AUTH_SECRET | string | Yes | – | Authentication secret. |
OPEN_DPP_AUTH_ADMIN_USERNAME | string | Conditional | – | Optional admin bootstrap username. |
OPEN_DPP_AUTH_ADMIN_PASSWORD | string | Conditional | – | Optional admin bootstrap password. |
OPEN_DPP_AUTH_ADMIN_USERNAMEandOPEN_DPP_AUTH_ADMIN_PASSWORDmust be provided together (both set or both omitted).
OAuth Provider
| Variable | Type | Required | Default | Description |
|---|---|---|---|---|
OPEN_DPP_OAUTH_PROVIDER_ENABLED | strict boolean (string) | No | false | Lets open-dpp act as OpenID Connect provider for one operator-configured Trusted Client; value must be "true" or "false". Unset or "false" = open-dpp is nobody's identity provider. See the Production setup guide. |
OPEN_DPP_OAUTH_PROVIDER_CLIENT_ID | string | Conditional | – | The Trusted Client's client_id. |
OPEN_DPP_OAUTH_PROVIDER_CLIENT_SECRET | string | Conditional | – | The Trusted Client's client_secret; stored as a salted scrypt hash (as User passwords are), re-applied on every startup. |
OPEN_DPP_OAUTH_PROVIDER_REDIRECT_URIS | string (comma-separated) | Conditional | – | The Trusted Client's callback URLs: absolute https URLs without a fragment (http only on loopback hosts). |
OPEN_DPP_OAUTH_PROVIDER_CLIENT_NAME | string | No | – | Display name of the Trusted Client; defaults to the client id. |
OPEN_DPP_OAUTH_PROVIDER_CLIENT_ID,OPEN_DPP_OAUTH_PROVIDER_CLIENT_SECRETandOPEN_DPP_OAUTH_PROVIDER_REDIRECT_URISare required whileOPEN_DPP_OAUTH_PROVIDER_ENABLEDis"true"and ignored otherwise, andOPEN_DPP_URLmust then be anhttpsorigin (httponly on loopback hosts) because the issuer derives from it. An empty value counts as unset. The Trusted Client is written from these variables on every startup, so changes need a restart; token lifetimes are fixed (access token 15 minutes, refresh token 7 days sliding). The contract the Trusted Client follows is in Integrating a Trusted Client.
Instance settings
| Variable | Type | Required | Default | Description |
|---|---|---|---|---|
OPEN_DPP_INSTANCE_SIGNUP_ENABLED | strict boolean (string) | No | true | Allows/disables signup; value must be "true" or "false". |
OPEN_DPP_INSTANCE_ORGANIZATION_CREATION_ENABLED | strict boolean (string) | No | true | Allows/disables creation of organizations for users which are not admins; value must be "true" or "false". |
Official templates
| Variable | Type | Required | Default | Description |
|---|---|---|---|---|
OPEN_DPP_OFFICIAL_TEMPLATES_REPO | string | No | github:open-dpp/passport-templates | Source repository for official templates, in the form <provider>:<owner>/<repo> or <provider>:<owner>/<repo>@<branch>. The branch defaults to the repository's default branch when omitted. Only github is currently supported. |
Official templates are imported into an organization automatically when it's created, and can be re-imported at any time via "Import official templates" on the templates page — for example after adding a template to the repo, or if the initial import at organization-creation time failed (e.g. the repository was briefly unreachable).
Default caps
| Variable | Type | Required | Default | Description |
|---|---|---|---|---|
OPEN_DPP_DEFAULT_MODEL_CREATE_CAP | number (>= 0) | No | 0 | Default model creation cap per organization. |
OPEN_DPP_DEFAULT_AI_TOKEN_QUOTA | number (>= 0) | No | 0 | Default AI token quota per organization. |
OPEN_DPP_DEFAULT_MEDIA_STORAGE_CAP | number (>= 0) | No | 0 | Default media storage cap per organization. |
OPEN_DPP_DEFAULT_ORGANIZATION_MEMBER_CAP | number (>= 0) | No | 0 | Default member cap per organization. |
A value of
0means unlimited.