fix(docs): sac-api.env chmod 640 root:sac для пользователя sac

This commit is contained in:
2026-05-26 20:53:10 +10:00
parent 69547d83bc
commit 6d33669ac2
2 changed files with 18 additions and 5 deletions
+16 -3
View File
@@ -124,13 +124,15 @@ sudo -u sac .venv/bin/pip install -r requirements.txt
sudo mkdir -p /etc/security-alert-center
sudo chmod 750 /etc/security-alert-center
sudo cp /opt/security-alert-center/deploy/env.native.example /etc/security-alert-center/sac-api.env
sudo chmod 600 /etc/security-alert-center/sac-api.env
sudo nano /etc/security-alert-center/sac-api.env
# Права: читает пользователь sac (systemd и alembic), не «весь мир»
sudo chown root:sac /etc/security-alert-center/sac-api.env
sudo chmod 640 /etc/security-alert-center/sac-api.env
```
Обязательно задать:
- `DATABASE_URL`с паролем PostgreSQL из шага 4
- `DATABASE_URL`с паролем PostgreSQL из шага 4 (если в пароле есть `#`, `@`, `%` — возьмите значение в **кавычки**: `DATABASE_URL="postgresql+psycopg2://..."`)
- `JWT_SECRET``openssl rand -hex 32`
- `SAC_PUBLIC_URL``https://sac.kalinamall.ru`
- `SAC_BOOTSTRAP_API_KEY``python3.12 -c "import secrets; print('sac_'+secrets.token_urlsafe(32))"`
@@ -140,11 +142,21 @@ sudo nano /etc/security-alert-center/sac-api.env
## 7. Миграции БД
Проверка, что `sac` читает конфиг (должно быть без `Permission denied`):
```bash
sudo -u sac test -r /etc/security-alert-center/sac-api.env && echo OK
```
Миграции:
```bash
cd /opt/security-alert-center/backend
sudo -u sac bash -c 'set -a; source /etc/security-alert-center/sac-api.env; set +a; .venv/bin/alembic upgrade head'
```
Если снова `Permission denied` — повторите права из §6: `chown root:sac`, `chmod 640` на `sac-api.env`.
---
## 8. systemd
@@ -267,7 +279,8 @@ sudo systemctl restart sac-api
| Симптом | Действие |
|---------|----------|
| `database: error` | `journalctl -u sac-api`; проверить `DATABASE_URL`, `systemctl status postgresql` |
| `sac-api.env: Permission denied` | `sudo chown root:sac /etc/security-alert-center/sac-api.env && sudo chmod 640 ...` |
| `database: error` / SQLAlchemy connect | Переменные не подгрузились — см. выше; проверить `DATABASE_URL`, `psql` от пользователя `sac` не нужен — проверьте URL вручную; `systemctl status postgresql` |
| 401 ingest | ключ в `Authorization: Bearer`; проверить `SAC_BOOTSTRAP_API_KEY` |
| 502 от nginx | API не слушает: `ss -lntp \| grep 8000`, `systemctl restart sac-api` |
| Schema errors 422 | путь `EVENT_SCHEMA_PATH`, наличие файла schema |