#!/bin/bash # Обновление на сервере: git pull, npm, restart shop # Запуск из любого места: # bash /opt/shop/shop10/scripts/server-update.sh # cd /opt/shop/shop10 && bash scripts/server-update.sh set -euo pipefail # shellcheck source=shop-root.sh source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/shop-root.sh" echo "=== Shop update: $SHOP_ROOT ===" git config --global --add safe.directory "$SHOP_ROOT" 2>/dev/null || true git pull npm install --omit=dev if [ -f .env ] && ! grep -q '^DATABASE_URL=' .env; then echo "ВНИМАНИЕ: добавьте DATABASE_URL в .env (см. .env.example)" exit 1 fi if command -v pg_isready >/dev/null; then pg_isready -h 127.0.0.1 -p 5432 >/dev/null || { echo "PostgreSQL не отвечает. Запустите: systemctl start postgresql" exit 1 } fi if systemctl is-active --quiet shop 2>/dev/null; then systemctl restart shop sleep 1 curl -sf http://127.0.0.1:3000/health && echo || { echo "shop не отвечает — смотрите: journalctl -u shop -n 30" exit 1 } systemctl reload caddy 2>/dev/null || true echo "OK" else echo "Служба shop не установлена. См. deploy/shop.service" echo "WorkingDirectory в unit должен совпадать с: $SHOP_ROOT" fi