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