/opt/canhelp/scripts
NameSizeModeActions
backup.sh31320755editdlrm
deploy-no-install.sh41300755editdlrm
deploy.sh49480755editdlrm
health-check.sh28050755editdlrm
install.sh26500755editdlrm
restart.sh14780755editdlrm
submit-sitemap.mjs18540644editdlrm
Edit: /opt/canhelp/scripts/health-check.sh (2805B)
#!/usr/bin/env bash # ============================================================================= # health-check.sh — проверка состояния всех сервисов # Использование: scripts/health-check.sh # ============================================================================= set -euo pipefail API_URL="${API_URL:-http://localhost:4000}" WEB_URL="${WEB_URL:-http://localhost:3000}" OK=0 FAIL=0 green() { echo -e "\033[32m✓\033[0m $*"; } red() { echo -e "\033[31m✗\033[0m $*"; FAIL=$((FAIL+1)); } check_http() { local name="$1" url="$2" local code code=$(curl -s -o /dev/null -w "%{http_code}" --max-time 5 "$url" 2>/dev/null || echo "000") if [[ "$code" =~ ^(200|301|302|304)$ ]]; then green "$name ($url) — HTTP $code" OK=$((OK+1)) else red "$name ($url) — HTTP $code" fi } echo "══════════════════════════════════════════" echo " CanHelp — Health Check $(date '+%H:%M:%S')" echo "══════════════════════════════════════════" echo "" echo "── PM2 ──────────────────────────────────" if command -v pm2 &>/dev/null; then pm2 list --no-color 2>/dev/null | grep -E "canhelp|online|stopped|errored" || true else red "pm2 не найден" fi echo "" echo "── Docker ───────────────────────────────" if command -v docker &>/dev/null; then docker compose -f /opt/canhelp/docker-compose.yml ps 2>/dev/null || red "docker compose недоступен" else red "docker не найден" fi echo "" echo "── HTTP endpoints ───────────────────────" check_http "API health" "$API_URL/api/health" check_http "Web (Next.js)" "$WEB_URL" echo "" echo "── Disk ─────────────────────────────────" df -h /opt/canhelp 2>/dev/null || df -h / echo "" echo "── Memory ───────────────────────────────" free -h echo "" echo "══════════════════════════════════════════" if [[ $FAIL -eq 0 ]]; then echo -e " \033[32mВсё в порядке ($OK проверок пройдено)\033[0m" else echo -e " \033[31mПРОБЛЕМЫ: $FAIL из $((OK+FAIL)) проверок не пройдено\033[0m" exit 1 fi echo "══════════════════════════════════════════"