Перейти к содержанию

Справочник конфигурации

Все параметры ниже существуют в коде (или, где отмечено, только на уровне compose/установщика). Сгруппированы по категориям; «Издание» помечает EE-only. Если не отмечено иное, смена значения требует пересоздания контейнеров (docker compose up -d).

Приложение

Параметр Обязателен По умолчанию Описание Издание
APP_ENV рекомендован dev dev/development/test/production. В production: ENCRYPTION_KEY обязателен, COOKIE_SECURE включается по умолчанию, rate-limiter активен оба
UPLOAD_ROOT нет /data/uploads Корень загрузок, loot-файлов, audit JSONL, сгенерированных ключей оба
WORKER_BACKEND нет internal internal (in-process пул) или arq (воркер с очередью в Redis) оба
WORKER_POOL_MAX_WORKERS нет 8 Всего слотов задач оба
WORKER_POOL_MAX_PER_PROJECT нет 3 Слотов задач на проект оба
MODULES_DIR нет /app/modules Каталог модулей-плагинов (compose монтирует ./modules read-only) оба
SECURE_DELETE нет false shred -uzn 3 (fallback: одна проходка нулями) перед удалением файлов оба
ENABLE_API_DOCS нет false Открывает /docs, /redoc, /openapi.json (выключено по умолчанию — они монтируются вне auth-префикса /api) оба
LOG_LEVEL / LOG_FORMAT нет INFO / text Уровень логирования бэкенда; вариант json оба

База данных

Параметр Обязателен По умолчанию Описание Издание
DATABASE_URL да sqlite:// (dev) SQLAlchemy URL; compose собирает его из DB_* оба
DB_USER / DB_PASSWORD / DB_NAME compose: да umbryx / — / umbryx Части DSN + учётные данные сервиса PostgreSQL оба
DB_HOST / DB_PORT нет db / 5432 Указывайте VIP для внешних/HA-кластеров оба
DB_SSLMODE нет prefer Например require для HA-кластеров оба
DATABASE_REPLICA_URL нет — Движок read-replica для тяжёлых списков оба
DATABASE_POOL_SIZE / _MAX_OVERFLOW / _POOL_RECYCLE нет 10 / 20 / 1800 Настройки пула соединений оба
DATABASE_STATEMENT_TIMEOUT нет 30000 statement_timeout PostgreSQL, мс (0 — выключить) оба
POSTGRES_PASSWORD prod-compose: да — Используется сервисом db в prod/demo-вариантах compose оба
PGBOUNCER_POOL_SIZE / PGBOUNCER_MAX_CLIENT_CONN нет 25 / 200 Опциональный PgBouncer (сервис закомментирован) оба

Аутентификация и сессии

Параметр Обязателен По умолчанию Описание Издание
JWT_SECRET да автогенерация с записью в /data/.jwt_secret Ключ подписи HS256; известные слабые значения отвергаются оба
JWT_EXPIRE_HOURS нет 8 Время жизни access-токена оба
JWT_REFRESH_EXPIRE_HOURS нет 24 Время жизни refresh-токена (ротация) оба
SETUP_TOKEN рекомендован — Закрывает токеном first-run /api/auth/setup оба
ADMIN_USERNAME / ADMIN_PASSWORD первый старт admin / генерируется Bootstrap-админ (только при пустой таблице users) оба
COOKIE_SECURE нет авто (true в production) Флаг Secure у session cookie оба
CORS_ORIGINS нет пусто (same-origin) Origins через запятую; wildcard никогда оба
REDIS_URL compose: да redis://localhost:6379/0 Включает JWT-blacklist, блокировку при неудачных входах, WS presence, leader election оба
REDIS_PASSWORD нет пусто Пароль Redis; применяется, когда REDIS_URL не содержит учётные данные в самой строке (redis_factory.py) оба
JWT_BLACKLIST_FAIL_CLOSED нет true Отвергать токены при недоступном Redis оба

Криптография

Параметр Обязателен По умолчанию Описание Издание
ENCRYPTION_KEY да в production dev: автогенерация /data/secret.key Fernet-ключ (KEK) для шифрования учётных данных/секретов; отсутствие или невалидность в production — ошибка старта оба
PLUGIN_SIGNING_KEY для подписи — Включает подпись модулей (POST /api/admin/modules/sign) оба
PLUGIN_REQUIRE_SIGNATURE нет true Отвергать неподписанные загрузки модулей оба
SYNC_SIGNING_KEY для sync — (sync выключен) HMAC для sync между экземплярами; должен совпадать на всех экземплярах оба
AUDIT_INTEGRITY_KEY нет — HMAC-отпечатки событий timeline (GET /api/admin/audit/verify) оба
OLD_KEY / NEW_KEY только rekey — Потребляются backend/scripts/rekey.py при ротации ключа оба

