ovoo is a web UI for HashiCorp Nomad, for people who run a Nomad cluster and
want to see and change it from a browser, on a desktop or a phone. It shows
the cluster's health and lets you manage jobs, allocations, nodes, storage and
access, with logs and a terminal in the page. It runs on Cloudflare Workers or
in Docker, and the Nomad ACL token stays in an httpOnly cookie.
Igor Churmeev makes it; it was called Nomad
Compass before.
- A dashboard with cluster health, resource usage, stability alerts and recent activity.
- Jobs: create, edit, clone and revert them in a form with a plan diff, promote canaries, scale task groups, run periodic jobs and dispatch parameterized ones.
- Task logs, a terminal in a running task, and the files of an allocation, also a finished or failed one.
- Allocations, nodes, node pools, servers and the topology, with restart, signal, drain and eligibility controls.
- ACL policies, roles and tokens, namespaces, Nomad variables and CSI volumes.
- An installable app for phones, with light and dark themes.
Point the published Docker image at your Nomad API:
docker run -p 3000:3000 \
-e NOMAD_ADDR=http://your-nomad:4646 \
-e TICKET_SECRET=$(openssl rand -hex 32) \
ghcr.io/ingvarch/ovoo:latestOpen http://localhost:3000 and paste your ACL token. Cloudflare Workers and Docker Compose are in docs/deployment.md.
You need Bun 1.2+ and a Nomad cluster with an ACL token,
see docs/development.md. Set NOMAD_ADDR to your Nomad
API:
git clone https://github.com/ingvarch/ovoo.git && cd ovoo
bun install
echo "NOMAD_ADDR=http://localhost:4646" > .dev.vars
echo "TICKET_SECRET=$(openssl rand -hex 32)" >> .dev.vars
bun run devOpen http://localhost:5173 and paste your ACL token.
- Usage: signing in, dashboard, jobs, periodic and parameterized jobs, logs, remote exec, allocations and their files, topology, nodes, node pools, storage, servers, activity, namespaces, variables, ACL, mobile app, themes.
- Deployment: settings, secrets, Cloudflare Workers, Docker and Compose, release images, running behind a reverse proxy.
- Development: prerequisites, local secrets, dev modes, checks, project structure, tech stack.
- Security: cookies, CSRF, path allowlist, rate limits, response headers, signed WebSocket tickets.
- Traefik guides: Traefik as ingress for Nomad jobs, Let's Encrypt through the Cloudflare DNS challenge, the ingress options of the job form.
MIT, see LICENSE.
Nomad is a trademark of HashiCorp. ovoo is an independent project and is not affiliated with or endorsed by HashiCorp.
How to build ovoo, run the checks and send a change is in CONTRIBUTING.md. Security problems are reported privately, see SECURITY.md.
An ovoo is a Mongolian cairn: a heap of stones on a hilltop or a mountain pass. On the open steppe you see one from far away, and it tells you where you are and which way the road goes.
A cluster is that steppe. This is the landmark you check first.
