Skip to main content

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:

PathContent
/config.jsonThe 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 versionVariable
Chat 1.xTHEMES_CONFIG_URL, see Server and DIAL Core
Legacy Chat 0.xTHEMES_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:

VariableDefaultDescription
OTEL_EXPORTER_OTLP_ENDPOINT—The OTLP endpoint for traces. When unset, tracing is turned off at startup.
OTEL_SERVICE_NAMEai-dial-chat-themesThe 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 dial Helm chart, or on its own with the dial-extension chart. See DIAL Helm.
  • Docker Compose: run the epam/ai-dial-chat-themes image and expose port 8080. DIAL Chat reaches it by its service name, for example http://themes:8080.