Files
security-alert-center/docs/deployment.md
T
PTah 539126b75e fix(deploy): конфиг в /opt/security-alert-center/config (sac:sac)
Убирает ошибку Permission denied при каталоге /etc root:root.
2026-05-26 20:59:44 +10:00

3.4 KiB

Развёртывание на Ubuntu 24.04

Эксплуатация SAC: native (PostgreSQL + systemd + nginx). Docker — только альтернатива.

Руководства по установке

Документ Назначение
install-ubuntu-24.04-native.md Production — пошаговая подготовка сервера
install-ubuntu-24.04-docker.md Стенд / отладка (Compose)
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

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.

Кратко:

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 и deploy/docker-compose.yml.
Не используется для production KalinaMall.


5. TLS

  • certbot + nginx (Let's Encrypt)
  • Внутренний CA — сертификаты в nginx, доверие на агентах Windows/Linux

6. Резервное копирование (native)

# /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)

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 /opt/security-alert-center/config/sac-api.env; set +a; cd backend && .venv/bin/alembic upgrade head'
sudo systemctl restart sac-api

См. также