Files
shop10/wiki/Troubleshooting.md
T

4.9 KiB
Raw Blame History

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

Диагностика одной командой

bash /opt/shop/shop10/scripts/diagnose-502.sh

(замените путь на каталог вашего клона — где есть package.json)

Ошибки при «быстром развёртывании»

Ошибка Причина Решение
Unable to locate package postgresql-17 В Ubuntu нет PG 17 без PGDG sudo bash /opt/shop/shop10/scripts/install-postgresql-ubuntu.sh
URL_РЕПОЗИТОРИЯ: No such file Скопирован placeholder из README Используйте реальный URL: git clone https://git.evilfox.cc/test/shop10.git /opt/shop/shop10
package.json в /opt/shop Неверный каталог Репозиторий в /opt/shop/shop10
Изменения не применились git pull не в том каталоге bash /opt/shop/shop10/scripts/server-update.sh

Полное развёртывание / обновление:

cd /opt/shop/shop10 && git pull
sudo bash scripts/quick-deploy-ubuntu.sh

Только обновление кода (сайт уже работает):

bash /opt/shop/shop10/scripts/server-update.sh

git: You are not currently on a branch / not a git repository

Клон на теге (detached HEAD) или обновление из /opt/shop вместо /opt/shop/shop10:

cd /opt/shop/shop10
git status
bash scripts/git-sync.sh
bash scripts/server-update.sh

Если fatal: not a git repository в /opt/shop/shop10:

ls -la /opt/shop/shop10/.git
# нет .git — заново:
mv /opt/shop/shop10 /opt/shop/shop10.bak.$(date +%s)
git clone https://git.evilfox.cc/test/shop10.git /opt/shop/shop10
cp /opt/shop/shop10.bak.*/.env /opt/shop/shop10/.env 2>/dev/null || cp /opt/shop/shop10/.env.example /opt/shop/shop10/.env
bash /opt/shop/shop10/scripts/server-update.sh

Job for shop.service failed (control process exited)

Чаще всего не запущен PostgreSQL или не прошёл ExecStartPre:

cd /opt/shop/shop10
git pull
sudo bash scripts/install-postgresql-ubuntu.sh
bash scripts/setup-postgres-ubuntu.sh
sudo bash scripts/install-shop-service.sh

Диагностика:

bash /opt/shop/shop10/scripts/diagnose-shop-service.sh
journalctl -u shop -n 50 --no-pager

Скопировать старый .env:

cp /opt/shop/.env /opt/shop/shop10/.env
sudo bash /opt/shop/shop10/scripts/install-shop-service.sh

Служба shop не установлена

Код обновился, но systemd unit не настроен:

cd /opt/shop/shop10
sudo bash scripts/install-shop-service.sh

Проверка:

systemctl status shop
curl -s http://127.0.0.1:3000/health

scripts/server-update.sh: No such file or directory

Вы не в каталоге репозитория или клон в подпапке (например /opt/shop/shop10):

ls /opt/shop/shop10/package.json
bash /opt/shop/shop10/scripts/server-update.sh

В deploy/shop.service укажите тот же путь в WorkingDirectory и EnvironmentFile.


HTTP 502 (Caddy / браузер)

SSL работает, страница 502 — Caddy жив, backend (Node) не отвечает.

curl -s http://127.0.0.1:3000/health
systemctl status shop
journalctl -u shop -n 30 --no-pager

Пока /health не OK — Caddy будет отдавать 502.


ECONNREFUSED 127.0.0.1:5432

PostgreSQL не запущен или не установлен.

bash /opt/shop/shop10/scripts/fix-db-connection.sh

Или вручную:

systemctl start postgresql
pg_isready -h 127.0.0.1 -p 5432
bash scripts/setup-postgres-ubuntu.sh

Проверьте DATABASE_URL в /opt/shop/shop10/.env.


Служба shop сразу останавливается

В логе только «База уже содержит товары» без строки Магазин: http://...:

bash /opt/shop/shop10/scripts/server-update.sh
systemctl restart shop

dubious ownership (git pull)

Не делайте chown -R www-data /opt/shop.

chown -R root:root /opt/shop
git config --global --add safe.directory /opt/shop
git pull

Docker: контейнер app unhealthy

docker compose logs app
docker compose logs postgres
docker compose up -d --build

Docker: нет связи с БД

Проверьте, что DATABASE_URL в compose указывает на хост postgres, а не 127.0.0.1 (внутри контейнера app).


Полезные ссылки