Docker environment variables
This document describes all supported environment variables for Ontopic Suite Docker Compose deployments.
Quickstart
- Copy the template:
cp .env.template .env
- Edit
.env
file with your desired values - Run:
docker-compose up
Core Configuration
Port Configuration
Variable | Default | Description |
LOCAL_PORT | 8080 | Port where the Ontopic Suite is bound on the host |
VIRTUAL_PORT | 8080 | Port under which the Ontopic Suite is served internally |
VIRTUAL_HOST | localhost | Hostname under which the Ontopic Suite is served |
Service-Specific Configuration
Angular Frontend
Variable | Default | Description |
ENDPOINT_ORIGIN | - | Custom endpoint origin |
ONTOPIC_SERVER_DISABLE_TLS | false | Disable TLS for Ontopic server connections |
Process Server
Variable | Default | Description |
LICENSE_FILE | /run/secrets/user-license | Path to license file |
JDBC_ROOT_DIR | ./services/process-server/jdbc | JDBC drivers directory |
USER_LICENSE_DIR | license | User license directory |
STORE_SERVICE_HOST | store-server | Store service host |
STORE_SERVICE_PORT | 3000 | Store service port |
USER_LICENSE_FILE | - | User license file path |
LICENSE_TYPE | ontopic | License type |
ONTOPIC_PROCESS_SERVER_DEBUG | false | Enable debug mode for process server |
Store Server
Variable | Default | Description |
GITEA_MIRROR_PORT | 8080 | Port for Gitea mirror service (default to LOCAL_PORT) |
ENABLE_SEMANTIC_SQL | true | Enable BI connector functionality |
ENABLE_GIT_REPO | true | Enable Git repository features |
ONTOPIC_SAMPLE_DB | true | Enable sample database |
ONTOPIC_SAMPLE_DB_URL | - | Sample database URL |
ONTOPIC_SAMPLE_DB_USERNAME | - | Sample database username |
ONTOPIC_SAMPLE_DB_PASSWORD | - | Sample database password |
ONTOPIC_SAMPLE_DB_DRIVER | - | Sample database driver |
ONTOPIC_SAMPLE_DB_DATABASE | - | Sample database name |
ONTOPIC_ENABLE_AUTHENTICATION | true | Enable authentication |
ENABLE_MATERIALIZATION | - | Enable materialization features |
DB_CLIENT | pg | Database client type |
ENABLE_TRACKING | false | Enable tracking features |
ENABLE_REPORTING | true | Enable reporting features |
Database Configuration
Variable | Default | Description |
DATABASE_HOST | - | Database host for store server |
DATABASE_PORT | - | Database port for store server |
DATABASE_NAME | - | Database name for store server |
DATABASE_USER | - | Database user for store server |
DATABASE_PASSWORD | - | Database password for store server |
DATABASE_PASSWORD_FILE | - | File containing database password |
Casbin Authorization Configuration
Variable | Default | Description |
CASBIN_STORE_HOST | - | Casbin database host |
CASBIN_STORE_PORT | - | Casbin database port |
CASBIN_STORE_USER | - | Casbin database user |
CASBIN_STORE_PASSWORD_FILE | - | File containing Casbin database password |
Additional Store Server Configuration
Variable | Default | Description |
AUTH_EXEMPT_PATHS | /git,/store-api,/process-api,/doc-sync,/metadata-manager,/api-ui | Paths exempt from authentication |
WEBSOCKET_DOC_PORT | 3001 | WebSocket document synchronization port |
WEBSOCKET_DOC_HOST | 0.0.0.0 | WebSocket document synchronization host |
STORE_SERVICE_HOST | 0.0.0.0 | Store service host binding |
STORE_SERVICE_PORT | 3000 | Store service port |
MAX_CACHED_DOCS | 100 | Maximum number of cached project documents |
TTL_DURATION_IN_MS | 3600000 | Time-to-live duration in milliseconds (1 hour) of cached project documents |
Git Configuration
Variable | Default | Description |
GIT_DEFAULT_BRANCH | main | Default Git branch name |
GIT_AUTHOR_NAME | studio | Git author name |
GIT_AUTHOR_EMAIL | studio@ontopic.ai | Git author email |
GIT_REMOTE_HOST | - | Git remote host URL |
GIT_ORG_NAME | ontopic-studio | Git organization name |
GIT_HTTP_USER | studio | Git HTTP user |
GIT_HTTP_PASSWORD_FILE | - | File containing Git HTTP password |
Database Management Configuration
Variable | Default | Description |
DB_RESET | false | Reset database on startup |
DB_MIGRATE | true | Run database migrations |
DB_SEED | false | Seed database with initial data |
Service Discovery Configuration
Variable | Default | Description |
GITEA_MANAGER_SERVICE_NAME | gitea-manager | Gitea manager service name |
GITEA_MANAGER_SERVICE_PORT | 8080 | Gitea manager service port |
IDENTITY_SERVICE_NAME | identity-service | Identity service name |
IDENTITY_SERVICE_PORT | 8080 | Identity service port |
Volume Configuration
Variable | Default | Description |
STORE_SERVER_DOCS_DIR | docs | Store server documentation directory |
STORE_SERVER_REPOS_DIR | repos | Store server repositories directory |
STORE_SERVER_DB_DATA_DIR | store-db | Store server database data directory |
Development Mode Configuration
Development-Specific Variables
Variable | Default | Description |
VIRTUAL_PORT_DEV | 8181 | Development virtual port |
ANGULAR_FRONTEND_DEV_NODE_MODULES_DIR | angular-frontend-dev-node_modules | Angular frontend dev node modules directory |
STORE_SERVER_DEV_NODE_ENV | development | Store server development environment |
STORE_SERVER_DEV_DOCS_DIR | store-server-dev-docs | Store server development docs directory |
STORE_SERVER_DEV_REPOS_DIR | store-server-dev-repos | Store server development repos directory |
STORE_SERVER_DEV_NODE_MODULES_DIR | store-server-dev-node_modules | Store server dev node modules directory |
STORE_SERVER_DB_DEV_DATA_DIR | store-server-db-dev-data | Store server database development data directory |
GIT_MIRROR_DEV_CONFIG_DIR | git-dev-config | Git mirror development config directory |
GIT_MIRROR_DEV_DATA_DIR | git-dev-data | Git mirror development data directory |
GIT_MIRROR_DB_DEV_DATA_DIR | git-mirror-db-dev | Git mirror database development data directory |
Service Configuration
Nginx Service Configuration
Variable | Default | Description |
ANGULAR_FRONTEND_SERVICE_HOST | angular-frontend | Angular frontend service host |
ANGULAR_FRONTEND_SERVICE_PORT | 4200 | Angular frontend service port |
IDENTITY_SERVICE_HOST | identity-service | Identity service host |
IDENTITY_SERVICE_PORT | 8080 | Identity service port |
PROCESS_SERVER_SERVICE_HOST | process-server | Process server service host |
PROCESS_SERVER_SERVICE_PORT | 8666 | Process server service port |
STORE_SERVER_SERVICE_HOST | store-server | Store server service host |
STORE_SERVER_API_SERVICE_PORT | 3000 | Store server API service port |
STORE_SERVER_DOC_SERVICE_PORT | 3001 | Store server document service port |
ONTOP_ENDPOINT_SERVICE_HOST | ontopic-server | Ontop endpoint service host |
ONTOP_ENDPOINT_SERVICE_PORT | 8080 | Ontop endpoint service port |
GIT_MIRROR_SERVICE_HOST | git-mirror | Git mirror service host |
GIT_MIRROR_SERVICE_PORT | 80 | Git mirror service port |
Service Names Configuration (Windows Docker)
Variable | Default | Description |
NGINX_PROXY_SERVICE_NAME | nginx | Nginx proxy service container name |
ANGULAR_FRONTEND_SERVICE_NAME | angular-frontend | Angular frontend service container name |
PROCESS_SERVER_SERVICE_NAME | process-server | Process server service container name |
STORE_SERVER_SERVICE_NAME | store-server | Store server service container name |
Caddy Configuration
Variable | Default | Description |
CADDY_DATA_DIR | caddy-data | Caddy data directory |
Gitea Manager
Variable | Default | Description |
GITEA_MANAGER_VERBOSE | false | Enable verbose logging for Gitea manager |
GITEA_MANAGER_DEBUG | - | Enable debug mode |
GITEA_MANAGER_TIMEOUT_IDLE | - | Idle timeout |
GITEA_MANAGER_TIMEOUT_READ | - | Read timeout |
GITEA_MANAGER_TIMEOUT_WRITE | - | Write timeout |
GITEA_MANAGER_REFRESH_INTERVAL | - | Refresh interval |
GITEA_MANAGER_GITEA_HOST | - | Gitea host URL |
GITEA_MANAGER_GITEA_ORGANIZATION | ontopic-studio | Gitea organization |
GITEA_MANAGER_GITEA_TOKEN_FILE | - | File containing Gitea token |
GITEA_MANAGER_PROJECT_ROOT | - | Project root URL |
GITEA_MANAGER_POLICY_ROOT | - | Policy root URL |
GITEA_MANAGER_IDENTITY_ROOT | - | Identity root URL |
Git Mirror (Gitea)
Variable | Default | Description |
GIT_MIRROR_SSH_PORT | 2222 | SSH port for Git mirror |
GIT_MIRROR_CONFIG_DIR | git-config | Git mirror configuration directory |
GIT_MIRROR_DATA_DIR | git-data | Git mirror data directory |
GIT_MIRROR_DB_DATA_DIR | git-mirror-db | Git mirror database data directory |
Gitea Service Configuration
Variable | Default | Description |
GITEA_MIRROR_PORT | 8080 | Port for Gitea mirror service |
APP_NAME | Ontopic Suite | Application name for Gitea |
RUN_MODE | prod | Gitea run mode (prod/dev) |
DEFAULT_BRANCH | main | Default Git branch |
AUTHOR | Gitea - Git with a cup of tea | Gitea author information |
DESCRIPTION | - | Gitea description |
KEYWORDS | go,git,self-hosted,gitea | Gitea keywords |
PROTOCOL | http | Protocol for Gitea (http/https) |
HTTP_PORT | - | HTTP port for Gitea |
HTTPS_PORT | 443 | HTTPS port for Gitea |
DOMAIN | - | Domain for Gitea |
SSH_PORT | - | SSH port for Gitea |
DB_HOST | - | Database host for Gitea |
DB_NAME | gitea | Database name for Gitea |
DB_USER | gitea | Database user for Gitea |
DB_PASSWD_FILE | - | File containing database password for Gitea |
COOKIE_SECURE | false | Enable secure cookies |
COOKIE_SAME_SITE | lax | Cookie same site policy |
COOKIE_NAME | i_like_gitea | Cookie name |
COOKIE_USERNAME | gitea_awesome | Cookie username |
COOKIE_REMEMBER_NAME | gitea_incredible | Cookie remember name |
REVERSE_PROXY_AUTHENTICATION_USER | X-User | Reverse proxy authentication user header |
ADMIN_PASSWORD_FILE | - | File containing admin password |
ADMIN_ACCESS_TOKEN_FILE | - | File containing admin access token |
Ontopic Server
Variable | Default | Description |
ONTOPIC_SERVER_WEB_API_PORT | 8080 | Ontopic server web API port |
ONTOPIC_SERVER_POSTGRES_PORT | 4300 | Ontopic server PostgreSQL port |
ONTOPIC_SERVER_CORS_ALLOWED_ORIGINS | - | CORS allowed origins |
ONTOPIC_SERVER_LOG_LEVEL | INFO | Log level |
ONTOPIC_SERVER_ENABLE_POSTGRES_WIRE_PROTOCOL | true | Enable PostgreSQL wire protocol |
S3_BUCKET | - | S3 bucket name |
S3_REGION | - | S3 region |
MATERIALIZATION_CONFIGURATION_RELATIVE_DIR | materialization-configuration | Materialization configuration directory |
MATERIALIZATION_RESULT_RELATIVE_DIR | materialization-result | Materialization result directory |
ENDPOINT_DIR | materialization-endpoint | Endpoint directory |
ENDPOINT_SECURITY_DIR | endpoint-security | Endpoint security directory |
MATERIALIZATION_DB_DIR | materialization-db | Materialization database directory |
MATERIALIZATION_CONFIGURATION_DIR | materialization-configuration | Materialization configuration directory |
MATERIALIZATION_RESULT_DIR | materialization-result | Materialization result directory |
Identity Service Configuration
Basic Settings
Variable | Default | Description |
IDENTITY_SERVICE_DEBUG | false | Enable debug mode |
IDENTITY_SERVICE_TIMEOUT_IDLE | - | Idle timeout |
IDENTITY_SERVICE_TIMEOUT_READ | - | Read timeout |
IDENTITY_SERVICE_TIMEOUT_WRITE | - | Write timeout |
Authentication Providers
Variable | Default | Description |
IDENTITY_SERVICE_PROVIDER_OAUTH2 | - | OAuth2 provider |
IDENTITY_SERVICE_PROVIDER_PASSWORD | password-file | Password provider |
IDENTITY_SERVICE_AUDIENCE | - | JWT audience |
IDENTITY_SERVICE_SCOPES | - | OAuth2 scopes |
IDENTITY_SERVICE_ROLES | - | User roles |
Claims Configuration
Variable | Default | Description |
IDENTITY_SERVICE_CLAIMS_EMAIL | - | Email claim name |
IDENTITY_SERVICE_CLAIMS_GROUP | - | Group claim name |
IDENTITY_SERVICE_CLAIMS_ROLE | - | Role claim name |
Azure AD Configuration
Variable | Default | Description |
IDENTITY_SERVICE_AZURE_TENANT_ID | - | Azure AD tenant ID |
IDENTITY_SERVICE_AZURE_API_CLIENT_ID | - | Azure AD client ID |
Session Configuration
Variable | Default | Description |
IDENTITY_SERVICE_SESSION_PROMPT | - | Session prompt |
IDENTITY_SERVICE_SESSION_SCOPE | - | Session scope |
IDENTITY_SERVICE_CLIENT_ID | - | OAuth2 client ID |
IDENTITY_SERVICE_COOKIE_EXPIRATION | - | Cookie expiration time |
IDENTITY_SERVICE_COOKIE_REFRESH | - | Cookie refresh time |
IDENTITY_SERVICE_PROVIDER_NAME | - | Provider display name |
IDENTITY_SERVICE_IDENTITY_REFRESH | - | Identity refresh interval |
IDENTITY_SERVICE_EXTERNAL_AUTHORIZATION_URL | http://store-server:3000/store-api/authorize-after-authentication | External authorization URL |
Data Directory
Variable | Default | Description |
IDENTITY_SERVICE_DATA_DIR | identity-data | Identity service data directory |
Test Environment Configuration
Test Database Configuration
Variable | Default | Description |
POSTGRES_USER | postgres | PostgreSQL user for test databases |
POSTGRES_PASSWORD | postgres | PostgreSQL password for test databases |
POSTGRES_PASSWORD2 | postgres2 | Alternative PostgreSQL password for destination tutorial DB |
Secrets Configuration
All secrets are stored in files under the SECRETS_ROOT_DIR
directory.
Variable | Default | Description |
SECRETS_ROOT_DIR | ./default-secrets | Root directory for secrets |
Secret Files
The following secret files are required:
license/user-license
- User license file store/db-password
- Store database password gitea/db-password
- Gitea database password gitea/admin-password
- Gitea admin password gitea/admin-access-token
- Gitea admin access token identity/client-secret
- OAuth2 client secret identity/cookie-secret
- Cookie signing secret identity/azure/api-client-secret
- Azure API client secret identity/okta/ssws-token
- Okta SSWS token identity/keycloak/admin-password-file
- Keycloak admin password identity/password-file-db
- Password file database identity/jwt-keys
- JWT signing keys s3/access-key-id
- S3 access key ID s3/access-key-secret
- S3 access key secret
Example Configuration
Notes
- Secrets: All sensitive values should be stored in secret files, not as environment variables
- Defaults: Most variables have sensible defaults and don't need to be set unless you want to customize behavior
- Ports: Ensure the ports you choose don't conflict with other services on your system
- Volumes: Persistent data is stored in Docker volumes - backup these directories for data persistence