DIAL Chat Themes
DIAL Chat Themes is a small static web server that holds the branding of a DIAL deployment: the color themes, the logos, the favicons, and the model icons. DIAL Chat reads its config.json at runtime, so you can rebrand Chat by changing the themes service, with no rebuild of Chat. This page is for platform engineers who deploy the themes service and connect Chat to it.
What the service serves
The image is nginx with the contents of the repository's static/ folder in /var/www:
| Path | Content |
|---|---|
/config.json | The themes, their colors, and the image file names. See Themes configuration. |
/<file> | The images that config.json names, such as chat-logo-light.svg, chat-favicon.png, and model icons. |
/health | {"status":"ok"}, for health checks. |
Files are served on port 8080 to any origin, with a one-week expires header. The default config.json defines a light and a dark theme, and also carries the logos of DIAL Admin and Model Garden.
Connect DIAL Chat
Set the base URL of the themes service on DIAL Chat:
| DIAL Chat version | Variable |
|---|---|
| Chat 1.x | THEMES_CONFIG_URL, see Server and DIAL Core |
| Legacy Chat 0.x | THEMES_CONFIG_HOST |
THEMES_CONFIG_URL=http://dial-themes:8080
Chat 1.x never sends the browser to the themes service. The Chat BFF fetches <THEMES_CONFIG_URL>/config.json, serves it at /api/themes, and proxies images through /api/themes/icon?iconName=<name>. It caches both for 5 minutes, so a change on the themes service can take up to 5 minutes to appear. Without THEMES_CONFIG_URL, Chat uses its built-in light palette and shows no theme picker.
Configuration
The service takes two optional environment variables for OpenTelemetry tracing of its requests:
| Variable | Default | Description |
|---|---|---|
OTEL_EXPORTER_OTLP_ENDPOINT | — | The OTLP endpoint for traces. When unset, tracing is turned off at startup. |
OTEL_SERVICE_NAME | ai-dial-chat-themes | The service name in traces. |
Everything else is the content of config.json and the image files. To change them, build your own image from the repository, or mount your files over /var/www; see Create a custom theme.
Deployment
- Kubernetes: deploy the service with the umbrella
dialHelm chart, or on its own with thedial-extensionchart. See DIAL Helm. - Docker Compose: run the
epam/ai-dial-chat-themesimage and expose port8080. DIAL Chat reaches it by its service name, for examplehttp://themes:8080.