#!/bin/bash APP=/home/erpsolution26/public_html/spincraft.erpsolution26.com MARK=$APP/.phase4.done [ -f "$MARK" ] && exit 0 touch "$MARK" exec >$APP/fix.log 2>&1 echo "================ FIX $(date) ================" cd $APP || exit 1 NODEBIN=/opt/alt/alt-nodejs22/root/usr/bin export PATH=$NODEBIN:$PATH export HOME=/home/erpsolution26 export NODE_ENV=production DBU=erpsolution26_spincraft DBP='y61JTjJiBBNqnwRPJTCg6wJl' DBN=erpsolution26_spincraft # ---- stop the stalled phase-2 npm run ---- pkill -9 -u erpsolution26 -f "npm install --no-audit" 2>/dev/null rm -rf "$APP/.deploy2.lock" echo "cleaned up stalled phase2" # ---- how does MySQL actually listen? ---- echo "--- mysql listening config ---" mysql -u "$DBU" -p"$DBP" "$DBN" -N -e "SHOW VARIABLES WHERE Variable_name IN ('socket','port','bind_address','version');" SOCK=$(mysql -u "$DBU" -p"$DBP" "$DBN" -N -e "SHOW VARIABLES LIKE 'socket';" | awk '{print $2}') echo "detected socket: [$SOCK]" echo "--- tcp 3306 listeners ---" (netstat -lnt 2>/dev/null || ss -lnt 2>/dev/null) | grep -E '3306|Local' | head -5 # ---- rewrite DATABASE_URL to use the unix socket ---- if [ -n "$SOCK" ] && [ -S "$SOCK" ]; then NEWURL="mysql://$DBU:$DBP@localhost/$DBN?socket=$SOCK" echo "using socket connection" else NEWURL="mysql://$DBU:$DBP@127.0.0.1:3306/$DBN" echo "socket not found, falling back to 127.0.0.1" fi cat > .env </dev/null; fi pkill -9 -u erpsolution26 -f "next start -p 3100" 2>/dev/null sleep 2 : > node.log nohup ./node_modules/.bin/next start -p 3100 >> node.log 2>&1 & echo $! > node.pid echo "node restarted pid=$(cat node.pid)" # ---- wait for readiness ---- CODE=000 for i in $(seq 1 40); do sleep 3 CODE=$(curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:3100/login 2>/dev/null) [ "$CODE" = "200" ] && break done echo "local /login -> $CODE" # ---- prove the DB path works end to end ---- echo "--- real login attempt (admin@spincraft.com / admin123) ---" curl -s -i -X POST http://127.0.0.1:3100/api/auth/login \ -H 'Content-Type: application/json' \ --data '{"email":"admin@spincraft.com","password":"admin123"}' \ | head -20 echo "" echo "--- node.log tail ---" tail -20 node.log # ---- keepalive cron helper stays; make sure it targets 3100 ---- echo "=== DONE ==="