Self-Hosted GitLab Runner Hosting on Dedicated NVMe
Run your own self-hosted GitLab Runner on a bare-metal / dedicated server with local NVMe in Frankfurt — for fast, reproducible CI builds with no noisy neighbours. Full control over executor, caching and runtime, dedicated to you alone, GDPR-compliant, from €149/month.
Request a dedicated serverShared CI minutes are convenient, but they carry two downsides: they're shared with other projects (noisy neighbours, fluctuating build times) and they add up fast to large bills under heavy pipeline use. Your own GitLab Runner on dedicated hardware flips that: consistent performance, predictable cost and data that never leaves your infrastructure.
Why local NVMe speeds up builds
CI builds are extremely I/O-heavy: installing dependencies, writing container layers, packing artifacts, reading caches. On shared network storage that becomes the bottleneck. Local NVMe delivers high IOPS right at the host — npm/yarn installs, Docker layer caching and test suites run noticeably faster. For large monorepos or container builds it's the single biggest lever.
Dedicated, not shared — no noisy neighbours
On a dedicated server the entire CPU is yours. No side job grabbing cores mid-build, no build times swinging with platform load. The Bthorio Dedicated (AMD Ryzen 9 3950X, 16 cores / 32 threads, 128 GB DDR4, 4 TB NVMe) handles several parallel runner jobs without them throttling each other.
| Feature | Bthorio Dedicated | Bthorio Cloud (Performance/Pro) | Shared CI minutes |
|---|---|---|---|
| CPU allocation | Fully dedicated (bare metal) | Fixed vCPUs, no overbooking | Shared |
| Storage | 4 TB local NVMe | Local NVMe | Varies / network |
| Build times | Consistent | Consistent | Fluctuating |
| Cost model | €149/month fixed | From €39.90/month fixed | Per minute |
| Docker layer cache | Persistent on NVMe | Persistent on NVMe | Often ephemeral |
| Data location | Frankfurt, GDPR | Frankfurt, GDPR | Varies |
| Root/executor choice | Full (shell/Docker/K8s) | Full | Limited |
Cloud server or dedicated server?
For single projects or moderate pipeline load, a cloud server on the Performance (€39.90) or Pro (€89.90) plan with fixed vCPUs and local NVMe is often enough. When you run many parallel jobs, heavy container builds or a large monorepo, the dedicated server gives you the full, unshared CPU. The difference in detail: dedicated server vs. cloud vServer .
- Docker executor: cleanly isolated builds, persistent layer cache on NVMe
- Shell executor: maximum speed for trusted pipelines
- Kubernetes executor: multiple runner pods for parallel jobs
- Your own cache and artifact strategies without third-party minute limits
Register and maintain the runner
Setup is quick: install the GitLab Runner package, register the runner with your project or group via a registration token, pick an executor (Docker, shell or Kubernetes) and assign tags. From then on your pipelines automatically use the dedicated hardware. For stable builds it pays to tune cache volumes, concurrency settings and regular cleanup of old Docker layers. Because everything sits on local NVMe , even large caches aren't a bottleneck — and the full CPU is available to your jobs at all times.