Развёртывание (администратор)¶
Руководство по конфигурации AegisAI для production-окружения.
Чеклист production¶
- [ ] Сменить
SECRET_KEY,ADMIN_API_KEY,WEBHOOK_SECRET - [ ] Задать надёжные пароли PostgreSQL
- [ ] Настроить HTTPS (TLS)
- [ ] Ограничить CORS
- [ ] Настроить бэкапы PostgreSQL
- [ ] Настроить мониторинг и алерты
- [ ] Отключить
--reloadв Uvicorn - [ ] Задать
ENVIRONMENT=production - [ ] Настроить ротацию логов
- [ ] Проверить
AUDIT_RETENTION_DAYS
Переменные окружения¶
Обязательные¶
# База данных
DATABASE_URL=postgresql+asyncpg://aegisai:<password>@postgres:5432/aegisai
# Redis
REDIS_URL=redis://redis:6379/0
# Безопасность
SECRET_KEY=<64-char-random-string>
ADMIN_API_KEY=<random-admin-key>
WEBHOOK_SECRET=<random-webhook-secret>
# Окружение
ENVIRONMENT=production
OPA¶
Аудит¶
AUDIT_SIGNING_ENABLED=true
AUDIT_RETENTION_DAYS=365
EXPORT_STORAGE_PATH=/app/storage/exports
SYNC_EXPORT_THRESHOLD=10000
MAX_EXPORT_LIMIT=100000
Суперадминистратор¶
SUPER_ADMIN_EMAIL=admin@yourcompany.com
SUPER_ADMIN_PASSWORD=<strong-password>
SUPER_ADMIN_SYNC_PASSWORD=true
Синхронизация пароля при старте: poetry run python scripts/init_super_admin.py --force-sync
SSO и SIEM¶
См. SSO и SIEM для полных списков переменных (KEYCLOAK_*, OKTA_*, SIEM_*).
Reverse Proxy (Nginx)¶
server {
listen 443 ssl http2;
server_name aegisai.yourcompany.com;
ssl_certificate /etc/ssl/certs/aegisai.crt;
ssl_certificate_key /etc/ssl/private/aegisai.key;
# API
location /api/ {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# WebSocket
location /api/v1/ws {
proxy_pass http://127.0.0.1:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
# Webhooks
location /webhooks/ {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
client_max_body_size 10m;
}
# Frontend (статика)
location / {
root /var/www/aegisai/dist;
try_files $uri $uri/ /index.html;
}
}
Миграции базы данных¶
# В Docker
docker compose exec app poetry run alembic upgrade head
# Локально
poetry run alembic upgrade head
Перед обновлением
Всегда создавайте бэкап БД перед применением миграций.
Сборка фронтенда¶
Артефакты в frontend/dist/ — разместите на CDN или в Nginx.
Масштабирование¶
| Компонент | Рекомендация |
|---|---|
app (FastAPI) |
2+ реплики за load balancer |
postgres |
Primary + read replica |
redis |
Sentinel или Cluster |
opa |
Sidecar или централизованный сервис |
frontend |
CDN для статики |
Sticky sessions для WebSocket¶
При нескольких репликах app настройте sticky sessions на load balancer или используйте Redis pub/sub (встроен в event_publisher).
Безопасность сети¶
graph TB
Internet --> LB[Load Balancer / TLS]
LB --> FE[Frontend CDN]
LB --> API[FastAPI :8000]
API --> PG[(PostgreSQL)]
API --> RD[(Redis)]
API --> OPA[OPA :8181]
PG -.->|private network| API
RD -.->|private network| API
OPA -.->|private network| API
Не публикуйте
PostgreSQL (5432), Redis (6379) и OPA (8181) не должны быть доступны из интернета.