Skip to main content

Fully Managed
Woodpecker CI
as a Service

Deploy Woodpecker CI as a fully managed service starting at €9/mo. Get automated backups, SSL, updates, support and monitoring included.

Woodpecker CI is an open-source, container-native CI/CD engine — the community fork of Drone that kept the Apache 2.0 license. It runs the build infrastructure at Codeberg, ships pipelines as plain YAML, and uses Docker agents that fan out across labelled hosts. No per-seat math. No per-build-minute meter.

Free 7-day trial  99.9% Uptime SLA  No credit card  Cancel anytime

Free 7-day trial  99.9% Uptime SLA
No credit card  Cancel anytime

Woodpecker CI

Woodpecker CI

STARTING AT

€9/month
Automated Backups
Monitoring
Automated Updates
Auto SSL

USAGE

Unlimited
Human Support
Custom Domains
Terminal Access
File Manager Access
Deploy in your region 21 locations worldwide
GermanyFinlandNetherlandsUKSwedenUnited StatesCanadaSingaporeJapanAustraliaBrazilSouth Africa+9 more →
Woodpecker CI Preview Image

ABOUT THE SOFTWARE

What is Woodpecker CI

Woodpecker CI is a lightweight, container-native CI/CD engine licensed Apache 2.0. It started in 2019 as a community fork of Drone CI and has become the canonical OSS continuous-integration choice for teams running Forgejo, Gitea, or anything they want to keep off a SaaS plan.

Woodpecker is built around three pieces: a server, one or more agents, and a forge connection. The server speaks to a Git forge — Gitea, Forgejo, GitHub, GitLab, or Bitbucket — over OAuth and webhooks; agents pick up workflows over gRPC and execute steps inside Docker containers, Kubernetes pods, or directly on the host. Pipelines are defined in plain YAML in a .woodpecker.yml file or in split files under .woodpecker/.

The project is community-driven, funded through Open Collective and GitHub Sponsors, with no corporate owner. Core development is spread across around ten active maintainers, several of whom also work on Forgejo and Codeberg's infrastructure. Server images on Docker Hub have crossed one million pulls; the repository carries roughly 7,000 GitHub stars and ships native binaries for amd64, arm, arm64, riscv64, darwin, and windows targets. Codeberg has used it as their hosted CI for thousands of FOSS projects since 2022.

FEATURES

What Woodpecker CI does

Woodpecker CI does one thing well — runs container-native CI/CD pipelines defined in YAML. Eight capabilities are worth knowing before you commit to it as your build engine.

YAML pipelines per repo

Drop a .woodpecker.yml (or split files in .woodpecker/) into your repo and the server picks it up on push. Each step is a container image and a script.

Container, Kubernetes, or local agents

Run agents on Docker hosts for isolation, on a Kubernetes cluster for autoscaling, or directly on a host where you need USB or GPU passthrough.

Independent workflows

Multiple workflow files in .woodpecker/ run independently. A broken Windows build doesn't block the Linux release.

Three-tier secret scoping

Secrets are scoped to a repository, an organisation, or globally. Forked PRs cannot read deploy credentials unless explicitly enabled.

Multiple forge backends

Native integration with Gitea, Forgejo, GitHub, GitLab, and Bitbucket. OAuth and webhooks handle authentication and trigger events; one server speaks to one primary forge.

Matrix builds

Fan a single workflow across language versions, platforms, or compiler toolchains. One pipeline file, one push, parallel execution across your agents.

Plugin ecosystem

Drone-compatible plugins plus Woodpecker-native plugins for Docker buildx, S3 uploads, Matrix notifications, and releases. Custom plugins are just Docker images.

OpenAPI and CLI

Every action available in the UI is also available through the REST API and the woodpecker-cli binary. Pipelines can be triggered, paused, or retried programmatically.

WHAT'S ALWAYS INCLUDED

Every app. Fully managed.
Nothing extra to pay for.

Every app you deploy includes the full managed service — security, backups, updates, and support from day one.

Automatic updates and patches

Apps run the latest stable version. Security patches applied silently, with rollback if needed.

Daily off-site backups

Multiple daily backups in redundant off-site locations. One-click restore if anything goes wrong.

24/7 uptime monitoring

Continuous monitoring with instant alerting. We respond before you notice.

SSL, firewall, DDoS protection

Auto-renewing SSL, hardened firewall rules, DDoS mitigation on every deployment.

Performance and scaling

We monitor resource usage continuously. When your app needs more headroom, we flag it and upgrade with your explicit approval.

Dedicated engineering support

Real engineers on chat. DNS, SMTP & migration help. All included in €9.

WHY MANAGED

Why teams pick managed Woodpecker CI

