Chadmin is an administration panel for ClickHouse — a real-time dashboard for monitoring running queries, managing users and access, and operating ClickHouse Cloud services. It auto-detects whether you're running a single node, a self-hosted cluster, or ClickHouse Cloud, and adapts the UI and SQL accordingly.
The published image at bun4uk/chadmin bundles nginx + php-fpm + the built frontend in a single container. No clone, no build:
docker run -d \
--name chadmin \
-p 8080:80 \
-e CLICKHOUSE_HOST=clickhouse.example.com \
-e CLICKHOUSE_PORT=8123 \
-e CLICKHOUSE_USERNAME=default \
-e CLICKHOUSE_PASSWORD=secret \
bun4uk/chadmin:latestThen open http://localhost:8080.
For ClickHouse Cloud, pass the API credentials instead — Cloud mode turns on automatically:
docker run -d \
--name chadmin \
-p 8080:80 \
-e CLICKHOUSE_CLOUD_KEY_ID=xxxxxxxx \
-e CLICKHOUSE_CLOUD_KEY_SECRET=yyyyyyyy \
bun4uk/chadmin:latestSee .env.example for the full list of supported environment variables. Available tags: latest, M.m.p (semver), M.m, M. Multi-arch images are published for linux/amd64 and linux/arm64.
If you prefer keeping the configuration in a file, mount an env file instead of passing individual -e flags:
docker run -d --name chadmin -p 8080:80 --env-file .env bun4uk/chadmin:latestTo upgrade to a newer version, pull the new tag and recreate the container:
docker pull bun4uk/chadmin:latest
docker rm -f chadmin
docker run -d --name chadmin -p 8080:80 --env-file .env bun4uk/chadmin:latest- Docker and Docker Compose
- Git
-
Clone the repository:
git clone https://github.com/bun4uk/chadmin.git cd chadmin -
Create and configure the
.envfile:cp .env.example .env
Edit
.envand add your ClickHouse credentials. For ClickHouse Cloud, setCLICKHOUSE_CLOUD_KEY_IDandCLICKHOUSE_CLOUD_KEY_SECRET— Cloud mode turns on automatically when these are present. See.env.examplefor the full list. -
Launch the project:
docker-compose up -d
-
Open http://localhost in your browser
Everything builds and runs through docker-compose. The frontend container runs npm install && npm run watch (Vite build in watch mode) and rebuilds assets into public/build/ on every file change — no host-side npm or composer needed.
There is no test suite and no separate lint step. TypeScript type-checking runs as part of the Vite build inside the frontend container.
docker-compose restart app
docker-compose exec app bin/console cache:cleardocker-compose exec app bin/console <command> # Symfony console
docker-compose run --rm composer install # composer
docker-compose exec frontend npm run build # one-shot production builddocker-compose downdocker-compose logs -f app
docker-compose logs -f nginx
docker-compose logs -f frontenddocker-compose down
rm -rf var/cache/* var/log/* public/build/*
docker-compose up -d
docker-compose exec app bin/console cache:clear- PHP 8.5 / Symfony 8.0
- React 19 + TypeScript + Vite 8
- Tailwind CSS 4 +
@clickhouse/click-ui highlight.js+sql-formatterfor SQL displaysmi2/phpclickhousefor ClickHouse SQL queries- Docker and Docker Compose
- Auto-detects topology: single node, self-hosted cluster, or ClickHouse Cloud — no manual switch needed
- Real-time per-target view of running queries with memory and duration
- SQL syntax highlighting and formatting in query popups
- Background coloring based on query execution time
- Kill long-running queries
- Users & Access page (
/users) for inspecting and dropping ClickHouse users - Cloud-only: wake idle/stopped services from the UI; deep-link to a specific warehouse/service via URL params (
?warehouse=…&service=…) - Light/dark theme toggle, persisted per browser
- Polling pauses when the tab is hidden, so idle Cloud services aren't kept warm by a background tab
