7cb61d4242
Co-authored-by: Cursor <cursoragent@cursor.com>
2.8 KiB
2.8 KiB
Решение проблем
Полное руководство по развёртыванию: Сервер: установка и обновление.
Обновление на сервере (рекомендуется):
export SHOP_ROOT=/opt/shop/shop10
bash "$SHOP_ROOT/scripts/server-update.sh"
SHOP_ROOT — каталог с package.json (у вас может быть /opt/shop).
Перед диагностикой:
export SHOP_ROOT=/opt/shop/shop10
cd "$SHOP_ROOT"
Диагностика
bash "$SHOP_ROOT/scripts/diagnose-502.sh"
bash "$SHOP_ROOT/scripts/diagnose-shop-service.sh"
journalctl -u shop -n 50 --no-pager
Краткая таблица ошибок
| Симптом | Что делать |
|---|---|
postgresql-17 not found |
sudo bash scripts/install-postgresql-ubuntu.sh |
Placeholder / URL_РЕПОЗИТОРИЯ |
git clone <ваш-url> "$SHOP_ROOT" — не копировать шаблоны как команды |
Нет package.json |
find /opt -name package.json; cd в найденный каталог |
| detached HEAD | bash scripts/git-sync.sh |
EACCES на package-lock.json, npm от www-data |
sudo bash scripts/fix-shop-permissions.sh затем sudo npm install --omit=dev и снова fix-shop-permissions |
shop.service failed после обновления |
sudo bash scripts/fix-shop-permissions.sh && sudo systemctl restart shop |
Нет scripts/... |
bash "$SHOP_ROOT/scripts/server-update.sh" |
| Unit shop not found | sudo bash scripts/install-shop-service.sh |
| shop exit-code / auto-restart | sudo bash scripts/free-port-3000.sh; systemctl restart shop |
| 502 в браузере | curl http://127.0.0.1:3000/health — сначала backend |
| ECONNREFUSED :5432 | bash scripts/fix-db-connection.sh |
Подробности — в Server-Operations.
HTTP 502 (Caddy / браузер)
curl -s http://127.0.0.1:3000/health
systemctl status shop
Пока /health не OK — Caddy будет отдавать 502.
Docker
docker compose logs app
docker compose logs postgres
docker compose up -d --build
DATABASE_URL в compose должен указывать на сервис postgres, не на 127.0.0.1 внутри контейнера app.
git pull / dubious ownership
Не делайте chown -R www-data на весь каталог репозитория.
git config --global --add safe.directory "$SHOP_ROOT"
cd "$SHOP_ROOT" && git pull