#!/bin/bash set +e # collect everything, don't bail echo '############ STEP 1: Locate project directory ############' cd /opt/wecom-it-desk 2>&1 echo "Current dir: $(pwd)" ls -la docker-compose.yml 2>&1 echo '' echo '############ STEP 2: Diagnose (READ-ONLY) ############' echo '--- All wecom_it_ containers ---' docker ps -a --format "table {{.Names}}\t{{.Status}}" | grep -E "wecom_it_|NAMES" echo '' echo '--- Disk space ---' df -h /opt 2>&1 echo '' echo '--- backend last 60 log lines ---' docker logs wecom_it_backend --tail 60 2>&1 echo '' echo '--- backend internal health check ---' docker exec wecom_it_backend curl -s -o - -w "\nHTTP_CODE: %{http_code}\n" --max-time 5 http://localhost:8000/health 2>&1 echo '' echo '############ STEP 3: Restart from correct directory ############' cd /opt/wecom-it-desk docker compose up -d 2>&1 echo '' echo 'Waiting 15s for services to stabilize...' sleep 15 echo '' echo '--- Containers after restart ---' docker ps -a --format "table {{.Names}}\t{{.Status}}" | grep -E "wecom_it_|NAMES" echo '' echo '############ STEP 4: End-to-end verification ############' echo '--- backend /health ---' curl -s -o - -w "\nHTTP_CODE: %{http_code}\n" --max-time 5 http://localhost:8000/health echo '' echo '--- nginx routes (expect 200/301/302) ---' for path in / /itagent/ /ith5/ /itadmin/; do code=$(curl -s -o /dev/null -w "%{http_code}" --max-time 5 "http://localhost${path}") echo " $path -> HTTP $code" done echo '' echo '############ DONE ############' echo 'Paste ALL output above back to Claude for diagnosis'