ðŸŠķ Setup Woodpecker CI — Self-Hosted CI/CD Pipeline

Deploy Woodpecker CI on Ubuntu with Docker — a simple, powerful continuous integration and delivery engine with YAML-based pipeline definitions and Docker-native step execution. Integrates natively with Gitea, GitHub, and GitLab.

⚠ïļ This script is provided for demo and testing purposes only. Not intended for production use.

ðŸ“Ķ Resources & Setup Scripts

Grab the automated bash script from GitHub to follow along with the video.

Automated install script — Woodpecker server + agent in one command.
View on GitHub

Quick Install:

wget https://raw.githubusercontent.com/mhmdali94/Docker/main/dev/woodpecker/woodpecker-ubuntu.sh
chmod +x woodpecker-ubuntu.sh
sudo bash woodpecker-ubuntu.sh

Tutorial Steps

1 Download & Run the Script

The script installs Docker, prompts for your Gitea server URL and OAuth credentials, and starts both the Woodpecker server and agent. An agent secret is auto-generated and displayed at the end.

wget https://raw.githubusercontent.com/mhmdali94/Docker/main/dev/woodpecker/woodpecker-ubuntu.sh
chmod +x woodpecker-ubuntu.sh
sudo bash woodpecker-ubuntu.sh

2 Login via OAuth

Open your browser and navigate to the Woodpecker dashboard. Click Login — you'll be redirected to your Gitea/GitHub/GitLab instance to authorize the OAuth app:

http://<your-server-ip>:8093

3 Activate a Repository

After login, your repositories are listed. Click the toggle next to a repo to activate it for CI/CD. Woodpecker will automatically configure a webhook in your Git provider to trigger pipelines on push events.

4 Create Your First Pipeline

Add a .woodpecker.yml file to the root of your repository. Each step runs inside a Docker container:

steps:
  - name: build
    image: node:20
    commands:
      - npm install
      - npm run build

  - name: test
    image: node:20
    commands:
      - npm test

Ports Used

PortPurpose
8093Woodpecker Web UI & API
9003Agent gRPC (internal)