SELF-HOSTED GITHUB ACTIONS

Runners ready when jobs arrive.

One process on your host starts disposable Docker containers or macOS VMs for GitHub Actions, then removes them when the job is done.

0 → Nscale with demand
1 jobper fresh runner
1 binaryon the host

THE IDEA

Capacity follows the queue.

Keep your own host and workflow. Runscaler handles the runner lifecycle between them.

01 / LISTEN

Wait for real work

Long-poll the GitHub scale-set API and start runners in response to assigned jobs.

02 / RUN

Choose the right host

Use Docker containers on a Docker host or Tart virtual machines for macOS jobs.

03 / RECOVER

Leave a clean slate

Each runner handles one job. Runscaler removes it afterward and reconciles resources after a restart.

GET STARTED

Build a config that fits your host.

Choose the basics. Copy TOML, add credentials on your host, then let runner validate check the real environment.

No credentials entered here
01 Where will it run?
02 Connect to GitHub
03 Set capacity

Start with a number your host can comfortably run.

A Docker image with the GitHub Actions runner installed.

Mounts the host Docker socket. Jobs gain root-equivalent host access; never run public-fork PRs with this enabled. Security details.

04 Choose authentication

Check the required GitHub permissions before continuing.

YOUR CONFIG

config.toml

TOML

Enter a GitHub URL and scale-set name to preview your config.

Credentials stay on your host.

The copied file leaves token = "" empty. Add your PAT locally before validating.

FINISH ON YOUR HOST

Copy. Save. Validate. Run.

The website builds text; your runner checks the actual machine and GitHub access.

01

Install

Start Docker, then install the runner binary on Linux.

curl -fsSL https://raw.githubusercontent.com/ysya/runscaler/main/install.sh | sudo sh
02

Save and add credentials

Paste the TOML into the file, fill the PAT locally or place the App key file, then protect the config.

sudo install -d -m 0700 /etc/runner
sudoedit /etc/runner/config.toml
sudo chmod 0600 /etc/runner/config.toml
03

Install the service

The new system service checks Docker and GitHub access before starting.

sudo /usr/local/bin/runner service install --config-path /etc/runner/config.toml
sudo /usr/local/bin/runner status
Then target your scale set in a workflow
runs-on: my-runners