Skip to main content

Core, Redis & Themes

This page documents the Core, Redis, and Themes service definitions in the advanced docker-compose-base.yml.

Core​

core:
image: epam/ai-dial-core:0.47.1
platform: linux/amd64
environment:
'JAVA_OPTS': '-Dgflog.config=/opt/settings/gflog.xml'
'aidial.config.files': '["/app/config/config.json"]'
'aidial.identityProviders.keycloak.jwksUrl': 'http://keycloak:${KC_PORT}/realms/dial/protocol/openid-connect/certs'
'aidial.identityProviders.keycloak.rolePath': 'roles'
'aidial.access.admin.rules': '[{"source": "roles", "function": "CONTAIN", "targets": ["admin"]}]'
'aidial.identityProviders.keycloak.loggingKey': 'email'
'aidial.identityProviders.keycloak.loggingSalt': 'loggingSalt'
'aidial.encryption.secret': '${DIAL_CORE_ENCRYPTION_SECRET}'
'aidial.encryption.key': '${DIAL_CORE_ENCRYPTION_KEY}'
'aidial.redis.singleServerConfig.address': 'redis://redis:6379'
'aidial.storage.provider': 'filesystem'
'aidial.storage.prefix': 'core'
'aidial.storage.bucket': 'dial'
'aidial.storage.createBucket': 'true'
'aidial.storage.overrides': '{"jclouds.filesystem.basedir": "data"}'
'aidial.applications.includeCustomApps': 'true'
ports:
- "${DIAL_CORE_HOST_PORT}:8080"
volumes:
- ${DIAL_DIR:-.}/core:/app/config
- ${DIAL_DIR:-.}/core-logs:/app/log
- ${DIAL_DIR:-.}/core-data:/app/data
- ./settings:/opt/settings
depends_on:
- redis
restart: always

Environment variables​

All aidial.* variables override their corresponding keys in settings.json. See Configuration precedence for override rules.

Variablesettings.json keyDescriptionReference
JAVA_OPTS—JVM options. Points to the gflog.xml logging config.—
aidial.config.filesconfig.filesPath to the dynamic config.json.Config Reload
aidial.identityProviders.keycloak.jwksUrlidentityProviders.keycloak.jwksUrlJWKS endpoint for JWT validation.Identity Providers
aidial.identityProviders.keycloak.rolePathidentityProviders.keycloak.rolePathJWT claim path for user roles.Identity Providers
aidial.access.admin.rulesaccess.admin.rulesRules matching JWT claims for admin access.Access Control
aidial.identityProviders.keycloak.loggingKeyidentityProviders.keycloak.loggingKeyJWT claim used for user identification in logs.Identity Providers
aidial.identityProviders.keycloak.loggingSaltidentityProviders.keycloak.loggingSaltSalt for hashing user info in logs.Identity Providers
aidial.encryption.secretencryption.secretAES encryption secret. Injected from .env.Encryption
aidial.encryption.keyencryption.keyAES encryption key. Injected from .env.Encryption
aidial.redis.singleServerConfig.addressredis.singleServerConfig.addressRedis connection address.Redis
aidial.storage.providerstorage.providerBlob storage provider.Storage
aidial.storage.prefixstorage.prefixBase prefix for stored resources.Storage
aidial.storage.bucketstorage.bucketStorage bucket name.Storage
aidial.storage.createBucketstorage.createBucketCreate the bucket on startup if missing.Storage
aidial.storage.overridesstorage.overridesStorage property overrides (jclouds).Storage
aidial.applications.includeCustomAppsapplications.includeCustomAppsInclude custom apps in listing endpoint.Access Control

Volume mounts​

MountPurpose
${DIAL_DIR:-.}/core:/app/configconfig.json
${DIAL_DIR:-.}/core-logs:/app/logLog output directory
${DIAL_DIR:-.}/core-data:/app/dataFilesystem blob storage
./settings:/opt/settingsgflog.xml

DIAL_DIR lets the host-side paths be relocated; it defaults to the compose file's own directory.

Differences from quick start​

AspectQuick StartAdvanced
Configuration methodAIDIAL_SETTINGS env var pointing to settings.jsonaidial.* env var overrides (no AIDIAL_SETTINGS)
Identity providersdisableJwtVerification: trueKeycloak JWKS validation
EncryptionNot configuredencryption.secret and encryption.key from .env
Custom appsNot enabledincludeCustomApps: true

Redis​

redis:
image: redis:7.2.4-alpine3.19
restart: always
ports:
- "6600:6379"
command: >
redis-server
--maxmemory 2000mb
--maxmemory-policy volatile-lfu
--save ""
--appendonly no
--loglevel warning
mem_limit: 2200M

The Redis configuration is identical to the quick start except the host port maps to 6600 instead of 6379 to avoid conflicts when running both setups simultaneously.

See Redis connection settings for DIAL Core's redis.* configuration in settings.json.


Themes​

themes:
image: epam/ai-dial-chat-themes:0.19.1
platform: linux/amd64
ports:
- "3101:8080"

Static file server for Chat theme CSS, images, and configuration. See epam/ai-dial-chat-themes.

Further reading​