# Set up an air-gapped environment (no HTTP proxy available)

By default, Datalore does not bundle JDBC drivers in order to have a smaller size of the SQL runtime image — the required drivers for the attached database connections are downloaded on-demand during the SQL runtime initialization.

Follow the procedure below to preload the required JDBC drivers and set up your custom SQL runtime image to use Datalore in an air-gapped environment.

Procedure: Set up a fully air-gapped environment (no HTTP proxy available)

> **Note:**
> All available for download JDBC drivers are listed in this [XML file](https://frameworks.jetbrains.com/jdbc-drivers/jdbc-drivers.xml).

1. Rebuild the `datalore-database-command` image.

Pass a list of the required JDBC drivers to the utility script to pre-download them and bundle with the resulting image. See the example below.

`Dockerfile`

```DOCKERFILE
FROM jetbrains/datalore-database-command:2026.3
RUN ["/opt/datalore/download_artifacts.sh", "{artifact name}:{version}"]
```

> **Note:**
> You can use the following syntax formats: `{artifact name}:{version}`, or just `{artifact name}` to automatically fetch the latest available version.
>
>
>
> PostgreSQL and Redshift driver versions are listed under `<artifact id="PostgreSQL 2" name="PostgreSQL 2">` and `<artifact id="Redshift 2" name="Redshift 2"/>` respectively.
>
>
>
> Make sure you specify the actual version ID (for example, "42.3.3"), not the section name ("PostgreSQL 2").

2. After the above-mentioned custom image is built, update the Datalore server configuration to use it.

Add the `DATABASES_COMMAND_IMAGE` variable to the Datalore environment as shown in the examples below.

Docker:
`docker-compose.yaml`

```YAML
services:
  datalore:
  ...
  environment:
    ...
    DATABASES_COMMAND_IMAGE: "datalore-db-command-custom:latest"
...
```

Helm:
`datalore.values.yaml`

```YAML
...
dataloreEnv:
  ...
  DATABASES_COMMAND_IMAGE: "datalore-db-command-custom:latest"
```

3. Restart the Datalore server to apply the changes.

## Examples

`Dockerfile`

```DOCKERFILE
FROM jetbrains/datalore-database-command:2026.3
RUN ["/opt/datalore/download_artifacts.sh", "'MySQL Connector/J 8'"]
RUN ["/opt/datalore/download_artifacts.sh", "'Redshift:2.0.0.7'"]
RUN ["/opt/datalore/download_artifacts.sh", "'PostgreSQL:42.3.3'"]
```

> **Note:**
> The specific driver versions provided in the code above are for illustration purposes only. We recommend that you check the up-to-date list of versions before downloading.

## Known limitations

If the clients’ browser is also running in a fully air-gapped environment, the Visualize tab in a rendered DataFrame will not work due to this functionality reliance on the public CDN availability, which is not possible in an air-gapped environment.

