# Развёртывание на 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 → /opt/security-alert-center/config/sac-api.env systemd/sac-api.service → /etc/systemd/system/ nginx/sac.conf.example → /etc/nginx/sites-available/sac (HTTP) nginx/sac.conf.tls.example → HTTPS + wildcard sac-deploy.sh → /opt/sac-deploy.sh (полное обновление) ``` **Production URL:** `https://sac.example.com` **Конфиг:** `/opt/security-alert-center/config/sac-api.env` (владелец `sac:sac`, chmod 600). **UI:** статика `frontend/dist`, раздаётся через FastAPI (после `npm run build`). --- ## 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.example.com/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 | `frontend/dist`, сборка `npm run build`, раздача из API | Полная инструкция: **[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.example.com/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 - **Production (KalinaMall):** корпоративный **wildcard** (VeriSign) — [ssl-certificate.md](ssl-certificate.md) (копирование, форматы, `/etc/ssl/sac/`), [install-ubuntu-24.04-native.md](install-ubuntu-24.04-native.md) §9, `deploy/nginx/sac.conf.tls.example` - Альтернатива: **certbot** + Let's Encrypt (`deploy/nginx/sac.conf.example`) --- ## 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 sudo /opt/sac-deploy.sh ``` Установка скрипта (один раз): `sudo cp /opt/security-alert-center/deploy/sac-deploy.sh /opt/sac-deploy.sh && sudo chmod 755 /opt/sac-deploy.sh` После **force-push** на upstream remote обычный `git pull` на сервере падает с «diverging branches». Скрипт `sac-deploy.sh` (актуальная версия) делает `fetch` и при необходимости `reset --hard` к upstream. **Один раз вручную**, если на сервере ещё старый скрипт: ```bash sudo -u sac git -C /opt/security-alert-center fetch --prune sudo -u sac git -C /opt/security-alert-center reset --hard origin/main sudo cp /opt/security-alert-center/deploy/sac-deploy.sh /opt/sac-deploy.sh sudo /opt/sac-deploy.sh ``` Подробности: [install-ubuntu-24.04-native.md §13](install-ubuntu-24.04-native.md#13-обновление-sac-деплой). --- ## См. также - [TZ.md](TZ.md) - [agent-integration.md](agent-integration.md)