Управление сервисами¶
Все операции с платформой выполняются из каталога поставки ($DEPLOY_DIR) штатными командами docker compose. Скрипты-обёртки в вендорскую поставку не входят.
Основные команды¶
Полный запуск¶
Команда поднимает все контейнеры в фоновом режиме. Платформа автоматически выполняет миграции БД, инициализацию NATS и MinIO, загрузку seed-данных. Подробности — см. Установка и запуск.
Остановка с сохранением данных¶
Останавливает и удаляет контейнеры, но сохраняет Docker volumes. Данные PostgreSQL, Redis, MinIO и NATS остаются на месте — при следующем docker compose up -d сервисы продолжат работу с теми же данными.
Полный сброс (удаление всех данных)¶
Удаление ВСЕХ данных
Следующая команда удаляет все данные платформы: базу данных, бакеты MinIO, потоки NATS, кеш Redis. Используйте только для полного пересоздания среды.
Флаг -v удаляет volumes вместе с контейнерами. Для восстановления — запустите docker compose up -d (миграции и seed-данные применятся заново).
Просмотр статуса¶
# Все контейнеры платформы
docker compose ps
# Конкретный сервис
docker compose ps scan-orchestrator
Просмотр логов¶
# Последние 100 строк + follow
docker compose logs -f --tail 100 scan-orchestrator
# Логи нескольких сервисов
docker compose logs -f model-management scan-profile results
# Логи с временными метками
docker compose logs -f --timestamps jailbreak-api
# Все логи всех сервисов сразу
docker compose logs -f
Повседневные операции¶
Перезапуск отдельного сервиса¶
# Перезапуск без пересоздания контейнера
docker compose restart model-management
# Остановка и запуск (с пересозданием контейнера)
docker compose up -d --force-recreate model-management
Масштабирование воркеров¶
Для увеличения пропускной способности атак можно горизонтально масштабировать воркеры:
Ограничения
Масштабирование работает только для контейнеров без фиксированного IP-адреса и без привязки к конкретному порту хоста. Воркеры (preparator, attacker, judge, reporter) можно масштабировать, а API-контейнеры и инфраструктуру — нет.
Просмотр использования ресурсов¶
# Текущее потребление CPU/RAM всеми контейнерами
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}"
Очистка неиспользуемых образов¶
# Удаление неиспользуемых образов (dangling)
docker image prune -f
# Удаление всех неиспользуемых образов
docker image prune -a -f
# Полная очистка (образы, кеш сборки, остановленные контейнеры)
docker system prune -f
После полной очистки
Команда docker system prune -a удалит все образы, включая образы AppSec.GenAI. Перед следующим запуском потребуется повторно выполнить docker compose pull (см. Установка и запуск) — это снова потянет около 25 ГБ образов.
Просмотр размера volumes¶
Бэкап и восстановление¶
Полный бэкап¶
#!/bin/bash
# backup.sh — полный бэкап AppSec.GenAI
BACKUP_DIR="/backup/genai/$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"
# 1. Бэкап PostgreSQL
docker exec postgres pg_dumpall -U postgres > "$BACKUP_DIR/postgres_full.sql"
echo "PostgreSQL backup: OK"
# 2. Бэкап Redis
docker exec redis redis-cli BGSAVE
sleep 5
docker cp redis:/data/dump.rdb "$BACKUP_DIR/redis_dump.rdb"
echo "Redis backup: OK"
# 3. Бэкап MinIO (данные)
docker cp minio:/data "$BACKUP_DIR/minio_data"
echo "MinIO backup: OK"
# 4. Бэкап конфигурации
cp "$DEPLOY_DIR/.env" "$BACKUP_DIR/env_backup"
echo "Config backup: OK"
echo "Backup completed: $BACKUP_DIR"
Восстановление из бэкапа¶
#!/bin/bash
# restore.sh — восстановление из бэкапа
BACKUP_DIR=$1
if [ -z "$BACKUP_DIR" ]; then
echo "Usage: restore.sh /path/to/backup"
exit 1
fi
cd $DEPLOY_DIR
# 1. Остановка сервисов (сохранение volumes)
docker compose down
# 2. Восстановление PostgreSQL
docker compose up -d postgres
sleep 10
docker exec -i postgres psql -U postgres < "$BACKUP_DIR/postgres_full.sql"
# 3. Восстановление Redis
docker cp "$BACKUP_DIR/redis_dump.rdb" redis:/data/dump.rdb
docker compose restart redis
# 4. Запуск всех сервисов
docker compose up -d
Регулярные бэкапы
Настройте автоматический запуск backup.sh через cron с хранением последних N копий. Для критичных стендов рекомендуется ежедневный бэкап БД и еженедельный полный бэкап (включая MinIO).