{"id":49707837,"url":"https://github.com/sentrychris/vigil","last_synced_at":"2026-05-08T11:16:57.564Z","repository":{"id":111149263,"uuid":"579790086","full_name":"sentrychris/vigil","owner":"sentrychris","description":"A system monitor for your server.","archived":false,"fork":false,"pushed_at":"2026-05-03T19:11:42.000Z","size":2688,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-03T19:13:52.585Z","etag":null,"topics":["beginner","dashboard","javascript","linux","monitor","monitoring-application","monitoring-tool","python3","typescipt","vue3","websocket"],"latest_commit_sha":null,"homepage":"https://status.edcs.app","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sentrychris.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-12-18T23:13:30.000Z","updated_at":"2026-05-03T19:11:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"0d47807d-2ed3-40a7-86db-c00e5b8fe1ed","html_url":"https://github.com/sentrychris/vigil","commit_stats":null,"previous_names":["sentrychris/pi-monitor","sentrychris/vigil"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/sentrychris/vigil","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentrychris%2Fvigil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentrychris%2Fvigil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentrychris%2Fvigil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentrychris%2Fvigil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sentrychris","download_url":"https://codeload.github.com/sentrychris/vigil/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentrychris%2Fvigil/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32777945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beginner","dashboard","javascript","linux","monitor","monitoring-application","monitoring-tool","python3","typescipt","vue3","websocket"],"created_at":"2026-05-08T11:16:56.494Z","updated_at":"2026-05-08T11:16:57.554Z","avatar_url":"https://github.com/sentrychris.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./logo.svg\" alt=\"Vigil\" width=\"120\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eVigil\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eA lightweight monitoring dashboard for one server, or a fleet of them.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eView a \u003ca href=\"https://status.edcs.app\"\u003elive example here\u003c/a\u003e.\u003c/p\u003e\n\n![image](./docs/dashboard.webp)\n\nVigil ships in **two modes** that share the same UI:\n\n- **Host** — connects directly to one [vigil-collector](https://status.edcs.app/hub/help/fundamentals)\n  via HTTP/WebSocket and shows that host's full live dashboard. The\n  original mode; what most operators want for a single box.\n- **Hub** — connects to a [Vigil Pro](https://vigil.edcs.app#pricing)\n  Hub and surfaces a fleet view, per-host detail with sparkline metrics,\n  alert state visibility, and rule management.\n\n## Quick Start\n\n### Requirements\n\n- [vigil-collector](https://status.edcs.app/hub/help/fundamentals) — the agent that gathers system samples.\n- [vigil-pro](https://vigil.edcs.app#pricing) (optional) — the multi-host hub. Only needed for Hub mode.\n\n1. Clone the repository\n\n   ```\n   git clone git@github.com:sentrychris/vigil.git\n   ```\n\n2. Install dependencies\n\n   ```\n   npm install\n   ```\n\n3. Copy `.env.example` to `.env` and configure your environment variables\n\n   ```\n   VITE_APP_NAME=\"Vigil\"                             # Visible in the navbar, above page title\n   VITE_APP_TITLE=\"Metric \u0026 Monitoring\"              # Visible in the navbar, page title\n\n   VITE_APP_DEPLOY_REGION=us-central1-a              # (optional) visible in the footer\n   VITE_APP_DEPLOY_INSTANCE=chris-web1               # (optional) visible in the footer\n\n   # ─── Host mode ────────────────────────────────────────────────────\n   VITE_API_URL=\"http://127.0.0.1:4500\"              # vigil-collector base URL\n   VITE_WORKER_URL=\"http://127.0.0.1:4500/worker\"    # collector's worker endpoint\n   VITE_WEBSOCKET_URL=\"ws://127.0.0.1:4500/connect\"  # collector's websocket endpoint\n   VITE_CONNECTION_TYPE=\"websocket\"                  # \"http\" for static data, \"websocket\" for live\n\n   # ─── Hub mode (optional) ──────────────────────────────────────────\n   VITE_HUB_URL=\"https://hub.vigil.example.com\"      # Vigil Pro Hub base URL\n   ```\n\n## Host mode\n\nThe dashboard works with either static data served from standard HTTP endpoints, or live data served through websocket connections.\n\n- If you set `VITE_CONNECTION_TYPE` to `websocket`, the dashboard will load with a websocket connection configured and will display live data that updates in real time.\n\n- If you set `VITE_CONNECTION_TYPE` to `http`, the dashboard will load with data requested from an HTTP endpoint and will poll for updates every 30 seconds.\n\nThere is a control switch provided at the top-right on the navbar to toggle the connection type between HTTP and Websocket.\n\n## Hub mode\n\nSetting `VITE_HUB_URL` at build time enables the hub routes. Everything\nbehind them is gated by the Vigil Pro admin bearer token.\n\n| Path | What |\n|---|---|\n| `/hub`              | Fleet overview — host list, fleet alert state, recent activity, ops command popout |\n| `/hub/hosts/\u003cid\u003e`   | Host detail — system data sheet, health card, sparkline metrics, source footnote |\n| `/hub/rules`        | Alert rules — list, drill into rule definitions, inline delete |\n| `/hub/help`         | Alert state-machine docs (firing / breaching / OK + transitions + edge cases) |\n\nThe host-detail page renders an \"Open dashboard\" link when the host's\n`collector_url` is set on the hub, deep-linking to that host's own\ncollector dashboard for full live metrics.\n\nWhen Hub mode isn't configured, the navbar hides the segmented switcher\nand the routes render a \"Hub mode disabled\" notice.\n\n## Feedback\n\nIf you have any questions or feedback, please feel free to raise an [issue here](https://github.com/sentrychris/vigil/issues).\n\n## License\n\nMIT.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsentrychris%2Fvigil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsentrychris%2Fvigil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsentrychris%2Fvigil/lists"}