woodpecker/diagnose_and_fix.sh

76 lines
2.1 KiB
Bash
Executable File

#!/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."