master
Woodpecker CI
Woodpecker CI met Gitea OAuth2, Traefik reverse proxy, en een lokale Docker-agent.
Eerste keer opstarten
1. Gitea OAuth2 applicatie aanmaken
Ga naar https://<jouw-gitea>/user/settings/applications en maak een nieuwe OAuth2 App:
- Application name: Woodpecker CI
- Redirect URI:
https://pecker.smulders.online/authorize
Noteer de Client ID en Client Secret.
2. .env aanmaken
cp .env.example .env
Vul in:
| Variabele | Waarde |
|---|---|
WOODPECKER_GITEA_CLIENT |
Client ID uit stap 1 |
WOODPECKER_GITEA_SECRET |
Client Secret uit stap 1 |
WOODPECKER_GITEA_URL |
URL van je Gitea instance |
WOODPECKER_AGENT_SECRET |
openssl rand -hex 32 |
WOODPECKER_HOST |
https://pecker.smulders.online |
WOODPECKER_ADMIN |
Je Gitea gebruikersnaam |
3. Starten
Via Portainer: importeer de stack en wijs de .env toe.
Of via CLI:
docker compose up -d
4. Verificatie
docker compose logs -f woodpecker-server
Woodpecker is bereikbaar op https://pecker.smulders.online.
Architectuur
Internet
└── Traefik (traefik-proxy network)
└── woodpecker-server :8000 (UI + API)
└── woodpecker-agent (woodpecker-internal network)
└── Docker socket (pipeline containers)
- Server zit op twee netwerken:
traefik-proxy(extern) enwoodpecker-internal(intern naar agent) - Agent zit alleen op
woodpecker-internal— niet direct bereikbaar van buiten - Agent communiceert met server via gRPC op poort
9000
Authentik toevoegen (later)
Voeg aan de server-labels toe:
- "traefik.http.routers.woodpecker.middlewares=authentik@docker"
En zorg dat de Authentik forward-auth middleware beschikbaar is in Traefik.
Pipeline voorbeeld
Maak .woodpecker.yml in een Gitea-repo:
steps:
- name: build
image: python:3.12-slim
commands:
- pip install -r requirements.txt
- python -m pytest
Description