Woodpecker

Woodpecker is a simple, yet powerful CI/CD engine with great extensibility.

# file: `docker-compose.yml`

services:
  woodpecker-server:
    image: ${HONEYPI_IMAGE_REGISTRY_HOST:-docker.io}/woodpeckerci/woodpecker-server:${HONEYPI_WOODPECKER_VERSION:-latest}
    container_name: woodpecker-server
    restart: unless-stopped
    environment:
      - WOODPECKER_SERVER=${HONEYPI_WOODPECKER_SERVER}
      - WOODPECKER_ADMIN=${HONEYPI_WOODPECKER_ADMIN}
      - WOODPECKER_AGENT_SECRET=${HONEYPI_WOODPECKER_AGENT_SECRET}
      - WOODPECKER_OPEN=true
      - WOODPECKER_HOST=${HONEYPI_WOODPECKER_HOST_URL}
      - WOODPECKER_GITEA=${HONEYPI_WOODPECKER_GITEA:-true}
      - WOODPECKER_GITEA_URL=${HONEYPI_WOODPECKER_GITEA_URL}
      - WOODPECKER_GITEA_CLIENT=${HONEYPI_WOODPECKER_GITEA_CLIENT}
      - WOODPECKER_GITEA_SECRET=${HONEYPI_WOODPECKER_GITEA_SECRET}
      - WOODPECKER_GITEA_SKIP_VERIFY=true
      - WOODPECKER_HEALTHCHECK=false
    ports:
      - ${HONEYPI_WOODPECKER_PORT:-8000}:8000
    volumes:
      - ${HONEYPI_DATA}/woodpecker:/var/lib/woodpecker
    labels:
      - traefik.enable=${HONEYPI_WOODPECKER_TRAEFIK_ENABLE:-false}
      - traefik.http.routers.woodpecker.rule=Host(`${HONEYPI_WOODPECKER_HOST}`)
      - traefik.http.routers.woodpecker.entrypoints=websecure
      - traefik.http.routers.woodpecker.tls.certresolver=resolver
      - traefik.http.routers.woodpecker.service=woodpecker
      - traefik.http.services.woodpecker.loadbalancer.server.port=8000
  woodpecker-agent:
    image: ${HONEYPI_IMAGE_REGISTRY_HOST:-docker.io}/woodpeckerci/woodpecker-agent:${HONEYPI_WOODPECKER_VERSION:-latest}
    container_name: woodpecker-agent
    command: agent
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - WOODPECKER_SERVER=${HONEYPI_WOODPECKER_SERVER}
      - WOODPECKER_ADMIN=${HONEYPI_WOODPECKER_ADMIN}
      - WOODPECKER_AGENT_SECRET=${HONEYPI_WOODPECKER_AGENT_SECRET}
      - WOODPECKER_OPEN=true
      - WOODPECKER_HOST=${HONEYPI_WOODPECKER_HOST_URL}
      - WOODPECKER_GITEA=${HONEYPI_WOODPECKER_GITEA:-true}
      - WOODPECKER_GITEA_URL=${HONEYPI_WOODPECKER_GITEA_URL}
      - WOODPECKER_GITEA_CLIENT=${HONEYPI_WOODPECKER_GITEA_CLIENT}
      - WOODPECKER_GITEA_SECRET=${HONEYPI_WOODPECKER_GITEA_SECRET}
      - WOODPECKER_GITEA_SKIP_VERIFY=true
      - WOODPECKER_HEALTHCHECK=false