In December 2025, GitHub announced a new $0.002-per-minute charge on self-hosted GitHub Actions runners — postponed after backlash, but a reminder that even self-hosted CI on a SaaS platform stays exposed to vendor pricing decisions. Woodpecker CI moves the build plane off the SaaS bill entirely. Hosting it well is a separate job.

Running Woodpecker yourself looks straightforward. There's a server image, an agent image, and a few environment variables. The first pipeline is up in an evening. The trouble starts on day three, when the agents quietly stop picking up work. A stock setup behind any HTTP/2-aware reverse proxy — NGINX, HAProxy, Caddy — terminates Woodpecker's long-polling /proto.Woodpecker/Next route on its default keepalive, and the agent's gRPC JWT eventually expires without a clean re-handshake. The server logs nothing useful. The fix is documented (issue #4144 on the project's GitHub) but it involves coordinated changes to WOODPECKER_KEEPALIVE_MIN_TIME on the server, the agent's reconnect-retry settings, and the proxy's gRPC read/send timeouts — and any one of those wrong puts you back where you started.

There's also the database choice. The default SQLite backend produces database is locked errors under concurrent CI load, and the default log storage writes verbose pipelines directly into the database, where a 50,000-line build can take five minutes to render. The docs flag both, but the templates ship with the wrong defaults.

REVIEWS

Hear from customers ​like you​​​​​​​

Successful businesses and professionals around the world rely on DANIAN every day

USE CASES

Three teams who run Woodpecker CI on DANIAN

These are representative team types we set up most often. Each starts with the same flat €9 plan.

4-MAINTAINER FOSS LIBRARY

Replacing GitHub Actions after the December 2025 self-hosted runner pricing announcement

Germany region for proximity to Codeberg. Forgejo OAuth app handles authentication. Two Docker agents with WOODPECKER_MAX_WORKFLOWS="2" on each — four parallel jobs total. Plugins: docker-buildx for multi-arch container images, plugin-matrix for chat notifications. Container registry hosted on Codeberg.

8-PERSON INDIE GAME STUDIO

Migrating off CircleCI's credit-based pricing after a 70 GB monthly build artifact bill

US region for proximity to publisher endpoints. Self-hosted Gitea as the forge. Three labelled agents: one amd64, one arm64 for ARM ports, one with the macOS toolchain pinned. Matrix builds across engine versions. Plugins: docker-buildx, plugin-s3 for distributable uploads, Discord webhook on release tags.

5-ENGINEER FIRMWARE CONSULTANCY

Per-client CI isolation without paying per-seat to anyone

Singapore region for an APAC client base. Self-hosted Forgejo with one organisation per client; Woodpecker's per-org secret scopes keep client A's deploy keys out of client B's pipelines. Four agents — three Docker, one local-backend agent with a USB-attached JTAG probe for hardware-in-the-loop tests on STM32 boards.

COMPARISON

Four ways to run Woodpecker CI

Most teams arrive at Woodpecker CI from one of three other paths: a per-seat SaaS CI like CircleCI, a self-managed VPS, or a home server. The math at one developer is close; at ten developers, the gap is roughly 13×.

 PATH1 DEVELOPER5 DEVELOPERS 10 DEVELOPERSWHAT YOU PAY FOR
CircleCI Performance
$15/mo$27/mo$132/moPer-user fees beyond 5 included seats, build-minute credits, vendor-controlled pricing
Self-host on a VPS
~$44/mo + ops time~$44/mo + ops time~$44/mo + ops time$24 production-class VPS + $5 backup + $15 monitoring + 5–10 hrs/mo of your own time at €60–120/hr
Home server
~€210/mo effective~€210/mo effective~€210/mo effectiveHP ProLiant ML30 Gen10 amortised + electricity + business internet + off-site backup + ops time
DANIAN Managed Woodpecker CI€9/mo€9/mo€9/moServer, agents, backups, monitoring, support — flat rate, unlimited committers and build minutes within the server's capacity

The SaaS path scales linearly with team size and build minutes. The VPS and home-server paths shift the cost from money to time — at €60–120 per hour for production-class sysadmin work, the operational hours are usually the larger half of the bill. DANIAN's flat fee covers an unlimited number of committers and build minutes; the underlying constraint is the production-class server underneath, not headcount.

BY INDUSTRY

Woodpecker CI for specific industries

Woodpecker CI shows up in four kinds of teams more than any other. The configuration choices that actually differ between them — isolation model, labelled agents, runtime backends — are worth surfacing one industry at a time.

Multi-client work creates one constant problem: client A's deploy keys cannot leak into client B's pipeline. Woodpecker's three-tier secret scoping — repository, organisation, global — maps naturally to one organisation per client, and the OAuth app per forge keeps user permissions auditable.

