This repository provides a Docker-based GitHub Actions self-hosted runner designed for fast, reproducible CI execution. It is lightweight, easy to deploy, and ideal for local or remote automation (VPS, home lab, cloud instance).
-
Fully Dockerized GitHub Actions runner
-
Automatic registration to any repository via GitHub token
-
Optional multi-runner setup using Docker Compose (replicas)
-
Includes common build tools:
- Node.js
- PHP & Composer
- MySQL client
- Git
- Curl / zip / unzip
- Playwright dependencies
-
Clean shutdown & automatic removal on container exit
-
Works with Linux hosts (Ubuntu recommended)
Playwright’s system dependencies must be installed as root inside the image. In this runner, the workflow steps run as the non-root docker user, so running npx playwright install --with-deps in a job will fail with a su/password prompt.
Recommended workflow usage:
npx playwright install chromium
If you need Playwright OS dependencies updated, rebuild the image (they are installed during the Docker build as root).
-
Create a GitHub registration token in Settings → Actions → Runners → New self-hosted runner
-
Copy
.env.exampleto.envand add:REPO_URL=https://github.com/<user>/<repo> RUNNER_TOKEN=<your_github_token> -
Start the runner:
docker compose up -d -
Your runner will appear automatically under Actions → Runners → Self-hosted
You can scale multiple runners easily:
docker compose up -d --scale runner=3