Local setup
Run a complete DIAL stack on your own machine with Docker Compose. This section is for developers and DevOps engineers who want to evaluate DIAL, develop applications, or test configuration changes locally before deploying to a cluster. Each tutorial walks you from an empty directory to DIAL Chat open at http://localhost:3000, connected to a working model or application.
Every setup in this section is built from a directory in dial-docker-compose/ that includes a shared base file (common.yml) and adds the services for one scenario. The base file provides the four services common to every setup — DIAL Core, DIAL Chat, Redis, and chat themes — so each tutorial only adds what is specific to its model or application.
Which setup to choose
| Setup | What you connect | Cloud account or key | Best for |
|---|---|---|---|
| Echo application | A sample app that mirrors your prompts | No | First run, verifying the stack, learning how apps register |
| Ollama model | A self-hosted chat, vision, or embedding model | No | Local development with open models, no cloud dependency |
| vLLM model | A self-hosted Hugging Face model served by vLLM | No | High-throughput local inference, GPU experimentation |
| Azure OpenAI model | A model deployed in Azure OpenAI | Azure OpenAI endpoint and key | Evaluating DIAL against production-grade cloud models |
| DIAL-to-DIAL adapter | Models from a remote DIAL Core | Remote DIAL Core URL and key | App development against models you can't host locally |
If you only want to see DIAL working as fast as possible, start with the Echo application — it requires no cloud account, no API key, and no model download.
DIAL service definitions pin platform: linux/amd64 because the epam/ai-dial-* images are currently published for linux/amd64 only. On Apple Silicon Macs, Docker runs them under emulation. Third-party images such as redis and ollama are left unpinned so they use their native arm64 builds.
What every setup shares
The common.yml base file defines four services:
| Service | Image | Role |
|---|---|---|
core | epam/ai-dial-core | API server. Reads config.json and exposes models and applications through the Unified API on port 8080. |
chat | epam/ai-dial-chat | Web UI on port 3000. Uses API key authentication — no identity provider in local setups. |
redis | redis:7.2.4-alpine3.19 | Volatile cache for DIAL Core. No persistence. |
themes | epam/ai-dial-chat-themes | Static server for Chat theme assets. |
For the full service definitions and a breakdown of volume mounts and Redis settings, see the Docker Compose configuration reference.