Files
shop10/scripts/server-update.sh
T

43 lines
1.3 KiB
Bash

#!/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