Git and CI, checked 2026-09-07

Woodpecker: Docker configuration reference

Self-hosted CI/CD engine that runs pipelines defined in YAML, split into a server and one or more agents.

At a glance

Ports

Ports
PortWhat listensSource
8000HTTP listener for the web UI and API. Point the reverse proxy here.source for port 8000
9000gRPC listener agents connect to. Needs its own route through the reverse proxy (an h2c/HTTP2 upstream), separate from the web UI port.source for port 9000

Environment variables

Environment variables
VariableRequiredWhat it doesExampleSource
WOODPECKER_HOSTYesThe server's own public address in <scheme>://<hostname> form, no trailing slash. Woodpecker needs to know this to build correct links and OAuth callbacks.https://ci.example.comsource for WOODPECKER_HOST
WOODPECKER_AGENT_SECRETYesShared secret the server and every agent use to authenticate the gRPC connection between them.openssl rand -hex 32source for WOODPECKER_AGENT_SECRET
WOODPECKER_OPENNoOpens registration to anyone who can authenticate through the configured forge. Closed by default; pair with WOODPECKER_ADMIN to name specific admins.truesource for WOODPECKER_OPEN
WOODPECKER_GRPC_SECURENoEnables TLS on the gRPC connection. Recommended whenever an agent reaches the server over the internet rather than a private network.truesource for WOODPECKER_GRPC_SECURE
WOODPECKER_SERVERYesAddress of the server's gRPC port that the agent connects to. Set on the agent, not the server.woodpecker-server:9000source for WOODPECKER_SERVER

Volumes that must persist

Volumes
PathWhat is in itSource
/var/lib/woodpecker/Bundled SQLite database holding users, repositories and pipeline metadata. Woodpecker itself does not back this up.source for /var/lib/woodpecker/
/var/run/docker.sock (woodpecker-agent)Mounted into the agent so it can run pipeline steps as Docker containers using the local backend.source for /var/run/docker.sock

Behind a reverse proxy

What it needs alongside it

Dependencies
DependencyWhySource
SQLite (default), MySQL/MariaDB or PostgreSQLSQLite needs no extra container. Woodpecker does not create the database itself for MySQL/PostgreSQL, and performs no automatic backups for any engine.source for SQLite (default), MySQL/MariaDB or PostgreSQL

Release timeline

Releases
VersionDateBreakingWhat changedSource
v3.18.02026-08-24YesContains a migration that alters log storage; upstream recommends a backup and extra downtime before upgrading.source for release v3.18.0
v3.17.02026-07-31NoFeature release on the 3.x line.source for release v3.17.0
v3.16.02026-06-27NoFeature release on the 3.x line.source for release v3.16.0
v3.15.02026-05-28NoFeature release on the 3.x line.source for release v3.15.0
v3.14.12026-05-12NoSecurity patch, crediting researchers who reported and fixed the issue.source for release v3.14.1

If it is not coming up

Read from the upstream documentation, repository and container registry by Keita Emsden on 2026-09-07. Every row links the page it came from. Upstream changes without telling anyone, so check the source link before you rely on a value.

Other app references

All app references