Cutter 16
- vCPU
- 6 × dedicated
- RAM
- 16 GB
- Storage
- 320 GB NVMe SSD
- Transfer
- 15 TB
- IPv4 / IPv6
- 1 / /64 routed
Solution
Self-hosted runners pay for themselves quickly: a Cutter 16 at $62 a month replaces several thousand hosted CI minutes and builds faster because the cache is local. Four to six dedicated cores and 16 GB handle most build matrices. Use NVMe — dependency installation and container layer extraction are almost entirely IO-bound.
| Resource | What you actually need |
|---|---|
| CPU | 4–8 dedicated cores; builds parallelise well |
| RAM | 16 GB for a typical matrix, 32 GB for large monorepos |
| Disk | 320 GB NVMe — caches, images and artefacts accumulate |
| Kernel | Nested virtualisation for container and VM-based jobs |
Location is usually the decision that matters most for this workload — either because latency dominates, or because jurisdiction does.
Six cores and 16 GB covers most projects.
GitHub Actions runner, gitlab-runner, or Woodpecker depending on your forge.
A fresh container per job stops one build poisoning the next.
Mount host directories for npm, cargo, pip and Docker layers.
Tags let you route heavy jobs here and leave light ones on hosted runners.
Almost always past a few thousand minutes a month. A $62 instance runs continuously; hosted CI bills by the minute and re-downloads dependencies on every cold start.
Yes. Nested virtualisation and full root mean buildx, Docker-in-Docker and rootless builds all work.
Only with ephemeral, isolated runners. A public repository can execute arbitrary code from a pull request, so never give such a runner access to secrets or your internal network.