See which runners are online, busy, or quietly dead. Tail their logs live. Start, stop, or restart them — one at a time or all together — from a button instead of a pidfile and an SSH session.
No framework, no build step, no dependencies to run it. Just PHP and a little vanilla JS.
git clone https://github.com/AnikethTS/RunnerDeck.git && cd RunnerDeck
./run.sh # binds 127.0.0.1:8090, no .env requiredOpen http://127.0.0.1:8090/, pick org or repo scope, click Start All.
That's the whole setup. Machine not ready yet? Run php bin/doctor.php to
check — or see Getting started for the full
walkthrough, prerequisites, and platform notes (Linux/macOS native,
Windows via WSL2).
| Dashboard | Live log |
|---|---|
![]() |
![]() |
| Add runner | Settings |
|---|---|
![]() |
![]() |
Self-hosted runners are cheap to run many of on one machine, but tedious to
operate: is runner-7 actually alive, or did its process die three hours ago
while GitHub still shows it "busy"? Which of these logs has the failure? Did
that last "Start All" click actually work, or did it just pile up a second
copy on top of the first? RunnerDeck exists to make those questions fast
to answer, and to make starting/stopping a fleet of runners a button instead
of a script incantation.
- Checks each runner two ways — what GitHub reports, and what's actually running on this machine — and flags the two when they disagree.
- Adds, starts, stops, renames, and deletes runners for you, checksums and
all. No more downloading the runner package and running
config.shby hand. - Shows live CPU/RAM per runner and for the whole machine, plus a rolling history chart.
- Can auto-restart a runner that crashes, with crash-loop protection so it doesn't retry forever.
- Has a full JSON API behind the UI, documented in API.md, if you'd rather script it.
Curious exactly how any of that works under the hood? See How it works for the full behavior reference.
- Getting started — prerequisites, platform support, first-time setup, Add to Home Screen
- How it works — the full behavior reference
- Docker — running RunnerDeck in a container (or Podman)
- Hosting — php-fpm, TLS, IP allowlist / mTLS
- Configuration — every environment variable
- Security & safety — hosting remotely, what this trusts, what it doesn't
- Development — running tests, CI, directory layout
- API.md — the JSON API this UI is itself a client of
- CONTRIBUTING.md — how to send a PR
- SECURITY.md — how to report a vulnerability
MIT — see LICENSE.





