Skip to content
ingvarchPublic

About

A web UI for people who run a HashiCorp Nomad cluster to manage jobs, allocations, nodes, storage and access from a browser or phone, on Cloudflare Workers or in Docker.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

9 stars

Watchers

2 watching

Forks

Repository files navigation

ovoo

ovoo

CI release license TypeScript Cloudflare Workers Docker

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.

ovoo dashboard

Features

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

Usage

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

Open http://localhost:3000 and paste your ACL token. Cloudflare Workers and Docker Compose are in docs/deployment.md.

Quick start

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 dev

Open http://localhost:5173 and paste your ACL token.

Documentation

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

License

MIT, see LICENSE.

Nomad is a trademark of HashiCorp. ovoo is an independent project and is not affiliated with or endorsed by HashiCorp.

Contributing

How to build ovoo, run the checks and send a change is in CONTRIBUTING.md. Security problems are reported privately, see SECURITY.md.

About the name

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.

About

A web UI for people who run a HashiCorp Nomad cluster to manage jobs, allocations, nodes, storage and access from a browser or phone, on Cloudflare Workers or in Docker.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

9 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages