Phase 7: Gitea + Woodpecker CI (GitOps for Homelab)
Status: ✅ COMPLETED
Deployed: 2026-01-18
Deployed Components
| Service |
Container |
Version |
Port |
URL |
Status |
| Gitea |
gitea |
1.25.3 |
3005→3000, 2222→22 |
https://git.xtrm-lab.org |
✅ Running |
| Woodpecker Server |
woodpecker-server |
3.13.0 |
8008→8000 |
https://ci.xtrm-lab.org |
✅ Running |
| Woodpecker Agent |
woodpecker-agent |
3.13.0 |
- |
- |
✅ Running |
Configuration
Gitea
| Parameter |
Value |
| Admin User |
jazzymc |
| Database |
PostgreSQL (gitea_db @ 172.18.0.13) |
| DB User |
gitea |
| SSH Port |
2222 |
| Data Path |
/mnt/user/appdata/gitea/data |
| Network |
dockerproxy |
Woodpecker CI
| Parameter |
Value |
| Version |
3.13.0 |
| Admin User |
jazzymc (via Gitea OAuth) |
| Server IP |
172.18.0.134 |
| gRPC Port |
9000 |
| HTTP Port |
8000 (mapped to 8008) |
| Max Workflows |
2 (parallel) |
| Data Path |
/mnt/user/appdata/woodpecker/server |
| Agent Secret |
564a5716400532874a8e02313a491b4f3864ce9b77a5122ce0eb14777749e740 |
Gitea OAuth App (for Woodpecker)
Network Configuration
All services on dockerproxy network:
| Service |
Internal IP |
DNS Name |
| Gitea |
Dynamic |
gitea |
| Woodpecker Server |
172.18.0.134 |
woodpecker-server |
| PostgreSQL |
172.18.0.13 |
postgresql17 |
Traefik Routes
| Domain |
Service |
Port |
| git.xtrm-lab.org |
gitea |
3000 |
| ci.xtrm-lab.org |
woodpecker-server |
8000 |
Verification Checklist
Usage
Git Operations
CI Pipeline (.woodpecker.yml)
Example: Node.js Pipeline
Example: Docker Build
Maintenance
Update Woodpecker
Backup
Important paths to backup:
- /mnt/user/appdata/gitea/data
- /mnt/user/appdata/woodpecker/server
- PostgreSQL database: gitea_db
Related Documents