Files
runner-dashboard/README.md
peptiderepo 34858a3088 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
2026-06-19 09:02:59 +00:00

27 lines
696 B
Markdown

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