Initial Woodpecker CI setup
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### 4. Verificatie
|
||||
|
||||
```bash
|
||||
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) en `woodpecker-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:
|
||||
|
||||
```yaml
|
||||
- "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:
|
||||
|
||||
```yaml
|
||||
steps:
|
||||
- name: build
|
||||
image: python:3.12-slim
|
||||
commands:
|
||||
- pip install -r requirements.txt
|
||||
- python -m pytest
|
||||
```
|
||||
Reference in New Issue
Block a user