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
| File | Purpose |
|---|---|
docker-compose-base.yml | All core services: Chat, Core, Redis, Themes, Keycloak, Admin Backend, Admin Frontend, OpenAI Adapter |
.env | Port assignments, secrets, and host configuration |
Services
docker-compose-base.yml defines 8 services:
| Service | Image | Description | Details |
|---|---|---|---|
core | epam/ai-dial-core:0.47.1 | API server with identity providers and encryption | Core, Redis & Themes |
redis | redis:7.2.4-alpine3.19 | In-memory cache | Core, Redis & Themes |
themes | epam/ai-dial-chat-themes:0.19.1 | Static theme server | Core, Redis & Themes |
chat | epam/ai-dial-chat:1.0.15 | Web UI with Keycloak auth | Authentication |
keycloak | keycloak/keycloak:26.7 | Identity provider | Authentication |
adapter-openai | epam/ai-dial-adapter-openai:0.43.2 | OpenAI/Azure adapter | Adapters |
admin-backend | epam/ai-dial-admin-backend:0.20.1 | Admin API | Admin Panel |
admin-frontend | epam/ai-dial-admin-frontend:0.20.4 | Admin web UI | Admin 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
| Service | URL |
|---|---|
| DIAL Chat | http://localhost:${DIAL_CHAT_HOST_PORT} (default: 3000) |
| DIAL Core API | http://localhost:${DIAL_CORE_HOST_PORT} (default: 8080) |
| Admin Panel | http://localhost:${DIAL_ADMIN_FRONTEND_HOST_PORT} (default: 3100) |
| Keycloak Admin | http://localhost:${KC_PORT} (default: 8180) |