diff --git a/docs/install/olake-ui/index.mdx b/docs/install/olake-ui/index.mdx index c53bef59..96a1ff81 100644 --- a/docs/install/olake-ui/index.mdx +++ b/docs/install/olake-ui/index.mdx @@ -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