A lightweight monitoring dashboard for one server, or a fleet of them.
View a live example here.
Vigil ships in two modes that share the same UI:
- Host — connects directly to one vigil-collector via HTTP/WebSocket and shows that host's full live dashboard. The original mode; what most operators want for a single box.
- Hub — connects to a Vigil Pro Hub and surfaces a fleet view, per-host detail with sparkline metrics, alert state visibility, and rule management.
- vigil-collector — the agent that gathers system samples.
- vigil-pro (optional) — the multi-host hub. Only needed for Hub mode.
-
Clone the repository
git clone git@github.com:sentrychris/vigil.git -
Install dependencies
npm install -
Copy
.env.exampleto.envand configure your environment variablesVITE_APP_NAME="Vigil" # Visible in the navbar, above page title VITE_APP_TITLE="Metric & Monitoring" # Visible in the navbar, page title VITE_APP_DEPLOY_REGION=us-central1-a # (optional) visible in the footer VITE_APP_DEPLOY_INSTANCE=chris-web1 # (optional) visible in the footer # ─── Host mode ──────────────────────────────────────────────────── VITE_API_URL="http://127.0.0.1:4500" # vigil-collector base URL VITE_WORKER_URL="http://127.0.0.1:4500/worker" # collector's worker endpoint VITE_WEBSOCKET_URL="ws://127.0.0.1:4500/connect" # collector's websocket endpoint VITE_CONNECTION_TYPE="websocket" # "http" for static data, "websocket" for live # ─── Hub mode (optional) ────────────────────────────────────────── VITE_HUB_URL="https://hub.vigil.example.com" # Vigil Pro Hub base URL
The dashboard works with either static data served from standard HTTP endpoints, or live data served through websocket connections.
-
If you set
VITE_CONNECTION_TYPEtowebsocket, the dashboard will load with a websocket connection configured and will display live data that updates in real time. -
If you set
VITE_CONNECTION_TYPEtohttp, the dashboard will load with data requested from an HTTP endpoint and will poll for updates every 30 seconds.
There is a control switch provided at the top-right on the navbar to toggle the connection type between HTTP and Websocket.
Setting VITE_HUB_URL at build time enables the hub routes. Everything
behind them is gated by the Vigil Pro admin bearer token.
| Path | What |
|---|---|
/hub |
Fleet overview — host list, fleet alert state, recent activity, ops command popout |
/hub/hosts/<id> |
Host detail — system data sheet, health card, sparkline metrics, source footnote |
/hub/rules |
Alert rules — list, drill into rule definitions, inline delete |
/hub/help |
Alert state-machine docs (firing / breaching / OK + transitions + edge cases) |
The host-detail page renders an "Open dashboard" link when the host's
collector_url is set on the hub, deep-linking to that host's own
collector dashboard for full live metrics.
When Hub mode isn't configured, the navbar hides the segmented switcher and the routes render a "Hub mode disabled" notice.
If you have any questions or feedback, please feel free to raise an issue here.
MIT.
