-
Notifications
You must be signed in to change notification settings - Fork 0
WoodpeckerCI
title: Woodpecker CI radar_quadrant: Platforms radar_ring: Assess radar_position: inner created: 2026-05-26 last_updated: 2026-05-26 tags: [ci-cd, self-hosted, docker, gitea, github, homelab] source_url: https://woodpecker-ci.org/
An open-source, self-hostable CI/CD system forked from Drone CI after Drone went commercial. Pipelines run in Docker containers defined by YAML configuration. Actively maintained by an open-source community.
Woodpecker consists of a server (pipeline orchestration, UI, API) and one or more agents (pipeline execution). Each pipeline step runs in its own Docker container, providing isolation without additional configuration. The server and agent communicate over gRPC. The entire stack runs comfortably on a Raspberry Pi or small VPS.
Pipelines are defined in .woodpecker.yml at the repository root. Steps are containers with commands; dependencies between steps are declared explicitly. Supports parallel step execution, conditional branch/event filters, secrets injection, and service containers (databases, caches) for integration tests.
Woodpecker integrates natively with Gitea, Forgejo, GitHub, GitLab, and Bitbucket as source control providers. Webhooks trigger pipeline runs on push, pull request, tag, or manual dispatch.
Fills a gap in the self-hosted CI landscape: simpler and lighter than Jenkins, fully self-contained unlike GitHub Actions (no dependency on external runner infrastructure), and open-source unlike Drone. Complements Gitea for a fully self-hosted Git + CI stack, and the homelab Kubernetes and Terraform patterns already on the radar.
Placed in Platforms / Assess / inner. Docker-native execution model and active community post-Drone fork make it a credible self-hosted CI choice. Inner position reflects straightforward deployment path (Docker Compose, single server + agent) and direct applicability to any homelab or private Git hosting setup. Trial gate: one real pipeline running on a self-hosted Woodpecker instance triggered by a Gitea or GitHub webhook, with secrets injected and at least one service container used.