networks: woodpecker: external: false volumes: server: driver: local db: driver: local services: server: image: woodpeckerci/woodpecker-server:v2.7.1 container_name: woodpecker_server environment: - WOODPECKER_OPEN=false - WOODPECKER_ORGS=enpls - WOODPECKER_ADMIN=mael - WOODPECKER_HOST=https://build.net.enpls.org - WOODPECKER_SERVER_ADDR=:8083 - WOODPECKER_GRPC_ADDR=:8084 - WOODPECKER_GRPC_SECURE=true - WOODPECKER_GRPC_VERIFY=true - WOODPECKER_GITEA=true - WOODPECKER_GITEA_URL=https://git.gnous.eu - WOODPECKER_DATABASE_DRIVER=postgres env_file: - .env restart: always networks: - woodpecker volumes: - server:/var/lib/woodpecker/ ports: - "8083:8083" - "8084:8084" labels: - "traefik.enable=true" # web server - "traefik.http.services.woodpecker-service.loadbalancer.server.port=8083" - "traefik.http.routers.woodpecker.rule=Host(`build.net.enpls.org`)" - "traefik.http.routers.woodpecker.tls=true" - "traefik.http.routers.woodpecker.tls.certresolver=defaultacme" - "traefik.http.routers.woodpecker.entrypoints=websecure" - "traefik.http.routers.woodpecker.service=woodpecker-service" - "traefik.http.routers.woodpecker.middlewares=proxyHeader@file,proxyError@file" # gRPC service - "traefik.http.services.woodpecker-grpc.loadbalancer.server.port=8084" - "traefik.http.services.woodpecker-grpc.loadbalancer.server.scheme=h2c" - "traefik.http.routers.woodpecker-grpc-secure.rule=Host(`grpc.build.net.enpls.org`)" - "traefik.http.routers.woodpecker-grpc-secure.tls=true" - "traefik.http.routers.woodpecker-grpc-secure.tls.certresolver=defaultacme" - "traefik.http.routers.woodpecker-grpc-secure.entrypoints=websecure" - "traefik.http.routers.woodpecker-grpc-secure.service=woodpecker-grpc" - "traefik.http.routers.woodpecker-grpc.middlewares=woodpecker-grpc-redirect@docker" - "traefik.http.routers.gnousdoteu.middlewares=proxyHeader@file,proxyError@file" depends_on: - db db: image: postgres:17-alpine restart: always env_file: - .env networks: - woodpecker volumes: - db:/var/lib/postgresql/data