/ docker-compose.ci.yml
docker-compose.ci.yml
 1  services:
 2    woodpecker-server:
 3      image: woodpeckerci/woodpecker-server:v3.11.0
 4      container_name: woodpecker-server
 5      restart: unless-stopped
 6      ports:
 7        - "8080:8080"   # Web UI
 8        - "9000:9000"   # gRPC
 9      volumes:
10        - woodpecker-server-data:/var/lib/woodpecker/
11      environment:
12        # Server settings
13        - WOODPECKER_HOST=http://localhost:8080
14        - WOODPECKER_SERVER_ADDR=:8080
15        - WOODPECKER_GRPC_ADDR=:9000
16  
17        # Database (SQLite)
18        - WOODPECKER_DATABASE_DRIVER=sqlite3
19        - WOODPECKER_DATABASE_DATASOURCE=/var/lib/woodpecker/woodpecker.sqlite
20  
21        # Forgejo integration
22        - WOODPECKER_GITEA=true
23        - WOODPECKER_GITEA_URL=http://host.docker.internal:3000
24        - WOODPECKER_GITEA_CLIENT=${WOODPECKER_GITEA_CLIENT}
25        - WOODPECKER_GITEA_SECRET=${WOODPECKER_GITEA_SECRET}
26  
27        # Authentication (open mode for development)
28        - WOODPECKER_OPEN=false
29        - WOODPECKER_ADMIN=auxo-ci
30  
31        # Agent secret (change this for production!)
32        - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET:-replace-with-secure-secret}
33  
34        # Logging
35        - WOODPECKER_LOG_LEVEL=info
36  
37        # Limits
38        - WOODPECKER_MAX_WORKFLOWS=4
39  
40    woodpecker-agent-1:
41      image: woodpeckerci/woodpecker-agent:v3.11.0
42      container_name: woodpecker-agent-1
43      restart: unless-stopped
44      depends_on:
45        - woodpecker-server
46      volumes:
47        - /var/run/docker.sock:/var/run/docker.sock
48      environment:
49        - WOODPECKER_SERVER=woodpecker-server:9000
50        - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET:-replace-with-secure-secret}
51        - WOODPECKER_HOSTNAME=agent-1
52        - WOODPECKER_MAX_WORKFLOWS=2
53        - WOODPECKER_BACKEND=docker
54  
55    woodpecker-agent-2:
56      image: woodpeckerci/woodpecker-agent:v3.11.0
57      container_name: woodpecker-agent-2
58      restart: unless-stopped
59      depends_on:
60        - woodpecker-server
61      volumes:
62        - /var/run/docker.sock:/var/run/docker.sock
63      environment:
64        - WOODPECKER_SERVER=woodpecker-server:9000
65        - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET:-replace-with-secure-secret}
66        - WOODPECKER_HOSTNAME=agent-2
67        - WOODPECKER_MAX_WORKFLOWS=2
68        - WOODPECKER_BACKEND=docker
69  
70  volumes:
71    woodpecker-server-data: