docs: права git/data, скрипт server-update, fix dubious ownership

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
shop
2026-05-16 21:10:41 +03:00
parent c4891b428b
commit d3cc243686
2 changed files with 49 additions and 6 deletions
+23 -6
View File
@@ -72,13 +72,16 @@ SESSION_SECRET=ваш-длинный-секрет
```bash
cp /opt/shop/deploy/shop.service /etc/systemd/system/shop.service
# Зависимости и сборка (от root, до смены владельца)
# Код обновляйте от root; НЕ делайте chown -R на весь /opt/shop (ломает git pull)
cd /opt/shop
git config --global --add safe.directory /opt/shop
git pull
npm install --omit=dev
# Владелец — тот же пользователь, что в unit (www-data)
chown -R www-data:www-data /opt/shop
chmod +x /opt/shop/scripts/diagnose-502.sh
# Запись только в data/ — для пользователя службы www-data
mkdir -p /opt/shop/data
chown -R www-data:www-data /opt/shop/data
chmod +x /opt/shop/scripts/diagnose-502.sh 2>/dev/null || true
systemctl daemon-reload
systemctl enable shop
@@ -186,7 +189,8 @@ curl -v http://127.0.0.1:3000/health
|--------|-------------|
| Служба `shop` не запущена или падает | `systemctl restart shop`, смотрите логи `journalctl -u shop -f` |
| Нет `npm install` / сломан `better-sqlite3` | `cd /opt/shop && npm install --omit=dev` (нужны `build-essential`, `python3`) |
| Нет прав на `data/` у `www-data` | `mkdir -p /opt/shop/data && chown -R www-data:www-data /opt/shop` |
| Нет прав на `data/` у `www-data` | `mkdir -p /opt/shop/data && chown -R www-data:www-data /opt/shop/data` |
| `dubious ownership` / нет `git pull` | `chown -R root:root /opt/shop` + `safe.directory` (см. выше) |
| В `.env` нет `HOST`/`PORT` | `HOST=127.0.0.1`, `PORT=3000`, затем `systemctl restart shop` |
| Неверный путь к `node` в systemd | `which node` → подставьте в `ExecStart` в `/etc/systemd/system/shop.service` |
| Caddy стартовал раньше shop | `cp deploy/caddy-after-shop.conf /etc/systemd/system/caddy.service.d/shop.conf` и `daemon-reload` |
@@ -195,14 +199,27 @@ curl -v http://127.0.0.1:3000/health
```bash
cd /opt/shop
git config --global --add safe.directory /opt/shop
git pull
npm install --omit=dev
chown -R www-data:www-data /opt/shop
mkdir -p data
chown -R www-data:www-data /opt/shop/data
systemctl restart shop
curl -s http://127.0.0.1:3000/health # должен быть {"ok":true,...}
systemctl reload caddy
```
**Ошибка `dubious ownership` при `git pull`:**
Вы сделали `chown -R www-data` на весь каталог. Верните владельца репозиторию root и оставьте `data/` за www-data:
```bash
chown -R root:root /opt/shop
chown -R www-data:www-data /opt/shop/data
git config --global --add safe.directory /opt/shop
git pull
```
Пока `curl http://127.0.0.1:3000/health` не возвращает OK — HTTPS через Caddy будет отдавать 502.
### Другие проблемы