fix: sac-deploy validate sac-api.env without bash source
Preflight pydantic parse catches inline comments in env values; alembic and stale remote_action reset use SAC_CONFIG_FILE. Document env format and ssh_known_hosts in runbook. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -18,6 +18,32 @@ curl -sS https://sac.kalinamall.ru/health | jq .
|
||||
|
||||
Ожидается `status: ok`, `database: ok`. При устаревших heartbeat агентов — `status: degraded`, поле `hosts_stale` > 0.
|
||||
|
||||
### `sac-api.env`: формат строк
|
||||
|
||||
Файл читается **pydantic** (`SAC_CONFIG_FILE`), не как произвольный bash-скрипт.
|
||||
|
||||
- Одна переменная — одна строка: `SAC_SSH_AUTO_ADD_HOST_KEY=false`
|
||||
- Комментарии — **отдельной** строкой с `#` в начале
|
||||
- **Нельзя** inline после значения: `false ← так и оставляем` — deploy упадёт на `alembic` с `bool_parsing`
|
||||
|
||||
Проверка без деплоя:
|
||||
|
||||
```bash
|
||||
sudo -u sac bash -c 'export SAC_CONFIG_FILE=/opt/security-alert-center/config/sac-api.env; cd /opt/security-alert-center/backend && .venv/bin/python -c "from app.config import get_settings; get_settings(); print(\"OK\")"'
|
||||
```
|
||||
|
||||
### Linux SSH update: `known_hosts`
|
||||
|
||||
Перед «Обновить ssh-monitor (SSH)» ключ хоста должен быть в файле (по умолчанию `config/ssh_known_hosts`):
|
||||
|
||||
```bash
|
||||
ssh-keyscan -H 10.10.7.2 | sudo tee -a /opt/security-alert-center/config/ssh_known_hosts
|
||||
sudo chown sac:sac /opt/security-alert-center/config/ssh_known_hosts
|
||||
sudo chmod 600 /opt/security-alert-center/config/ssh_known_hosts
|
||||
```
|
||||
|
||||
Иначе SAC: `Server '…' not found in known_hosts`. `SAC_SSH_AUTO_ADD_HOST_KEY=true` для prod не рекомендуется.
|
||||
|
||||
## Мобильные устройства (Seaca)
|
||||
|
||||
См. [seaca-mobile.md](seaca-mobile.md) и [seaca-fcm.md](seaca-fcm.md).
|
||||
|
||||
Reference in New Issue
Block a user