TiloBox
Back to directory
Woodpecker CI project preview

Woodpecker CI

A container-native continuous integration engine using repository pipelines, agents, and Forge integrations.

LicenseApache-2.0
GitHub stars7.7k
Last commit1 weeks ago
Tags7 topics
PipelinesSelf HostedOpen SourceDeveloper ToolsContainersCi CdDocker
Overview

Why consider Woodpecker CI?

Woodpecker CI is an open-source, community-driven continuous integration engine that executes declarative pipeline steps inside isolated containers. It connects with popular Git platforms like GitHub, GitLab, Gitea, and Forgejo to automate software testing, building, and deployment.

Guided learning

Learn Woodpecker CI by building

Practical setup notes, real use cases, and copy-ready examples in one focused guide.

4 min read 3 sections
In this guide3 sections

Automating CI/CD Pipelines with Woodpecker CI

According to the official project documentation, Woodpecker is a simple, yet powerful CI/CD engine with great extensibility. It is developed as an open-source automation platform designed to execute pipeline tasks inside isolated container environments. By building on top of container primitives, teams can ensure their continuous integration workflows run deterministically regardless of the underlying host machine. Woodpecker is distributed under the Apache License (Woodpecker is distributed under the Apache License Version 2.0, January 2004).

Architecture and Core Components

Woodpecker divides its workload across distinct architectural elements to provide scalability and operational resilience. As detailed in the administration architecture guide, the server provides the user interface, processes webhook requests to the underlying forge, serves the API and analyzes the pipeline configurations from the YAML files. This central control plane tracks repository settings, manages user permissions via OAuth integration, and coordinates execution queues.

Worker nodes handle the actual computation required to test and build software artifacts. According to the general administration manual, the agent executes the workflows via a specific backend (Docker, Kubernetes, local) and connects to the server via GRPC. This modular backend architecture allows teams to run build jobs across different compute pools, ranging from local developer machines to full Kubernetes clusters.

To accommodate fluctuating build volumes without maintaining idle computing resources, Woodpecker provides dynamic provisioning capabilities. As documented in the general administration overview, the autoscaler allows spinning up new VMs on a cloud provider of choice to process pending builds. When build queues clear, the autoscaler terminates unused virtual machines to optimize operational costs.

For persistent state storage, the application provides flexible database backend options. As noted in the administration documentation, Woodpecker uses a SQLite database by default, which requires no installation or configuration. For larger instances it is recommended to use it with a Postgres or MariaDB instance. This zero-configuration default allows teams to get started immediately, while enterprise deployments can leverage dedicated relational databases.

Defining Pipeline Workflows

Workflows in Woodpecker are configured through declarative YAML files stored directly within your source control repositories. According to the workflow syntax documentation, the Workflow section defines a list of steps to build, test and deploy your code. The steps are executed serially in the order in which they are defined. If any single step exits with an unexpected non-zero status code, pipeline execution halts unless explicit failure handling rules are specified.

Each step runs within its own containerized runtime environment rather than relying on tools pre-installed on the host. As explained in the workflow syntax guide, Woodpecker pulls the defined image and uses it as environment to execute the workflow step commands, for plugins and for service containers. The repository workspace is mounted automatically into each container, preserving built files and changes across sequential pipeline steps.

yaml
1steps:
2 - name: backend
3 image: golang
4 commands:
5 - go build
6 - go test
7 - name: frontend
8 image: node
9 commands:
10 - npm install
11 - npm run test
12 - npm run build

Developers can also control execution triggers directly from commit messages when minor changes do not require full automated testing. According to the workflow documentation, Woodpecker gives the ability to skip individual commits by adding [SKIP CI] or [CI SKIP] to the commit message. This prevents unnecessary resource consumption for documentation updates or trivial metadata adjustments.

Deploying with Docker Compose

The most standard self-hosted deployment pattern combines the server and agent services within a single compose file. As outlined in the Docker Compose installation documentation, it creates persistent volumes for the server and agent config directories. The bundled SQLite DB is stored in /var/lib/woodpecker and is the most important part to be persisted as it holds all users and repository information.

yaml
1services:
2 woodpecker-server:
3 image: woodpeckerci/woodpecker-server:v3
4 ports:
5 - 8000:8000
6 volumes:
7 - woodpecker-server-data:/var/lib/woodpecker/
8 environment:
9 - WOODPECKER_OPEN=true
10 - WOODPECKER_HOST=${WOODPECKER_HOST}
11 - WOODPECKER_GITHUB=true
12 - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT}
13 - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET}
14 - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
15
16 woodpecker-agent:
17 image: woodpeckerci/woodpecker-agent:v3
18 command: agent
19 restart: always
20 depends_on:
21 - woodpecker-server
22 volumes:
23 - woodpecker-agent-config:/etc/woodpecker
24 - /var/run/docker.sock:/var/run/docker.sock
25 environment:
26 - WOODPECKER_SERVER=woodpecker-server:9000
27 - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
28
29volumes:
30 woodpecker-server-data:
31 woodpecker-agent-config:

Once configured, the system provides an end-to-end continuous integration pipeline that runs entirely on self-managed infrastructure. You can track project updates, inspect releases, and contribute directly via the GitHub repository, while reviewing the latest official distribution tagged on the releases page.

Related tools

More options with a similar category or technology profile.

Woodpecker CI FAQs

Woodpecker CI is listed as a Devops Infrastructure tool on TiloBox. Review the overview, features, and official documentation on this page to decide whether it solves your specific workflow.

Start with the project's GitHub repository and official website for supported installation and deployment instructions. Test the setup with representative data or a small project before rolling it out more widely.

Woodpecker CI is listed under the Apache-2.0 license. Read the complete license text and the project's notices before using, modifying, or distributing the software.

Production readiness depends on your requirements. Review maintenance activity, security practices, documentation, backup and upgrade procedures, and compatibility with your stack; then validate it in a non-production environment.

Woodpecker CI is listed as an alternative to GitHub Actions. Compare the core workflow, deployment model, integrations, and licensing against your must-have requirements before switching.