#!/bin/bash # Comprehensive script to diagnose and fix Woodpecker deployment issues echo "===== SYSTEM INFORMATION =====" hostname date docker info | grep "Server Version" docker info | grep "Node Address" echo "===== SWARM STATUS =====" docker node ls echo "===== NETWORK STATUS =====" docker network ls echo "===== DIRECTORY CHECK =====" echo "Checking if required directories exist..." ls -la /mnt/data/nixc.us/woodpecker/production/ || echo "Directory doesn't exist" echo "Creating required directories..." mkdir -p /mnt/data/nixc.us/woodpecker/production/db /mnt/data/nixc.us/woodpecker/production/data echo "Setting permissions..." chmod -R 777 /mnt/data/nixc.us/woodpecker/production echo "Verifying directories..." ls -la /mnt/data/nixc.us/woodpecker/production/ echo "===== CURRENT STACKS =====" docker stack ls echo "===== REMOVING EXISTING STACK =====" docker stack rm woodpecker || echo "No stack to remove" echo "Waiting for stack to be fully removed..." sleep 15 echo "===== CHECKING EXISTING SERVICES =====" docker service ls | grep woodpecker || echo "No woodpecker services found" echo "===== ENSURING TRAEFIK NETWORK =====" docker network create --driver=overlay --attachable traefik || echo "Network already exists" echo "===== DEPLOYING WOODPECKER STACK =====" cd /mnt/tank/persist/nixc.us/woodpecker/production echo "Current directory: $(pwd)" ls -la stack.yml || echo "stack.yml not found!" if [ -f stack.yml ]; then echo "Deploying from stack.yml..." docker stack deploy -c stack.yml woodpecker else echo "ERROR: stack.yml not found!" exit 1 fi echo "===== WAITING FOR SERVICES =====" echo "Waiting 30 seconds for services to start..." sleep 30 echo "===== SERVICE STATUS =====" docker service ls | grep woodpecker echo "===== CHECKING LOGS =====" echo "Database logs:" docker service logs --tail 20 woodpecker_db || echo "Could not get database logs" echo "Server logs:" docker service logs --tail 20 woodpecker_server || echo "Could not get server logs" echo "===== CHECKING VOLUMES =====" docker volume ls | grep woodpecker echo "===== DONE =====" echo "If services are not running, check the logs above for errors."