112 lines
3.2 KiB
YAML
112 lines
3.2 KiB
YAML
version: "3.9"
|
|
networks:
|
|
default:
|
|
external: false
|
|
traefik:
|
|
external: true
|
|
services:
|
|
woodpecker-server:
|
|
image: woodpeckerci/woodpecker-server:next-4198c447fb
|
|
environment:
|
|
- WOODPECKER_OPEN=true
|
|
- WOODPECKER_HOST=[REDACTED]
|
|
- WOODPECKER_BACKEND=docker
|
|
- WOODPECKER_BACKEND_DOCKER_NETWORK=default
|
|
- WOODPECKER_ADMIN=[REDACTED]
|
|
- WOODPECKER_REPO_OWNERS=[REDACTED]
|
|
- WOODPECKER_LOG_LEVEL=debug
|
|
- WOODPECKER_GITEA=true
|
|
- WOODPECKER_GITEA_URL=[REDACTED]
|
|
- WOODPECKER_GITEA_CLIENT=[REDACTED]
|
|
- WOODPECKER_GITEA_SECRET=[REDACTED]
|
|
- WOODPECKER_AGENT_SECRET=[REDACTED]
|
|
- WOODPECKER_DATABASE_DRIVER=mysql
|
|
- WOODPECKER_DATABASE_DATASOURCE=[REDACTED]
|
|
networks:
|
|
- traefik
|
|
- default
|
|
volumes:
|
|
- /mnt/tank/persist/nixc.us/woodpecker/production/data:/var/lib/woodpecker/
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
deploy:
|
|
replicas: 1
|
|
placement:
|
|
constraints:
|
|
- node.hostname == macmini1
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.woodpecker.tls=true"
|
|
- "traefik.http.services.woodpecker.loadbalancer.server.port=8000"
|
|
- "traefik.http.routers.woodpecker.rule=Host(`woodpecker.nixc.us`)"
|
|
- "traefik.http.routers.woodpecker.entrypoints=websecure"
|
|
- "traefik.http.routers.woodpecker.tls.certresolver=letsencryptresolver"
|
|
- "traefik.http.routers.woodpecker.service=woodpecker"
|
|
- "traefik.docker.network=traefik"
|
|
update_config:
|
|
order: stop-first
|
|
failure_action: rollback
|
|
delay: 5s
|
|
delay: 10s
|
|
parallelism: 1
|
|
restart_policy:
|
|
condition: on-failure
|
|
|
|
db:
|
|
image: mariadb:10.6
|
|
environment:
|
|
- MYSQL_DATABASE=woodpecker
|
|
- MYSQL_USER=woodpecker
|
|
- MYSQL_PASSWORD=woodpecker
|
|
- MYSQL_RANDOM_ROOT_PASSWORD=1
|
|
volumes:
|
|
- /mnt/tank/persist/nixc.us/woodpecker/production/db:/var/lib/mysql
|
|
networks:
|
|
- default
|
|
deploy:
|
|
replicas: 1
|
|
placement:
|
|
constraints:
|
|
- node.hostname == macmini1
|
|
labels:
|
|
- "traefik.enable=false"
|
|
update_config:
|
|
order: stop-first
|
|
failure_action: rollback
|
|
delay: 5s
|
|
delay: 10s
|
|
parallelism: 1
|
|
restart_policy:
|
|
condition: on-failure
|
|
|
|
woodpecker-agents:
|
|
image: woodpeckerci/woodpecker-agent:next-4198c447fb
|
|
networks:
|
|
- default
|
|
environment:
|
|
- WOODPECKER_SERVER=woodpecker-server:9000
|
|
- WOODPECKER_AGENT_SECRET=[REDACTED]
|
|
- WOODPECKER_DEBUG=TRUE
|
|
- WOODPECKER_LOG_LEVEL=debug
|
|
- WOODPECKER_BACKEND=docker
|
|
- WOODPECKER_MAX_WORKFLOWS=1
|
|
- WOODPECKER_DEBUG_PRETTY=true
|
|
- WOODPECKER_AGENT_CONFIG_FILE=/etc/woodpecker/agent-secret.conf
|
|
- "WOODPECKER_HOSTNAME={{ .Node.Hostname }}"
|
|
deploy:
|
|
mode: global
|
|
labels:
|
|
- "traefik.enable=false"
|
|
update_config:
|
|
order: start-first
|
|
failure_action: rollback
|
|
delay: 5s
|
|
delay: 10s
|
|
parallelism: 4
|
|
restart_policy:
|
|
condition: on-failure
|
|
volumes:
|
|
- agent-secret:/etc/woodpecker/
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
volumes:
|
|
agent-secret:
|