ghcr.io/firebolt-db/firebolt-core-ui Docker image. It listens on port 9100 and forwards the queries the browser submits to one engine node’s HTTP endpoint. Query execution stays on the engine, so the machine running the UI needs HTTP access to that endpoint and nothing else: no object-storage access and no connectivity to the other nodes.
Run it in one of two ways:
- As a sidecar container in each engine pod, on Kubernetes with the Helm chart or the Firebolt Operator. Off by default.
- As a standalone container on any machine with Docker, pointed at an engine’s HTTP endpoint. This is the way to get the UI for an engine running from the standalone binaries.
Run as a Kubernetes sidecar
Helm chart
SetuiSidecar on the engine spec in your values file and upgrade the release:
9100 (named web-ui) on the engine Service.
Firebolt Operator
SetuiSidecar: true on a FireboltEngine, or on a FireboltEngineClass to apply it to every engine that references the class:
engine-web container into each engine pod. The sidecar points at the engine in the same pod over loopback (http://localhost:3473). An engine value overrides the class value, which overrides the default (false). See the uiSidecar field in the CRD reference.
Open the UI
The UI listens on port9100 inside the engine pod. Forward that port from a pod to your workstation, then open http://localhost:9100:
9100 is also published on the engine Service, so you can forward the Service instead:
Run the Docker image directly
The standalone container works against any engine endpoint, wherever the engine runs.FIREBOLT_CORE_URL, the URL the UI forwards queries to, is the only required setting.
On the machine that runs a firebolt node:
http://localhost:9100. With --network=host the container shares the host’s network namespace, so localhost is the host itself and port 9100 is served without a port mapping. The flag behaves this way on Linux, which is what engine hosts run.
The UI does not have to run next to the engine. Run it on any machine that can reach a node’s HTTP port, including your workstation:
FIREBOLT_CORE_URL. Point it at a firebolt node’s HTTP endpoint directly (http://<node>:3473), not at a subpath: the UI forwards each query as a POST /query, and a node accepts SQL over POST on any path.
If you cannot expose the node directly and put a proxy in front, the proxy must satisfy what the UI sends, because it forwards requests unchanged:
- Serve the engine at the path
/query. The UI always posts to/query, so a proxy that exposes the engine under any other prefix never reaches it. - Accept plain HTTP without SNI or Host-based routing. The forwarded request keeps the browser’s
Hostheader (the UI’s own origin), so an HTTPS proxy that routes by hostname does not match. - Enforce access by network, not by credentials. The UI cannot attach an auth header or client certificate, so restrict the proxy with network controls instead.
Configuration
Security
The UI adds no authentication on top of the engine’s HTTP endpoint, which has none. Anyone who can reach port9100 can run queries with full access to the engine. Treat network reachability as the security boundary, exactly as for the engine endpoint itself: keep the port on loopback or a private network, and reach it from elsewhere through kubectl port-forward or an SSH tunnel.