Files
shop10/wiki/Troubleshooting.md
T

162 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Решение проблем
## Диагностика одной командой
```bash
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` |
Полное развёртывание / обновление:
```bash
cd /opt/shop/shop10 && git pull
sudo bash scripts/quick-deploy-ubuntu.sh
```
Только обновление кода (сайт уже работает):
```bash
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`:
```bash
cd /opt/shop/shop10
git status
bash scripts/git-sync.sh
bash scripts/server-update.sh
```
Если `fatal: not a git repository` в `/opt/shop/shop10`:
```bash
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
```
## Служба shop не установлена
Код обновился, но systemd unit не настроен:
```bash
cd /opt/shop/shop10
sudo bash scripts/install-shop-service.sh
```
Проверка:
```bash
systemctl status shop
curl -s http://127.0.0.1:3000/health
```
## scripts/server-update.sh: No such file or directory
Вы не в каталоге репозитория или клон в подпапке (например `/opt/shop/shop10`):
```bash
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) не отвечает.
```bash
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
bash /opt/shop/shop10/scripts/fix-db-connection.sh
```
Или вручную:
```bash
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
bash /opt/shop/shop10/scripts/server-update.sh
systemctl restart shop
```
---
## dubious ownership (git pull)
Не делайте `chown -R www-data /opt/shop`.
```bash
chown -R root:root /opt/shop
git config --global --add safe.directory /opt/shop
git pull
```
---
## Docker: контейнер app unhealthy
```bash
docker compose logs app
docker compose logs postgres
docker compose up -d --build
```
---
## Docker: нет связи с БД
Проверьте, что `DATABASE_URL` в compose указывает на хост `postgres`, а не `127.0.0.1` (внутри контейнера app).
---
## Полезные ссылки
- [Установка Docker](Install-Docker)
- [Установка без Docker](Install-Native)
- [Репозиторий](https://git.evilfox.cc/test/shop10)