# Configure Datalore server

Configure the Datalore server by using various environment variables, which are picked up and evaluated by Datalore once it's started.

The article below describes the available configuration options and how they affect the environment.

## Making and applying environment configuration changes

To change the configuration, you need to adjust the environment variables in the Datalore server container. The exact way to do this depends on the deployment method.

Docker deployment:

Define the `environment` block within the Docker Compose file used for deployment. The default name of the file is `docker-compose.yaml`.

```YAML
services:
  datalore:
    environment:
      DATALORE_PUBLIC_URL: "https://datalore.yourcompany.com"
```

Kubernetes deployment:

Define the `dataloreEnv` block within the Helm configuration file used for deployment. The default name of the file is `datalore.values.yaml`.

```YAML
dataloreEnv:
  DATALORE_PUBLIC_URL: "https://datalore.foo.bar"
```

After making the changes to the file, apply the new configuration and restart the server. For further guidance, see [Server lifecycle events](restart-shutdown.html).

## Generic configuration values

`DATALORE_PUBLIC_URL`
: String
:
:
:
: Defines a FQDN used to access this instance and the port if it is non-standard.
:
:
:
: Default: Not defined
:
:
:
: Example: `"https://datalore.yourcompany.com [:port]"`

`GIFT_CODES_ENABLED`
: Boolean
:
:
:
: Defines whether the [gift code](gift-codes.html) functionality is enabled.
:
:
:
: Default: `false`