On DANIAN, agency instances are provisioned with WOODPECKER_OPEN="false" and admin-allowlisted users via WOODPECKER_ORGS; onboarding a new client is a fresh org with its own secret set and its own agent labels. A typical workflow runs CI for client A's React frontend, deploys to client A's registry using credentials scoped to client A's org, and the next pipeline for client B never sees them. Each Woodpecker server idles at around 100 MB of RAM and each agent at 30 MB — a single €9 instance comfortably handles eight to ten client orgs before resource pressure shows up.
Game and tooling teams need three things from CI that mainstream SaaS handles poorly: reproducible multi-platform binary builds, cheap parallelism across compiler and engine versions, and isolation between heavy native-toolchain steps and lighter scripting work. Woodpecker's labelled-agent model is the right shape — tag one agent platform=linux/amd64, another platform=linux/arm64, a third gpu=nvidia if you need it, and pipelines route to the agent that matches.

On DANIAN, studio instances typically run a matrix block fanning across engine versions and target platforms, with each step running in a pre-baked Docker image of the toolchain. The official Woodpecker agent ships native binaries for seven targets — amd64, arm, arm64, riscv64, darwin amd64 and arm64, and windows amd64 — which means cross-platform CI without QEMU emulation overhead on the agents that natively support the architecture.
Firmware teams want CI that handles cross-compilation, signed artifacts, and the occasional hardware-in-the-loop test where a USB or JTAG device has to be present on the build host. Woodpecker is unusual in supporting a local backend agent alongside Docker and Kubernetes — meaning the rare step that genuinely needs direct hardware access runs on a designated host, while the rest of the pipeline stays inside containers.

On DANIAN, firmware-team instances typically split workflows into independent files: .woodpecker/build-stm32.yaml, .woodpecker/build-esp32.yaml, .woodpecker/build-riscv.yaml. A broken RISC-V toolchain doesn't block the STM32 release. Native linux/riscv64 agent binaries shipped in v3.x mean RISC-V cross-compilation hosts can run their own builds without emulation. Plugins handle signed firmware artifact uploads; per-org secrets keep client signing keys partitioned. A multi-architecture firmware shop typically runs across three to four labelled agents and one local-backend agent on the bench.
The single biggest reason open-source maintainers choose Woodpecker is the absence of per-seat pricing and per-build-minute metering. Codeberg has served the FOSS community with hosted Woodpecker since 2022 on the same model: every contributor gets CI, no one gets charged per push.

On DANIAN, maintainer instances ship with the v3.x default of requiring admin approval for fork PRs only (require-approval: forks), so trusted maintainer commits run automatically and external contributor PRs queue for a one-click review. Forked PRs cannot read deploy secrets unless the maintainer explicitly enables it — the project's own secret scoping handles that. The result is a contributor-friendly CI surface with no surprises about who can read what, hosted in the region the project's contributors are closest to, on a build engine the project's maintainers can read the source for.

FAQ

Frequently asked questions

Everything teams ask before signing up — answered straight, without sales speak.

Three groups: technical setup, migration, and how DANIAN works as a service.

01

Technical and configuration