Интеграции и инфраструктура

Параметр Обязателен По умолчанию Описание Издание
WEBHOOK_HMAC_SECRET для вебхуков — (вебхуки выключены) Fail-closed HMAC для /api/webhooks/{token} оба
PUBLIC_BASE_URL рекомендован из Host запроса Канонический внешний URL (redirect_uri OIDC, колбэки workstation) оба
PLATFORM_HOST нет пусто Запасная база колбэков для хуков действий workstation (http://<host>:8888), используется, когда PUBLIC_BASE_URL не задан (core/workstation/actions.py) оба
OUTBOUND_PROXY нет — (или настройка в БД) HTTP(S)-прокси для исходящего трафика оба
REGISTRY_URL / REGISTRY_EXTERNAL_URL / REGISTRY_USER / REGISTRY_PASS нет http://registry:5000 / — / "" Внутренний Docker-реестр для infra-образов оба
KUBECONFIG_PATH / KUBECTL_TIMEOUT нет — / 60 Доступ kubectl для методов развёртывания k8s оба
EVIDENCE_BACKEND + S3_* / EVIDENCE_LOCAL_DIR для S3 local / /data/evidence Бэкенд хранилища evidence (S3/Minio) оба
DNS_SERVER_1 / DNS_SERVER_2 нет 8.8.8.8 / 1.1.1.1 DNS для контейнера бэкенда (уровень compose) оба
DOCKER_HOST / DOCKER_SOCKET нет unix:///var/run/docker.sock Доступ к Docker API для управления экземплярами оба

Аудит и логирование

Параметр Обязателен По умолчанию Описание Издание
AUDIT_LOG_DIR нет UPLOAD_ROOT/audit Append-only JSONL-зеркало событий timeline оба
AUDIT_S3_BUCKET / AUDIT_S3_PREFIX / AUDIT_S3_ENDPOINT_URL + AWS_* для S3 — / timeline/ WORM-форвардинг audit-событий оба

Высокая доступность (сторона приложения; рецепт — в EE)

Параметр По умолчанию Описание
REDIS_SENTINEL_HOSTS — Включает Sentinel (приоритетнее REDIS_URL)
REDIS_SENTINEL_MASTER mymaster (рецепт: umbryx-master) Имя отслеживаемого master
REDIS_SENTINEL_PASSWORD — Аутентификация Sentinel
HA_MONITOR_HOST/PORT/DB/USER/PASSWORD — / 5433 / pg_auto_failover Read-only монитор pg_auto_failover для HA-страницы

Все пять читаются кодом обоих изданий; упакованный HA-рецепт (docker-compose.ha.yml, режимы установщика) — EE.

Только EE

Параметр Обязателен По умолчанию Описание
INFRA_TLS_VERIFY нет true Верификация TLS в infra-provisioning (opt-out для lab-самоподписанных; подключение C2-агента всегда верифицируется)
INFRA_SSH_KNOWN_HOSTS нет /data/infra_known_hosts TOFU known-hosts для infra SSH
UMBRYX_VERIFY_DEPLOY нет 1 Проверка работоспособности после развёртывания (вкл/выкл)
Umbryx_STATE_DIR нет /data/infra_states Каталог состояния cloud-provisioning (нестандартный регистр имени — известная особенность исходников)
LICENSE_SERVER_URL нет https://update.umbryx.pro Endpoint license-heartbeat (читается кодом обоих изданий; лицензию продлевает токеном только EE)

Порты и build-time (только compose-слой)

Параметр По умолчанию Описание
PORT 3000 Публикуемый HTTP-порт
HTTPS_PORT 3443 Опциональный вариант терминации TLS (закомментирован; используйте reverse proxy)
DATA_DIR ./data Хост-путь, монтируемый в /data
BACKEND_IMAGE / FRONTEND_IMAGE / IMAGE_TAG umbryx-backend / umbryx-frontend / latest Развёртывание готовых образов (лицензируемый реестр EE)
UMBRYX_EDITION авто (по дереву) Издание фронта на этапе сборки (ce форсирует Core)

Все секреты в примерах — плейсхолдеры; никогда не коммитьте реальные значения. Ротируйте всё, что идёт в .env.example, до промышленной эксплуатации.