34858a308878dbd9aa7a874928fbfbfe345d89e6
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
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
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.
Description
Languages
HTML
66.4%
JavaScript
32%
Dockerfile
1.6%