From f99105e8b085cba6c67437e091640b7a40b96575 Mon Sep 17 00:00:00 2001 From: colin Date: Wed, 22 Nov 2023 03:15:42 +0000 Subject: [PATCH] Add stack.yml --- stack.yml | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 stack.yml diff --git a/stack.yml b/stack.yml new file mode 100644 index 0000000..8b30987 --- /dev/null +++ b/stack.yml @@ -0,0 +1,111 @@ +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: