C.W.K.
Stream
Lesson 01 of 13 · published

Why Self-Hosted Runners

~10 min · self-hosted, decisions, tradeoffs

Level 0Apprentice
0 XP0/101 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

Honest reasons to bring your own runner

  1. Cost. If your bill is dominated by macOS or large-runner minutes, self-hosting on a Mac mini or homelab box pays back in a quarter.
  2. Hardware. Apple Silicon for MLX. NVIDIA H100 for training. ARM for cross-arch tests. None of these are standard hosted runners.
  3. Network access. Tests need to talk to a service inside your private network — a database, a Vault instance, an internal API. Hosted runners can't reach those.
  4. Persistent caches. Build caches that survive between runs at the filesystem level — Docker layer cache, pip cache, conda envs.
  5. Reproducibility on a known image. Your team's exact OS / package set, not a moving target.

Honest reasons NOT to

  1. You're a small team. Maintaining 1–3 self-hosted runners is fine; maintaining 30+ becomes its own job.
  2. Security overhead. Self-hosted runners run untrusted code (your contributors' PRs). Default isolation is weak — you have to add it.
  3. You don't actually have any of the listed reasons. 'Cool to have' isn't a reason.

The decision matrix

If even one of the five honest reasons applies, self-host. Otherwise, hosted runners are almost always cheaper than the engineering time of running your own.

Code

Targeting a self-hosted runner·yaml
  build-on-apple-silicon:
    runs-on: [self-hosted, macos, apple-silicon]

  train-on-h100:
    runs-on: [self-hosted, gpu-h100, linux-x64]

  internal-integration:
    runs-on: [self-hosted, internal-network]

External links

Exercise

If you don't have any self-hosted reason yet, list your top 3 CI cost / capability pain points. If none of the 5 honest reasons surface, accept hosted is fine. If one does, you have your roadmap.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.