Skip to content

Repository files navigation

etcd Viewer

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.

Features

  • 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

Screenshots

Dashboard (dark) Dashboard (light) Create key (dark) Create key (light) About (dark) About (light)

Quick start (Docker)

docker compose up --build

Then 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.

Docker Hub

The app is published as a single image on Docker Hub: senocakanil/etcd-viewer.

Run the published image

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:latest

Then open http://localhost:8080.

Run with a local etcd (docker compose)

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:
      - etcd

Publish a new version

docker login
VERSION=1.2 docker compose build
docker push senocakanil/etcd-viewer:1.2

Run locally (development)

  1. Start etcd: docker compose up -d etcd
  2. Start the API: cd backend && ./mvnw mn:run
  3. Start the frontend: cd frontend && npm install && npm run dev
  4. Open http://localhost:5173

Configuration

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