# Решение проблем ## Диагностика одной командой ```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 ``` ## 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)