Woodpecker on a 2GB VPS — Taming Memory Constraints
Running self-hosted CI/CD infrastructure is deeply rewarding, but it often collides with hardware reality. Commercial cloud runners provide 8GB to 16GB of dedicated RAM for every build. In contrast, self-hosting on an economical Virtual Private Server (VPS) frequently means operating within a strict 2GB RAM envelope shared among the operating system, Docker daemon, and application containers.
When a heavy TypeScript compiler, Vite bundler, and multiple concurrent Docker steps run simultaneously, a 2GB VPS will quickly exhaust its memory, triggering the Linux Out-Of-Memory (OOM) killer to terminate builds. Operating Woodpecker CI reliably under these constraints requires disciplined memory management.
In high-resource CI environments, running linting, unit tests, and security scans concurrently across multiple parallel containers speeds up pipeline execution. On a low-RAM VPS, however, parallel container execution is a guaranteed path to OOM crashes.