Self-Hosted CI/CD with Woodpecker for a Developer Portfolio

GitHub Actions has become the ubiquitous default for CI/CD pipelines in modern open-source and commercial development. Yet relying exclusively on proprietary hosted runners can lead to complacency: developers treat CI as a black box, remaining oblivious to runner architecture, agent orchestration, and resource constraints.

For this portfolio and my broader self-hosted infrastructure, I chose to host my own continuous integration engine: Woodpecker CI. Running on a budget virtual private server (VPS) alongside Forgejo, Woodpecker delivers an enterprise-grade pipeline that handles linting, testing, security scanning, and production SFTP deployments with complete data sovereignty.

When evaluating self-hosted CI/CD options, legacy systems like Jenkins require Java runtimes and consume significant memory, making them impractical for lightweight VPS environments. GitLab CI is powerful but bundled into an enormous monolithic application requiring at least 4GB of dedicated RAM.

← Rafael González Albes