A simple dashboard for browsing, viewing, and managing keys in etcd.
- Frontend: React + TypeScript (Vite)
- Backend: Micronaut REST API (Java)
- Ships as a single container with nginx serving both the UI and the API.
- List and search keys (starts with / contains / exact)
- View, create, update, and delete keys
- Attach a TTL lease to a key (or reuse an existing lease)
- Live updates via WebSocket when keys change
docker compose up --buildThen open http://localhost:8080.
The stack runs an embedded etcd instance, but you can point the app at any etcd server by changing the ETCD_URL environment variable in docker-compose.yml.
The app is published as a single image on Docker Hub: senocakanil/etcd-viewer.
Point it at any etcd server:
docker run -d --name etcd-viewer -p 8080:8080 \
-e ETCD_URL=http://<your-etcd-host>:2379 \
senocakanil/etcd-viewer:latestThen open http://localhost:8080.
services:
etcd:
image: quay.io/coreos/etcd:v3.6.7
ports:
- "2379:2379"
etcd-viewer:
image: senocakanil/etcd-viewer:latest
ports:
- "8080:8080"
environment:
ETCD_URL: http://etcd:2379
depends_on:
- etcddocker login
VERSION=1.2 docker compose build
docker push senocakanil/etcd-viewer:1.2- Start etcd:
docker compose up -d etcd - Start the API:
cd backend && ./mvnw mn:run - Start the frontend:
cd frontend && npm install && npm run dev - Open http://localhost:5173
| Variable | Default | Description |
|---|---|---|
ETCD_URL |
http://localhost:2379 |
etcd HTTP endpoint |
etcd.timeout |
5s |
Request/watch timeout |
etcd.watch.enabled |
true |
Set to false to disable live updates |





