feat: initial runner dashboard
Node 20 / no-framework HTTP service. Routes: /healthz (no auth), /api/runners (proxy to GitHub), / (dashboard UI). Dark theme, Basic Auth, 15s poll, stale-data strip, token-missing empty state. Agent-Session: runner-dashboard-deploy-2026-06-19
This commit is contained in:
26
README.md
Normal file
26
README.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# runner-dashboard
|
||||
|
||||
Self-hosted GitHub Actions runner status dashboard for the peptide-repo org.
|
||||
|
||||
## Setup
|
||||
|
||||
Set the following env vars (via Coolify or `.env` locally):
|
||||
|
||||
| Var | Purpose |
|
||||
|-----|---------|
|
||||
| `GITHUB_RUNNERS_READ_TOKEN` | Fine-grained PAT: org `peptide-repo`, Self-hosted runners: Read-only |
|
||||
| `DASH_USER` | HTTP Basic Auth username |
|
||||
| `DASH_PASS` | HTTP Basic Auth password |
|
||||
| `PORT` | Port to listen on (default: 3000) |
|
||||
|
||||
## Run locally
|
||||
|
||||
```sh
|
||||
DASH_USER=admin DASH_PASS=secret GITHUB_RUNNERS_READ_TOKEN=ghp_... node server.js
|
||||
```
|
||||
|
||||
Then open http://localhost:3000 (auth required).
|
||||
|
||||
## Health check
|
||||
|
||||
`GET /healthz` returns `200 ok` — no auth, no GitHub call. Used by Coolify.
|
||||
Reference in New Issue
Block a user