Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 41 additions & 7 deletions docs/install/olake-ui/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -132,17 +132,51 @@ x-app-defaults:

This will create and use `/custom/path/to/olake-data` instead of the default `./olake-data` directory.

### External PostgreSQL Configuration

OLake supports using an **external PostgreSQL instance** instead of the built-in Postgres service included in the docker-compose file. This PostgreSQL stores all job data, configurations, sync state, and Temporal workflow data.

Within the [compose file](https://raw.githubusercontent.com/datazip-inc/olake-ui/master/docker-compose.yml), an extension field named `x-db-envs` defines all database configuration values used by OLake and Temporal. These values can be modified to point to the external PostgreSQL instance.

```yaml
x-db-envs:
DB_HOST: &DBHost postgresql
DB_PORT: &DBPort 5432
DB_USER: &DBUser temporal
DB_PASSWORD: &DBPassword temporal
DB_SSLMODE: &DBSSLMode disable
OLAKE_DB_NAME: &olakeDBName postgres
TEMPORAL_DB_NAME: &temporalDBName temporal
```

If connection to external PostgreSQL instance is over TLS, the following variables need to be uncommented under `services.temporal.env` section in the compose file:

```yaml
# for TLS enabled external postgres database
SQL_TLS: true
SQL_TLS_DISABLE_HOST_VERIFICATION: true
SQL_TLS_ENABLED: true
SQL_HOST_VERIFICATION: false
```

:::info **Optional**
A separate PostgreSQL container (`postgresql` service) is included by default.
When an external database is used, this service is not needed and can be stopped after all the services are started and healthy.
:::

### Service Environment Variables

Key environment variables that can be customized within specific services:
Key environment variables that can be customized within `x-envs` section. These variables are automatically injected into the `olake-ui` and `olake-worker` containers:

```yaml
services:
olake-ui:
environment:
PERSISTENT_DIR: *hostPersistencePath
POSTGRES_DB: "postgres://olake:olake@postgresql:5432/olakedb"
OLAKE_SECRET_KEY: *encryptionKey
x-envs:
shared: &sharedEnvs
CONTAINER_REGISTRY_BASE: ${CONTAINER_REGISTRY_BASE:-registry-1.docker.io}
OLAKE_SECRET_KEY: *encryptionKey
PERSISTENT_DIR: *hostPersistencePath
FOO: bar
KEY: value
NAME: example
```

### Data Persistence
Expand Down