diff --git a/diagnose_and_fix.sh b/diagnose_and_fix.sh new file mode 100755 index 0000000..067a751 --- /dev/null +++ b/diagnose_and_fix.sh @@ -0,0 +1,75 @@ +#!/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." diff --git a/relaunch.sh b/relaunch.sh new file mode 100755 index 0000000..e633bcd --- /dev/null +++ b/relaunch.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# Script to manually remove and relaunch Woodpecker stack + +echo "Removing existing Woodpecker stack..." +docker stack rm woodpecker + +echo "Waiting for stack to be fully removed..." +sleep 15 + +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 "Ensuring traefik network exists..." +docker network create --driver=overlay --attachable traefik || true + +echo "Deploying Woodpecker stack..." +cd /mnt/tank/persist/nixc.us/woodpecker/production +docker stack deploy -c stack.yml woodpecker + +echo "Waiting for services to start..." +sleep 15 + +echo "Checking service status..." +docker service ls | grep woodpecker + +echo "Checking server logs..." +docker service logs --tail 10 woodpecker_server || true + +echo "Checking database logs..." +docker service logs --tail 10 woodpecker_db || true + +echo "Done!"