Disclosure: we may earn a commission or referral reward from CloudCone, Contabo, DigitalOcean (account credit, not cash), Hostwinds, InterServer, RackNerd, VPSDime and Vultr if you sign up through our links. It does not change the price you pay. Every other provider pays us nothing. Prices in this guide are as of the date shown and may have changed; see the comparison pages for the latest checked prices.
Guides · FOR
Best hosting for a static-site build server / CI runner in 2026
Some prices quoted in this guide are out of date. It is being rebuilt on our price index; for current prices use the comparison pages, which show when each price was checked.
If you're building a static site (Hugo, Jekyll, Astro, Next.js SSG, Eleventy) or running self-hosted CI (GitHub Actions runner, GitLab Runner, Gitea Actions, Forgejo Actions, Drone), you need a small-to-medium VPS that can compile fast, has enough disk for temporary build artefacts, and won't blow up bandwidth from pulling images.
Prices as of 2026-09-22.
What a build server actually needs
- RAM: 4-8 GB. Next.js SSG can use 3+ GB for a large site. Docker-based CI eats RAM fast.
- vCPU: 4 for reasonable compile times. More helps in parallel test runs and multi-package monorepos.
- NVMe storage: 40-80 GB. Docker layers and node_modules eat GB fast; clean regularly.
- Bandwidth: 5-20 TB. Pulling base images, publishing artefacts. Underrated line item.
- Consistent CPU under sustained load. CI runs are exactly the workload where oversubscribed cheap plans hurt.
Recommended picks
Solo dev / small team CI
Hetzner CX32 at $7.60/mo — 4 vCPU, 8 GB RAM, 80 GB NVMe, 20 TB.
The single best answer for self-hosted CI in 2026. Enough resources for parallel builds. 20 TB covers weeks of Docker pulls. Actually consistent CPU.
CPU-heavy builds (Rust compilation, large TypeScript, mono-repos)
Hetzner CPX31 at $15.60/mo — 4 AMD vCPU, 8 GB RAM. AMD single-thread + higher memory bandwidth = 20-40% faster Rust builds.
Many parallel jobs, small team
Contabo Cloud VPS 6 at $10.62/mo — 6 vCPU, 12 GB RAM, 200 GB NVMe. Trade CPU consistency for more RAM and storage; good for parallelised test runs where individual jobs aren't CPU-saturated.
Enterprise / heavy load
Hetzner CCX / dedicated — no oversubscription. Real consistency matters when you're paying for builder hours.
Where "just use GitHub-hosted runners" is fine
- If your monthly usage is under the 2,000 free GitHub Actions minutes.
- If your builds are quick (< 5 minutes each) and few (< 100 per month).
- If you're not building large Docker images (GitHub-hosted runners eat significant transfer time pulling base images).
Once you exceed the free tier or start hitting the shared-runner queue times, self-hosted at $7.60/mo pays for itself in the first month.
Setup for a GitHub Actions self-hosted runner
```bash
On Hetzner CX32 with a fresh Ubuntu install:
adduser actions
usermod -aG docker actions
su - actions
mkdir actions-runner && cd actions-runner
curl -o actions-runner-linux-x64.tar.gz -L https://github.com/actions/runner/releases/download/vX.X.X/actions-runner-linux-x64-X.X.X.tar.gz
tar xzf actions-runner-linux-x64.tar.gz
./config.sh --url https://github.com/YOURORG/YOURREPO --token YOUR_TOKEN
./svc.sh install
./svc.sh start
```
The runner shows up in GitHub repo Settings → Actions → Runners.
Setup for a GitLab Runner
```bash
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | bash
apt install gitlab-runner
gitlab-runner register
Follow prompts: enter your GitLab URL, registration token, description, tags, executor (docker recommended)
```
Docker-in-Docker considerations
If your CI needs to build Docker images, run the runner with docker executor and give it access to /var/run/docker.sock. Simpler than DinD in most cases.
Disk cleanup cron
CI runners eat disk. Set a nightly cleanup:
```bash
0 3 * docker system prune -af --volumes
0 4 * find /home/actions/actions-runner/_work -mtime +7 -exec rm -rf {} +
```
Which one you should actually pick
- Solo dev, self-hosted CI → Hetzner CX32 at $7.60/mo.
- CPU-heavy compilation (Rust, C++, large TS) → Hetzner CPX31 at $15.60/mo.
- Many parallel jobs, cost-first → Contabo Cloud VPS 6 at $10.62/mo.
- Small team, want the flexibility of a cheap steady CI runner → Hetzner CX32.
- Enterprise scale → dedicated hardware, out of our category.
Related guides
- Best hosting for a Docker / self-hosted stack — CI is part of the wider self-hosted picture.
- Cheapest 4 vCPU / 8 GB VPS — the shape most CI runners need.
- vCPU vs CPU explained — why oversubscription matters for CI.
Prices as of 2026-09-22.