Files
security-alert-center/docs/deployment.md
T

119 lines
3.4 KiB
Markdown

# Развёртывание на Ubuntu 24.04
Эксплуатация SAC: **native** (PostgreSQL + systemd + nginx). Docker — только альтернатива.
## Руководства по установке
| Документ | Назначение |
|----------|------------|
| **[install-ubuntu-24.04-native.md](install-ubuntu-24.04-native.md)** | **Production** — пошаговая подготовка сервера |
| [install-ubuntu-24.04-docker.md](install-ubuntu-24.04-docker.md) | Стенд / отладка (Compose) |
| [install-ubuntu-24.04.md](install-ubuntu-24.04.md) | Указатель |
## Артефакты native в репозитории
```
deploy/
env.native.example → /etc/security-alert-center/sac-api.env
systemd/sac-api.service → /etc/systemd/system/
nginx/sac.conf.example → /etc/nginx/sites-available/sac
```
---
## 1. Требования к серверу
| Параметр | Минимум | Рекомендуется |
|----------|---------|---------------|
| ОС | Ubuntu 24.04 LTS | Ubuntu 24.04 LTS |
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB | 8 GB |
| Диск | 50 GB SSD | 100+ GB SSD |
**Порты снаружи:** 443 (nginx), 80 (редирект). API `8000` — только `127.0.0.1`. PostgreSQL — только localhost.
---
## 2. Сетевые правила
**Агенты →** `https://sac.kalinamall.ru/api/v1/events`
**SAC →** Telegram, SMTP (исходящие)
**Админы →** 443 (UI/API через nginx)
---
## 3. Вариант A: Native (production)
Компоненты на хосте:
| Компонент | Как |
|-----------|-----|
| PostgreSQL 16 | `apt`, БД `sac` |
| SAC API | Python 3.12 venv, **systemd** `sac-api` |
| TLS / proxy | **nginx** |
| UI (позже) | static в `/var/www/sac/` |
Полная инструкция: **[install-ubuntu-24.04-native.md](install-ubuntu-24.04-native.md)**.
Кратко:
```bash
systemctl status sac-api
curl -sS http://127.0.0.1:8000/health
curl -sS https://sac.kalinamall.ru/health
```
---
## 4. Вариант B: Docker Compose (альтернатива)
См. [install-ubuntu-24.04-docker.md](install-ubuntu-24.04-docker.md) и `deploy/docker-compose.yml`.
**Не используется** для production KalinaMall.
---
## 5. TLS
- **certbot** + nginx (Let's Encrypt)
- Внутренний CA — сертификаты в nginx, доверие на агентах Windows/Linux
---
## 6. Резервное копирование (native)
```bash
# /etc/cron.d/sac-backup
0 3 * * * postgres pg_dump -Fc -U sac sac > /var/backups/sac/sac_$(date +\%Y\%m\%d).dump
```
Восстановление: `pg_restore -d sac_restored /var/backups/sac/sac_YYYYMMDD.dump`
---
## 7. Обслуживание
| Задача | Периодичность |
|--------|---------------|
| `unattended-upgrades` | автоматически |
| `journalctl -u sac-api` | по инцидентам |
| `/health` | каждые 5 мин |
| Тест restore БД | ежемесячно |
---
## 8. Обновление (native)
```bash
cd /opt/security-alert-center && sudo -u sac git pull
sudo -u sac backend/.venv/bin/pip install -r backend/requirements.txt
sudo -u sac bash -c 'set -a; source /etc/security-alert-center/sac-api.env; set +a; cd backend && .venv/bin/alembic upgrade head'
sudo systemctl restart sac-api
```
---
## См. также
- [TZ.md](TZ.md)
- [agent-integration.md](agent-integration.md)