home / platform / self-hosted-runners

Your own build machines, without the babysitting

A self-hosted GitHub Actions runner fleet managed with Ansible. Heavy C/C++ and embedded builds run on your hardware or cloud VMs, upgrades roll out on their own, and disks don’t fill up.

send-repo –free-15-min-review

Sound familiar?

The red lines are where most teams start. The green lines are where you end up.

ci/runners.md+5 −5
  • GitHub-hosted minutes for long C/C++ builds add up every month.
  • Heavy builds run on machines you already pay for.
  • Builds need tools, licences or network access hosted runners don’t have.
  • Build hosts are prepared by playbook with exactly what your builds need.
  • Runners were set up by hand, and one is three versions behind.
  • Register, rotate and upgrade the whole fleet with one command.
  • GitHub stops accepting old runners, and you find out when builds stop.
  • Rolling upgrades keep every runner inside GitHub’s 30-day rule.
  • Build hosts run out of disk because nothing is ever cleaned up.
  • Workspaces, containers and images are pruned every night.

What you get

Ansible playbooks for the whole fleet

Register, unregister and rotate runners with one command. Runner groups and labels set up so the right jobs land on the right machines.

ansiblerunner-groups

Rolling upgrades on a schedule

Upgrades run round-robin across runner groups. Each runner is checked for idle before it’s touched, and a failed upgrade blocks the rollout instead of taking out the fleet.

rolling-upgradeidle-check

Build-host preparation

Playbooks that install compilers, toolchains, Podman or Docker and anything else your builds need, so a new build host is ready in minutes and identical to the others.

podmandockertoolchains

Nightly cleanup

Old workspaces, containers and images removed every night, including Podman storage, so disks stay healthy.

cronpodman

Monitoring

Runner status and disk usage checked on a schedule, with alerts by email or Teams when something is off.

alertsteams

How it runs, in about 7 working days

  1. Day 1

    Audit call

    Your builds, current minutes spend, and where runners will live.

  2. Days 2–3

    Build hosts

    Host preparation playbooks and the first runner group.

  3. Days 4–5

    Fleet management

    Register and rotate playbooks, labels, rolling upgrades.

  4. Day 6

    Cleanup and monitoring

    Nightly cleanup and alerts.

  5. Day 7

    Handover

    Runbook, recorded walkthrough and 30 days of support.

Price

A starting price, then a fixed written quote after the call.

Fixed quote after the call

Self-hosted runner fleet with Ansible

Your own build machines, managed as code.

from ₹49,999 one-time

About 7 working days · quote based on hosts and runner groups

International clients: USD price quoted after the call

  • Build-host preparation playbooks
  • Register, rotate and upgrade playbooks
  • Rolling upgrades with idle checks
  • Nightly cleanup and alerts
  • Runbook, walkthrough, 30 days of support
Book a free call

Not included

  • The servers or cloud VMs themselves.
  • Build-tool licences, paid by you.

Self-hosted runner questions

Will this actually save money?
For long builds, usually yes. Bring last month’s Actions usage to the call and we’ll work out the numbers together before you commit.
Can the runners live on our office servers?
Yes, or on cloud VMs, or both. Our senior systems administrator can also help set up the lab network and servers if you’re starting from scratch.
Windows or macOS runners?
Linux is the main focus. Windows runners can be added; ask on the call.
Is it safe to run self-hosted runners on public repos?
Not usually. I’ll recommend keeping self-hosted runners for private repos and explain why.

Paying too much for build minutes?

Book a free call and bring your last Actions bill.