`TCP_KEEP_IDLE`
: Integer, seconds
:
:
:
: Refer to [Using TCP keepalive under Linux](https://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html), `tcp_keepalive_time` variable.
:
:
:
: Default: not defined

`TCP_KEEP_INTERVAL`
: Integer, seconds
:
:
:
: Refer to [Using TCP keepalive under Linux](https://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html), `tcp_keepalive_intvl` variable.
:
:
:
: Default: not defined

`TCP_KEEP_COUNT`
: Integer, seconds
:
:
:
: Refer to [Using TCP keepalive under Linux](https://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html), `tcp_keepalive_probes` variable.
:
:
:
: Default: not defined

`DB_USER`
: String
:
:
:
: In case of externally managed PostgreSQL database is used, this variable defines the username Datalore server will use to authenticate to its internal PostgreSQL database.
:
:
:
: Default: not defined

`DB_PASSWORD`
: String
:
:
:
: Not defined
:
:
:
: In case of an externally managed PostgreSQL database being used, this variable defines the password Datalore server will use to authenticate to its internal PostgreSQL database.

`DB_URL`
: String
:
:
:
: In case of an externally managed PostgreSQL database being used, this variable defines the JDBC-compliant database connection string.
:
:
:
: Default: not defined

`DB_MAX_CONNECTION_POOL_SIZE`
: Integer
:
:
:
: Maximum size of the internal database connection pool.
:
:
:
: Default: `20`

`VFS_MAX_IMPORT_SOURCE_LENGTH`
: Integer
:
:
:
: Defines the limit of notebook code import. Specified in bytes. Prefixes (K-, M-, etc) are not supported.
:
:
:
: Default: not defined

`USER_CONTENT_URL`
: String
:
:
:
: Defines a domain for HTML sandboxing. To provide wildcard, just use asterisk sign (*) as the value, and it will be replaced with random iframe ID, that is unique for each HTML output. Example: https://*.dataloreusercontent.com.
:
:
:
: Default: not defined

`DATABASES_DOCKER_NETWORK`
: String
:
:
:
: Defines a Docker network name used to communicate between Datalore and SQL session agents.
:
:
:
: Default: `datalore-agents-network`

`GIT_REPOSITORY_SIZE_LIMIT`
: Integer
:
:
:
: Defines a Git pull size limit. Specified in megabytes.
:
:
:
: Default: `100`

`GIT_BACKUP_FILE_SIZE_LIMIT`
: String
:
:
:
: Maximum size of a file that can be backed up to a Git repository.
:
:
:
: Supports decimal suffixes (`K`, `M`, `G`, `T`, `Ki`, `Mi`, `Gi`, and `Ti`). If no suffix is provided, the value is interpreted as bytes.
:
:
:
: Default: `"10M"`

## Kubernetes-specific configuration

`DATABASES_K8S_NAMESPACE`
: String
:
:
:
: Kubernetes namespace where all database connector pods will be spawned.
:
:
:
: Default: `default`

`GIT_TASK_K8S_NAMESPACE`
: String
:
:
:
: Kubernetes namespace where all Git-related task pods will be spawned.
:
:
:
: Default: `default`

## Single sign-on (Hub) configuration

`HUB_PUBLIC_BASE_URL`
: String
:
:
:
: Public URL of your Hub installation (accessible via browser). Defined as URL, for example: `https://hub.example.com/hub`).
:
:
:
: > **Warning:**
: > The ending /hub at the end of the URL is important and should not be removed.
:
:
:
: Default: not defined

`HUB_INTERNAL_BASE_URL`
: String
:
:
:
: URL for internal (service-to-service) Hub access.
:
:
:
: Default: `http://hub:8080/hub`

`HUB_DATALORE_SERVICE_ID`
: String
:
:
:
: ID of the Datalore service in Hub.
:
:
:
: Default: not defined

`HUB_DATALORE_SERVICE_SECRET`
: String
:
:
:
: Token of the Datalore service in Hub.
:
:
:
: Default: not defined

`HUB_FORCE_EMAIL_VERIFICATION`
: Boolean
:
:
:
: Used to specify whether email verification is required from the Datalore user. Set the parameter to `false` if your Datalore instance does not have outgoing mail configured.
:
:
:
: Default: `true`

`HUB_ALLOWLIST_GROUP`
: String
:
:
:
: By default, all Hub users can get registered unless you disable registration on the [Admin panel](manage-users.html). Set this variable if you want to grant Datalore access ONLY to members of a certain group. Currently, it is possible to define only one group for this configuration option.
:
:
:
: Default: not defined

## Outgoing mail configuration

`MAIL_SMTP_SERVER`
: String
:
:
:
: SMTP server host
:
:
:
: Default: not defined

`MAIL_SMTP_PORT`
: String
:
:
:
: SMTP server port
:
:
:
: Default: not defined

`MAIL_SMTP_TIMEOUT`
: String (integer ms)
:
:
:
: Maximum time in milliseconds to wait for a response from the SMTP server after sending a command
:
:
:
: Default: `"600000"` (10 minutes)

`MAIL_SMTP_CONNECTION_TIMEOUT`
: String (integer ms)
:
:
:
: Maximum time in milliseconds to wait when establishing the initial connection to the SMTP server
:
:
:
: Default: `"600000"` (10 minutes)

`MAIL_SENDER_EMAIL`
: String
:
:
:
: Sender’s email that Datalore will use in the From field
:
:
:
: Default: not defined

`MAIL_SENDER_NAME`
: String
:
:
:
: Sender’s name
:
:
:
: Default: not defined

`MAIL_SENDER_USERNAME`
: String
:
:
:
: Username of the SMTP user
:
:
:
: Default: not defined

`MAIL_SENDER_PASSWORD`
: String
:
:
:
: Password of the SMTP user
:
:
:
: Default: not defined

`MAIL_ENABLE_STARTTLS`
: String (boolean)
:
:
:
: See the `tcp_keepalive_probes` variable in the [TCP Keepalive HOWTO](https://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html). Parsed as a boolean.
:
:
:
: Accepted values: `"true"`, `"false"`
:
:
:
: Default: `"false"`

`FORCE_EMAIL_VERIFICATION`
: String (boolean)
:
:
:
: Enables verification emails for new users. Parsed as a boolean.
:
:
:
: If `"false"`, emails of new users are automatically considered verified.
:
:
:
: Accepted values: `"true"`, `"false"`
:
:
:
: Default: `"true"`

`EMAIL_ALLOWLIST_ENABLED`
: String (boolean)
:
:
:
: Restricts new user registrations to emails or domains from the allowlist. Parsed as a boolean.
:
:
:
: You can [manage the email allowlist](manage-email-allowlist.html) in the Admin panel.
:
:
:
: Accepted values: `"true"`, `"false"`
:
:
:
: Default: `"false"`

## Monitoring environment variables

`METRICS_AUTH_TOKEN`
: String
:
:
:
: Enables the exporter and defines the authentication token required to collect metrics.
:
:
:
: Mutually exclusive with `ENABLE_UNAUTHORIZED_METRICS.`
:
:
:
: Default: not defined

`ENABLE_UNAUTHORIZED_METRICS`
: String
:
:
:
: Enables the exporter. No authentication will be required to read metrics.
:
:
:
: Mutually exclusive with `METRICS_AUTH_TOKEN.`
:
:
:
: Default: not defined

## Issue center configuration

`ISSUE_CENTER_ENABLED`
: Boolean
:
:
:
: Enables the [Issue center](issue-center.html) for the instance.
:
:
:
: Default: `true`

`ISSUE_CENTER_EXPIRATION_DURATION`
: String
:
:
:
: Defines the retention period for issues in the [Issue Center](issue-center.html). The value is specified as an ISO-8601 duration string (`PnDTnHnMn.nS`).
:
:
:
: Default: `"P30D"` (30 days)

## AI-specific configuration

> **Warning:**
> Do not set or modify these parameters unless expicitly instructed by JetBrains support.

`GRAZIE_TOKEN_ENDPOINT`
: String
:
:
:
: Defines an authentication endpoint used by Datalore AI.
:
:
:
: Default: `https://auth.grazie.ai/auth/datalore/provide-access`

`GRAZIE_API_ENDPOINT`
: String
:
:
:
: Defines a model communication endpoint used by Datalore AI.
:
:
:
: Default: `https://api.jetbrains.ai`

## Airgapped operations

`DATABASES_COMMAND_IMAGE`
: String
:
:
:
: Defines an image used by Datalore to work with databases.
:
:
:
: Default: `jetbrains/datalore-database-command:2026.3`

`GIT_TASK_IMAGE`
: String
:
:
:
: Defines an image used by Datalore to work with Git repositories.
:
:
:
: `jetbrains/datalore-git-task:2026.3`

## Administrative actions environment variables

`ADMIN_API_AUTH_TOKEN`
: String
:
:
:
: Specifies an administrative token which can be used to authenticate to certain Datalore administrative APIs. For more guidance, see [Enable administrative access](emergency-maintenance.html#emergency-admin).
:
:
:
: Default: not defined

## Report computation configuration

REPORT_BACKGROUND_COMPUTATION_TIMEOUT_SEC
: Integer
:
:
:
: Maximum time, in seconds, allowed for background report computation.
:
:
:
: Default: `0` (no timeout)

## Agent-specific configuration

> **Note:**
> This section applies not to Datalore server, but to the notebook agents.
>
>
>
> Therefore, the variables from this section should be configured on the agent level (in the Compose file or agent container spec, depending on the deployment method).

`MAX_HEAP_SIZE`
: String
:
:
:
: Defines the memory amount which is allocated to the Datalore's agent control plane.
:
:
:
: Default: `512m`

`DATALORE_SKIP_WARMUP`
: String
:
:
:
: Defines whether the code completion warmup procedure should be skipped.
:
:
:
: > **Warning:**
: > Enabling this will result in faster initialization at the cost of slower code completion for some time.
:
:
:
: Default: not defined

`DATALORE_MAX_BLOB_SIZE`
: String
:
:
:
: Limits the maximum size of the cell output, specified in bytes.
:
:
:
: Default: not defined

