#!/bin/bash # Диагностика HTTP 502 (Caddy не достучался до Node) set -e echo "=== Shop / Caddy 502 diagnostic ===" echo echo "1. Служба shop" systemctl is-active shop 2>/dev/null || echo " shop: не установлена или не active" systemctl status shop --no-pager -l 2>/dev/null | head -20 || true echo echo "2. Служба caddy" systemctl is-active caddy 2>/dev/null || true echo echo "3. Порт 3000" if command -v ss >/dev/null; then ss -tlnp | grep ':3000' || echo " Ничего не слушает порт 3000 — запустите shop" else netstat -tlnp 2>/dev/null | grep ':3000' || echo " Порт 3000 не слушается" fi echo echo "4. curl backend" if curl -sf --max-time 3 http://127.0.0.1:3000/health; then echo echo " OK — Node отвечает, проблема скорее в Caddyfile" else echo " FAIL — Node не отвечает на 127.0.0.1:3000" echo " Проверьте: journalctl -u shop -n 50 --no-pager" fi echo echo "5. .env (HOST, PORT)" if [ -f /opt/shop/.env ]; then grep -E '^(HOST|PORT|NODE_ENV)=' /opt/shop/.env || true else echo " /opt/shop/.env не найден" fi echo echo "6. Права data/" if [ -d /opt/shop/data ]; then ls -la /opt/shop/data else echo " Каталог data/ отсутствует — создайте: mkdir -p /opt/shop/data && chown www-data:www-data /opt/shop/data" fi echo echo "7. Node" which node || which nodejs || echo " node не найден в PATH" node -v 2>/dev/null || nodejs -v 2>/dev/null || true