services: caddy: image: caddy:latest container_name: caddy hostname: caddy restart: always cap_add: - NET_ADMIN ports: - 80:80 - 443:443 - 443:443/udp extra_hosts: - host.docker.internal:host-gateway volumes: - ./caddy/Caddyfile:/etc/caddy/Caddyfile - ./caddy/data:/data - ./caddy/certificates:/data/caddy/certificates - ./caddy/config:/config woodpecker-server: image: woodpeckerci/woodpecker-server:v3 container_name: server hostname: server restart: always env_file: - path: ./woodpecker/.default.env required: true - path: ./woodpecker/.env required: false volumes: - ./woodpecker/server/data:/var/lib/woodpecker:rw woodpecker-agent: image: woodpeckerci/woodpecker-agent:v3 container_name: agent hostname: agent command: agent restart: always env_file: - path: ./woodpecker/.default.env required: true - path: ./woodpecker/.env required: false depends_on: - woodpecker-server volumes: - ./woodpecker/agent/data:/etc/woodpecker:rw - /var/run/docker.sock:/var/run/docker.sock