Skip to main content

Advanced setup

The advanced Docker Compose setup in dial-docker-compose-advanced/dial-2.x/ provides a production-like deployment with Keycloak authentication, an Admin Panel, and multiple model adapters.

File structure​

FilePurpose
docker-compose-base.ymlAll core services: Chat, Core, Redis, Themes, Keycloak, Admin Backend, Admin Frontend, OpenAI Adapter
.envPort assignments, secrets, and host configuration

Services​

docker-compose-base.yml defines 8 services:

ServiceImageDescriptionDetails
coreepam/ai-dial-core:0.47.1API server with identity providers and encryptionCore, Redis & Themes
redisredis:7.2.4-alpine3.19In-memory cacheCore, Redis & Themes
themesepam/ai-dial-chat-themes:0.19.1Static theme serverCore, Redis & Themes
chatepam/ai-dial-chat:1.0.15Web UI with Keycloak authAuthentication
keycloakkeycloak/keycloak:26.7Identity providerAuthentication
adapter-openaiepam/ai-dial-adapter-openai:0.43.2OpenAI/Azure adapterAdapters
admin-backendepam/ai-dial-admin-backend:0.20.1Admin APIAdmin Panel
admin-frontendepam/ai-dial-admin-frontend:0.20.4Admin web UIAdmin Panel

Configuration approach​

Unlike the quick start setups, which load settings.json via the AIDIAL_SETTINGS environment variable, the advanced Core service uses aidial.* environment variable overrides directly. Each aidial.* variable maps to a key in settings.json. See settings.json — Configuration precedence for override rules.

Running the setup​

cd dial-docker-compose-advanced/dial-2.x
# .env is committed in the repo — edit it with your secrets
docker compose -f docker-compose-base.yml up
ServiceURL
DIAL Chathttp://localhost:${DIAL_CHAT_HOST_PORT} (default: 3000)
DIAL Core APIhttp://localhost:${DIAL_CORE_HOST_PORT} (default: 8080)
Admin Panelhttp://localhost:${DIAL_ADMIN_FRONTEND_HOST_PORT} (default: 3100)
Keycloak Adminhttp://localhost:${KC_PORT} (default: 8180)