GitHub Actions self-hosted runner install script
Enter your repository and labels to get a script that installs the runner under its own user and starts it as a service. You enter the token on your server, not here.
Runs entirely in your browser — nothing you enter is sent to our servers.
Private repositories only. In a public one, a pull request from a fork can run code on your server.
How to run it
- On GitHub open Settings → Actions → Runners → New self-hosted runner and copy the token.
- Copy the script to your Debian or Ubuntu server and run it as root: bash install-runner.sh.
- Paste the token when the script asks. It stays on your server and never passes through this page.
- Put the runs-on line into your workflow.
Need a server for the runner? Small plan: 4 vCPU, 4 GB RAM, root access, $8/month.
Small planHow it works
A self-hosted runner works on your own machine: it connects to GitHub, picks up jobs and runs them there. The script installs the required packages, creates a separate Linux user, downloads the latest runner release, registers it and sets up a systemd service that survives reboots. The script is built in your browser, so read every line before you run it. The server only needs outbound access to GitHub, no dedicated IP required.
FAQ
Where do I get the registration token?
In your repository open Settings → Actions → Runners → New self-hosted runner. The token is valid for one hour. For an organization-wide runner, use the same path in the organization settings.
Can I use a self-hosted runner with a public repository?
GitHub advises against it: a pull request from a fork can run code on your server. Use self-hosted runners with private repositories.
Does the server need a dedicated IP?
No. The runner only makes outbound connections to GitHub, so a plan without a dedicated IP works. As for power, 4 vCPU and 4 GB of RAM are enough for most projects.