561fbd22e0
Co-authored-by: Cursor <cursoragent@cursor.com>
59 lines
1.8 KiB
Bash
59 lines
1.8 KiB
Bash
#!/bin/bash
|
|
# Обновление на сервере: git pull, npm, restart shop
|
|
# bash "$SHOP_ROOT/scripts/server-update.sh"
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
# shellcheck source=shop-root.sh
|
|
source "$SCRIPT_DIR/shop-root.sh"
|
|
|
|
echo "=== Shop update: $SHOP_ROOT ==="
|
|
|
|
if [ ! -d .git ]; then
|
|
echo "Ошибка: $SHOP_ROOT не git-репозиторий (нет .git)."
|
|
echo "Если нет .git — клонируйте заново:"
|
|
echo " export SHOP_GIT_URL='<URL-репозитория>'"
|
|
echo " mv \"$SHOP_ROOT\" \"\${SHOP_ROOT}.bak\""
|
|
echo " git clone \"\$SHOP_GIT_URL\" \"$SHOP_ROOT\""
|
|
exit 1
|
|
fi
|
|
|
|
bash "$SCRIPT_DIR/git-sync.sh"
|
|
|
|
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 [ -f /etc/systemd/system/shop.service ]; then
|
|
systemctl daemon-reload
|
|
bash "$SCRIPT_DIR/free-port-3000.sh" 3000 2>/dev/null || true
|
|
systemctl restart shop
|
|
sleep 2
|
|
if curl -sf http://127.0.0.1:3000/health; then
|
|
echo ""
|
|
echo "OK"
|
|
systemctl reload caddy 2>/dev/null || true
|
|
else
|
|
echo "shop не отвечает — journalctl -u shop -n 30"
|
|
exit 1
|
|
fi
|
|
elif [ "$(id -u)" -eq 0 ]; then
|
|
echo "Служба shop не установлена — устанавливаем..."
|
|
bash "$SCRIPT_DIR/install-shop-service.sh"
|
|
else
|
|
echo "Служба shop не установлена. Выполните от root:"
|
|
echo " sudo bash $SHOP_ROOT/scripts/install-shop-service.sh"
|
|
echo "WorkingDirectory: $SHOP_ROOT"
|
|
exit 1
|
|
fi
|