Files
shop10/wiki/Troubleshooting.md

3.0 KiB
Raw Permalink Blame History

Решение проблем

Полное руководство по развёртыванию: Сервер: установка и обновление.

Обновление на сервере (рекомендуется):

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
status=203/EXEC на wait-postgres.sh chmod +x scripts/*.sh; sed -i 's/\r$//' scripts/*.sh; в unit: ExecStartPre=+/bin/bash .../wait-postgres.sh; sudo bash scripts/install-shop-service.sh
Нет 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

Ссылки