--- services: woodpecker-server: image: woodpeckerci/woodpecker-server:v3.20.1 container_name: woodpecker-server restart: unless-stopped networks: - traefik-proxy - woodpecker-internal volumes: - woodpecker-server-data:/var/lib/woodpecker environment: WOODPECKER_OPEN: "false" WOODPECKER_GITEA: "true" WOODPECKER_GITEA_URL: ${WOODPECKER_GITEA_URL} WOODPECKER_GITEA_CLIENT: ${WOODPECKER_GITEA_CLIENT} WOODPECKER_GITEA_SECRET: ${WOODPECKER_GITEA_SECRET} WOODPECKER_HOST: ${WOODPECKER_HOST} WOODPECKER_AGENT_SECRET: ${WOODPECKER_AGENT_SECRET} WOODPECKER_ADMIN: ${WOODPECKER_ADMIN} WOODPECKER_LOG_LEVEL: info WOODPECKER_PLUGINS_PRIVILEGED: woodpeckerci/plugin-docker-buildx portainer_token: tSRUXEK7dz7Ep1nrNet3afGOQDDJCrMechVGgP0D labels: - "traefik.enable=true" - "traefik.docker.network=traefik-proxy" # Router - "traefik.http.routers.woodpecker.rule=Host(`pecker.smulders.online`)" - "traefik.http.routers.woodpecker.entrypoints=websecure" - "traefik.http.routers.woodpecker.tls=true" - "traefik.http.routers.woodpecker.tls.certresolver=letsencrypt" # Service - "traefik.http.services.woodpecker.loadbalancer.server.port=8000" woodpecker-agent: image: woodpeckerci/woodpecker-agent:v3.20.1 container_name: woodpecker-agent restart: unless-stopped depends_on: - woodpecker-server networks: - woodpecker-internal volumes: - /var/run/docker.sock:/var/run/docker.sock environment: WOODPECKER_SERVER: woodpecker-server:9000 WOODPECKER_AGENT_SECRET: ${WOODPECKER_AGENT_SECRET} WOODPECKER_MAX_WORKFLOWS: 4 WOODPECKER_LOG_LEVEL: info WOODPECKER_BACKEND: docker WOODPECKER_PLUGINS_PRIVILEGED: woodpeckerci/plugin-docker-buildx portainer_token: tSRUXEK7dz7Ep1nrNet3afGOQDDJCrMechVGgP0D networks: traefik-proxy: external: true woodpecker-internal: driver: bridge volumes: woodpecker-server-data: