forked from Nixius/template
114 lines
4.3 KiB
Bash
Executable File
114 lines
4.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Debug script for Easy Appointments deployment issues
|
|
# Run this on macmini7 to gather diagnostic information
|
|
|
|
# Set colors for output
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${BLUE}===== Easy Appointments Deployment Debug =====${NC}"
|
|
echo "Running on $(hostname) at $(date)"
|
|
echo
|
|
|
|
# Create output directory
|
|
OUTDIR="debug-output-$(date +%Y%m%d-%H%M%S)"
|
|
mkdir -p $OUTDIR
|
|
echo -e "${YELLOW}Saving all output to ${OUTDIR}/${NC}"
|
|
echo
|
|
|
|
# Check Docker and Swarm status
|
|
echo -e "${GREEN}1. Checking Docker and Swarm status${NC}"
|
|
echo "Docker version:" > $OUTDIR/docker-info.txt
|
|
docker version >> $OUTDIR/docker-info.txt 2>&1
|
|
echo -e "\nDocker info:" >> $OUTDIR/docker-info.txt
|
|
docker info >> $OUTDIR/docker-info.txt 2>&1
|
|
echo -e "\nSwarm nodes:" >> $OUTDIR/docker-info.txt
|
|
docker node ls >> $OUTDIR/docker-info.txt 2>&1
|
|
echo "Done. See $OUTDIR/docker-info.txt"
|
|
echo
|
|
|
|
# Check services
|
|
echo -e "${GREEN}2. Checking services${NC}"
|
|
echo "Service list:" > $OUTDIR/services.txt
|
|
docker service ls >> $OUTDIR/services.txt 2>&1
|
|
echo -e "\neasy-appointments service details:" >> $OUTDIR/services.txt
|
|
docker service ps easy-appointments_easy-appointments --no-trunc >> $OUTDIR/services.txt 2>&1
|
|
echo -e "\nmariadb service details:" >> $OUTDIR/services.txt
|
|
docker service ps easy-appointments_mariadb --no-trunc >> $OUTDIR/services.txt 2>&1
|
|
echo "Done. See $OUTDIR/services.txt"
|
|
echo
|
|
|
|
# Collect logs
|
|
echo -e "${GREEN}3. Collecting service logs${NC}"
|
|
echo "Fetching easy-appointments logs..."
|
|
docker service logs easy-appointments_easy-appointments --tail 1000 > $OUTDIR/easy-appointments.log 2>&1
|
|
echo "Fetching mariadb logs..."
|
|
docker service logs easy-appointments_mariadb --tail 1000 > $OUTDIR/mariadb.log 2>&1
|
|
echo "Fetching traefik logs..."
|
|
docker service logs traefik --tail 200 > $OUTDIR/traefik.log 2>&1
|
|
echo "Done. See logs in $OUTDIR/"
|
|
echo
|
|
|
|
# Check volumes
|
|
echo -e "${GREEN}4. Checking volumes${NC}"
|
|
echo "Volume list:" > $OUTDIR/volumes.txt
|
|
docker volume ls >> $OUTDIR/volumes.txt 2>&1
|
|
echo -e "\nmariadb_data volume:" >> $OUTDIR/volumes.txt
|
|
docker volume inspect easy-appointments_mariadb_data >> $OUTDIR/volumes.txt 2>&1
|
|
echo "Done. See $OUTDIR/volumes.txt"
|
|
echo
|
|
|
|
# Check networks
|
|
echo -e "${GREEN}5. Checking networks${NC}"
|
|
echo "Network list:" > $OUTDIR/networks.txt
|
|
docker network ls >> $OUTDIR/networks.txt 2>&1
|
|
echo -e "\nTraefik network:" >> $OUTDIR/networks.txt
|
|
docker network inspect traefik >> $OUTDIR/networks.txt 2>&1
|
|
echo -e "\nDefault network:" >> $OUTDIR/networks.txt
|
|
docker network inspect easy-appointments_default >> $OUTDIR/networks.txt 2>&1
|
|
echo "Done. See $OUTDIR/networks.txt"
|
|
echo
|
|
|
|
# Check system resources
|
|
echo -e "${GREEN}6. Checking system resources${NC}"
|
|
echo "Disk usage:" > $OUTDIR/resources.txt
|
|
df -h >> $OUTDIR/resources.txt 2>&1
|
|
echo -e "\nMemory usage:" >> $OUTDIR/resources.txt
|
|
free -m >> $OUTDIR/resources.txt 2>&1
|
|
echo -e "\nCPU info:" >> $OUTDIR/resources.txt
|
|
top -bn1 | head -20 >> $OUTDIR/resources.txt 2>&1
|
|
echo "Done. See $OUTDIR/resources.txt"
|
|
echo
|
|
|
|
# Check DNS and connectivity
|
|
echo -e "${GREEN}7. Checking DNS and connectivity${NC}"
|
|
echo "cal.colinknapp.com DNS:" > $OUTDIR/connectivity.txt
|
|
nslookup cal.colinknapp.com >> $OUTDIR/connectivity.txt 2>&1
|
|
echo -e "\nstaging.cal.colinknapp.com DNS:" >> $OUTDIR/connectivity.txt
|
|
nslookup staging.cal.colinknapp.com >> $OUTDIR/connectivity.txt 2>&1
|
|
echo -e "\nHTTP check:" >> $OUTDIR/connectivity.txt
|
|
curl -I cal.colinknapp.com >> $OUTDIR/connectivity.txt 2>&1
|
|
echo "Done. See $OUTDIR/connectivity.txt"
|
|
echo
|
|
|
|
# Create a tar archive of all debug info
|
|
echo -e "${GREEN}8. Creating archive of all debug information${NC}"
|
|
tar -czf easy-appointments-debug.tar.gz $OUTDIR
|
|
echo "Archive created: easy-appointments-debug.tar.gz"
|
|
echo
|
|
|
|
echo -e "${BLUE}===== Debug information collection complete =====${NC}"
|
|
echo "All debug information has been saved to $OUTDIR/"
|
|
echo "A compressed archive is available at: easy-appointments-debug.tar.gz"
|
|
echo
|
|
echo -e "${YELLOW}To analyze the results:${NC}"
|
|
echo "1. Check service status in $OUTDIR/services.txt"
|
|
echo "2. Review logs in $OUTDIR/easy-appointments.log and $OUTDIR/mariadb.log"
|
|
echo "3. Look for any networking issues in $OUTDIR/networks.txt"
|
|
echo "4. Check system resources in $OUTDIR/resources.txt"
|
|
echo
|
|
echo -e "${YELLOW}To transfer the archive:${NC}"
|
|
echo "scp $(whoami)@$(hostname):$(pwd)/easy-appointments-debug.tar.gz /your/local/directory" |