We run into this on day one of every Woodpecker stand-up: the agent's gRPC JWT eventually expires and a stock proxy doesn't keep the long-polling connection alive long enough for a clean re-handshake. On DANIAN instances we pre-tune WOODPECKER_KEEPALIVE_MIN_TIME server-side, set the agent reconnect-retry timeout to a finite window, and configure the fronting proxy with grpc_read_timeout and grpc_send_timeout of an hour. The underlying issue is the project's GitHub #4144.
Mostly yes. Woodpecker still picks up .drone.yml when there's no .woodpecker/ directory, and most steps run unchanged. You rename pipeline: to steps:, swap DRONE_* envs for CI_*, and replace plugins/docker with woodpeckerci/plugin-docker-buildx. Drone-era plugins generally work, occasionally needing small tweaks for the newer plugin filter security model.
The shared WOODPECKER_AGENT_SECRET cannot be rotated without restarting every agent. We recommend registering the agents through the per-agent token model — Settings → Agents → Add agent — so each agent has its own token and rotation happens one agent at a time without downtime.
Yes. A top-level matrix: block defines axes (PYTHON_VERSION: ["3.10","3.11","3.12"], OS: [linux, macos]) and Woodpecker spawns one workflow per combination. Each runs on any available agent matching the workflow's label filter. We size agent count × WOODPECKER_MAX_WORKFLOWS to at least the matrix size so combinations run in parallel rather than serially.
One server speaks to one primary forge at a time. A single Woodpecker instance can have multiple forges configured, which helps during migration windows, but most production setups pick one — Forgejo or Gitea for self-hosted, GitHub or GitLab for hosted. Cross-forge user-name collisions create edge cases (project issue #5798), so primary-forge selection is part of the onboarding conversation.
Most Drone plugins run on Woodpecker with minor tweaks. The plugin index lists Drone-compatible plugins alongside Woodpecker-native ones. The main differences are the secret reference syntax (current Woodpecker uses from_secret: inside environment: blocks rather than a bare secrets: array), the plugin filter security model, and automatic mapping of DRONE_* envs for compatibility.
We set Docker resource limits per agent (CPU and memory caps), WOODPECKER_MAX_WORKFLOWS to bound concurrency, and per-step and per-workflow timeouts in the pipeline YAML. Woodpecker doesn't have a built-in per-user CI-minutes cap — that's the project's open discussion #2303 — so DANIAN-managed instances rely on agent-side resource caps and reasonable timeouts to bound the blast radius.

02

Migration and onboarding

We can activate your app on your own custom domain/subdomain. Examples: mydomain.com, anyword.mydomain.com.
Or, on our randomized free subdomain. Example: 963.apps.danian.cloud
If you wish to use a custom domain/subdomain, select that option when ordering your app (or notify us later). We will send you the required DNS records and if needed, our tech team will modify them for you.
21 datacenter locations across six continents. You choose the region at provisioning. Application data sits in the region you choose; pick whichever is closest to your users or matches your data-residency preference.
Yes. Request a region migration from the dashboard and we run the move in the background. The system emails you when the migration completes; total transfer time depends on data volume but typical instances finish in a few hours. There is no extra charge for a region change.
Yes. Full data export is available at any time, in a portable format you can bring to any infrastructure.

03

Billing, support, and platform

€9 covers everything we do for that app: hardware in the region you choose, daily off-site backups with one-click restore, automatic security patches and version upgrades, 24/7 monitoring, SSL and firewall, and engineering support on Email/LiveChat. There are no setup fees or hidden line items. For more info see our Pricing page.
If you decide to continue, we charge €9/app/month from day 8. If you don't, the trial ends and you can export your data. No card is required for the trial, and we never auto-charge you without explicit consent.
No. The €9/month is flat regardless of how many users log into your app. Add 5 users or 50; the price doesn't change.
24/7 Live chat and email support, both staffed by engineers who run the systems. We handle DNS configuration, SMTP setup, app integrations, performance tuning, troubleshooting, and migration help. Response time is typically under an hour. There is no tier system — every customer gets the same support.
Yes. Cancel from the dashboard. We don't charge a cancellation fee, we don't lock data, and we will export your data to you on request before deletion. data to you on request before deletion.
Every customer instance is backed up daily to a separate region from the primary. We test restores. You can request a restore at any backup point within the retention window — usually 7 days for daily backups.
Your application data sits in the region you choose at provisioning — 21 datacenter locations across six continents. Account-level data (billing, account email, support ticket history) is processed centrally. Application data region is picked by you, per app.
99.9% uptime SLA on every app, every tenant. Service credits are documented at danian.co/service-level-agreement. The status page is located at status.danian.co.
When your tenant approaches the resource ceiling — the base tier holds 1 vCPU/RAM, 30 GB storage — we notify you. Resource upgrades happen with your explicit consent; we will not upgrade your tenant or charge you without it.
We wait. We don't suspend the app or delete your data on the first failed charge. We email you, you fix the card on file, and we continue.
Invoices can be downloaded from the billing dashboard in PDF the day each charge succeeds. EU VAT is added where applicable and the VAT-reverse-charge regime applies for VAT-registered businesses with a valid number.
150+ open-source apps across automation, team chat, file sync, analytics, AI, password management, email marketing, dev tools, project management, smart home, CMS, and federated social. See the full catalog →
Yes. Every instance comes with a web-based terminal and a file manager in your DANIAN management dashboard. Useful for managing your data and customizations.
Resources scale with your usage. If your app needs more vCPU, RAM, or storage, we add it — and we ask first before any change to your plan. €9 is the floor; resource-heavy workloads may price higher, but you'll always know in advance.
Yes. We have both a Partner program and an Affiliate program available. Anybody can sign up.
No contract. No minimum commitment. Cancel anytime from the dashboard with one click. The 7-day free trial requires no credit card. After the trial converts to paid, you can still cancel at any month without notice or penalty.

DEPLOY IN YOUR REGION

21 datacenter locations on six continents

Pick the region closest to your users.

United States, Germany, Finland, Singapore, Australia, Brazil, Canada, Netherlands, UK, Spain, Italy, France, Sweden, Malaysia, India, Japan, Mexico, Poland, South Korea, Chile, South Africa and more coming soon

Global Reach Map

Try managed Woodpecker CI for 7 days

No card. Cancel from the dashboard.