Disclosure: this page contains affiliate links. If you buy through them we may earn a commission at no extra cost to you.
Builds want cores and RAM
Self-hosting CI/CD means running Jenkins, GitLab Runner, or GitHub Actions runners. Builds are CPU- and I/O-heavy, so a 4GB VPS with several cores handles most teams far better than a 1GB box.
What to prioritize
- 4GB+ RAM so parallel jobs don’t swap
- SSD storage for fast Docker layer caching
- Full root access to install Docker and runners
- A dedicated IPv4 so runners reach your repos reliably
Register a runner
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt install gitlab-runner
Give each runner a Docker executor and cap concurrent jobs to match your RAM. An unmanaged KVM VPS is the cheapest way to own your builds and avoid per-minute CI fees.
See RackNerd's current deals