Files
crank/docs/runtime-config.md
github-ops c77065756d
Deploy / deploy (push) Successful in 1m42s
CI / Rust Checks (push) Successful in 6m9s
CI / UI Checks (push) Successful in 5s
CI / Deployment Manifests (push) Successful in 2s
CI / Frontend E2E (push) Successful in 4m42s
Refresh community demo and docs
2026-06-21 11:20:12 +00:00

4.5 KiB

Настройки окружения

Crank настраивается через переменные окружения. Один и тот же набор переменных используется при запуске из исходников и при запуске готовых Docker-образов.

PostgreSQL

Обязательные параметры:

  • POSTGRES_HOST
  • POSTGRES_PORT
  • POSTGRES_DB
  • POSTGRES_USER
  • POSTGRES_PASSWORD

Параметры пула соединений:

  • POSTGRES_MAX_CONNECTIONS, по умолчанию 20;
  • POSTGRES_MIN_CONNECTIONS, по умолчанию 2;
  • POSTGRES_ACQUIRE_TIMEOUT_MS, по умолчанию 5000;
  • POSTGRES_IDLE_TIMEOUT_MS, по умолчанию 600000;
  • POSTGRES_MAX_LIFETIME_MS, по умолчанию 1800000.

Если используется PgBouncer, укажите его адрес в POSTGRES_HOST и порт в POSTGRES_PORT.

HTTP-сервисы

  • CRANK_ADMIN_BIND - адрес admin-api, например 0.0.0.0:3001.
  • CRANK_MCP_BIND - адрес mcp-server, например 0.0.0.0:3002.
  • CRANK_PUBLISH_BIND - адрес публикации портов в Docker Compose.
  • CRANK_BASE_URL - публичный URL веб-интерфейса.

Для сервера за reverse proxy обычно подходит:

CRANK_PUBLISH_BIND=127.0.0.1

Если reverse proxy работает на другом host:

CRANK_PUBLISH_BIND=0.0.0.0

Авторизация администратора

  • CRANK_SESSION_SECRET - ключ подписи браузерных сессий.
  • CRANK_PASSWORD_PEPPER - дополнительный секрет для хэширования паролей.
  • CRANK_SESSION_TTL_HOURS - срок жизни сессии в часах.
  • CRANK_BOOTSTRAP_ADMIN_EMAIL - email первого пользователя.
  • CRANK_BOOTSTRAP_ADMIN_PASSWORD - пароль первого пользователя.
  • CRANK_BOOTSTRAP_ADMIN_DISPLAY_NAME - отображаемое имя первого пользователя.

Первый пользователь создается или обновляется при старте admin-api.

Шифрование секретов

  • CRANK_MASTER_KEY - ключ шифрования сохраненных секретов.

Этот ключ нужен admin-api и mcp-server. Если изменить ключ без миграции данных, ранее сохраненные секреты нельзя будет расшифровать.

Демо-данные

  • CRANK_DEMO_SEED=true создает пример Frankfurter при старте.
  • CRANK_DEMO_SEED=false отключает demo seed.

Demo seed идемпотентный: повторный старт не создает дубликаты. В стандартном примере создаются upstream Frankfurter, операция frankfurter_latest_rate, агент currency-rates и пример API-ключа.

MCP

  • CRANK_MCP_REFRESH_MS - как часто mcp-server обновляет опубликованный каталог инструментов.
  • CRANK_MCP_RATE_LIMIT_RPS - лимит запросов в секунду.
  • CRANK_MCP_RATE_LIMIT_BURST - допустимый короткий всплеск запросов.

Admin API

  • CRANK_ADMIN_RATE_LIMIT_RPS - лимит запросов в секунду.
  • CRANK_ADMIN_RATE_LIMIT_BURST - допустимый короткий всплеск запросов.

Runtime limits

  • CRANK_RUNTIME_MAX_CONCURRENT_UNARY
  • CRANK_RUNTIME_MAX_CONCURRENT_WINDOW
  • CRANK_RUNTIME_MAX_CONCURRENT_SESSIONS
  • CRANK_RUNTIME_MAX_CONCURRENT_JOBS

Эти настройки ограничивают параллельное выполнение операций и служебных задач.

Кэш

По умолчанию Crank работает без внешнего кэша:

CRANK_CACHE_BACKEND=memory

Для Valkey или Redis:

CRANK_CACHE_BACKEND=valkey
CRANK_CACHE_URL=redis://valkey:6379/0
CRANK_CACHE_DEFAULT_TTL_MS=60000

Внешний кэш используется для служебного краткоживущего состояния: rate limiting, replay guard и опубликованные каталоги MCP-инструментов.

Логи

  • CRANK_LOG_LEVEL - уровень логирования, например info, debug, warn.

Пример:

CRANK_LOG_LEVEL=info