Этот справочник нужен администратору серверной установки. Он перечисляет все имена из
поставляемого .env.example и подстановок docker-compose.yml текущей версии.
Настраивайте их в защищённом /opt/codegraph/.env только для включённых сервисов и функций.
В столбце «Образец» показано значение из .env.example. Перед запуском нужных
сервисов задайте учётные данные и замените адреса примера адресами своей установки.
«Резерв Compose» применяется, когда переменная не задана.
Если переменная задана пустой строкой, Compose может использовать резервное значение
при форме ${VARIABLE:-value}. Прочерк означает отсутствие значения в данном источнике;
«нет резерва» означает прямую подстановку ${VARIABLE}: при отсутствии значения
Compose предупреждает и подставляет пустую строку. Для включённых сервисов задайте
нужные секреты в .env. В config.yaml выберите провайдера и включите функции,
которые будут использовать эти учётные данные.
Для настройки по шагам см. Конфигурацию развёртывания.
Не публикуйте рабочий .env и не вставляйте секреты в обращения поддержки.
База данных, API и браузер
Здесь находятся параметры базы данных, начального администратора, браузерного доступа,
публичных адресов API и разрешённых Git-серверов. Замените адреса codegraph.ru
адресами своего развёртывания, если соответствующие интерфейсы доступны пользователям.
CODEGRAPH_OUTBOUND_GIT_ORIGIN_ALLOWLIST принимает точные HTTPS-источники (схема, имя хоста и порт) через запятую, например
https://git.internal.example,https://git2.internal.example:8443. Пустое значение
запрещает исключения для внутренних Git-серверов. Диапазоны адресов и шаблоны с * не поддерживаются.
| Переменная | Образец | Резерв Compose |
|---|---|---|
API_ADMIN_PASSWORD |
пусто | нет резерва |
API_PROVIDER_SECRET_KEY |
пусто | пусто |
API_ADMIN_USERNAME |
admin |
admin |
API_ALLOWED_HOSTS |
localhost,127.0.0.1,::1,api,codegraph-api,api.codegraph.ru,codegraph.ru |
localhost,127.0.0.1,::1,api,codegraph-api,api.codegraph.ru,codegraph.ru |
API_JWT_SECRET |
пусто | нет резерва |
CODEGRAPH_AGENT_PLUGIN_MCP_PUBLIC_URL |
https://api.codegraph.ru/agent-plugin/mcp |
https://api.codegraph.ru/agent-plugin/mcp |
CODEGRAPH_API_BIND |
— | 8000 |
CODEGRAPH_DASHBOARD_INLINE_ENTRY_ASSETS |
— | 1 |
CODEGRAPH_FRONTEND_BIND |
— | 3100 |
CODEGRAPH_MCP_OAUTH_ISSUER |
https://api.codegraph.ru/api/v1/auth/mcp |
https://api.codegraph.ru/api/v1/auth/mcp |
CODEGRAPH_MCP_PUBLIC_URL |
https://api.codegraph.ru/mcp |
https://api.codegraph.ru/mcp |
CODEGRAPH_MCP_REMOTE_AUTH_MODE |
oauth |
legacy |
CODEGRAPH_OUTBOUND_GIT_ORIGIN_ALLOWLIST |
пусто | пусто |
CORS_ALLOWED_ORIGINS |
пусто | пусто |
ENVIRONMENT |
production |
— |
LOG_LEVEL |
INFO |
INFO |
MCP_HTTP_BIND |
— | 127.0.0.1:27495 |
POSTGRES_PASSWORD |
пусто | нет резерва |
Провайдеры моделей и OpenViking
Ключи задавайте только для выбранных провайдеров. OPENVIKING_CONFIG_TEMPLATE
выбирает файл шаблона; OPENVIKING_API_KEY защищает его API. Чтобы локально строить векторные представления и повторно ранжировать результаты,
дополнительно выберите профиль COMPOSE_PROFILES=local-models.
| Переменная | Образец | Резерв Compose |
|---|---|---|
CODEGRAPH_EMBED_MODEL_REVISION |
— | dd76d535f5447ca3897a9c893fb1e612ead98192 |
CODEGRAPH_RERANK_MODEL_REVISION |
— | d7d7e73b6ea138ced340b83865931b5dfb6c97aa |
GIGACHAT_AUTH_KEY |
пусто | пусто |
GIGACHAT_BASE_URL |
https://gigachat.devices.sberbank.ru/api/v1 |
https://gigachat.devices.sberbank.ru/api/v1 |
GIGACHAT_BILLING_ACCOUNT_ID |
пусто | пусто |
GIGACHAT_BILLING_MODE |
auto |
auto |
GIGACHAT_CA_BUNDLE_FILE |
пусто | пусто |
GIGACHAT_CLIENT_ID |
пусто | пусто |
GIGACHAT_CREDENTIALS |
пусто | пусто |
GIGACHAT_MODEL |
GigaChat-2-Pro |
GigaChat-2-Pro |
GIGACHAT_SCOPE |
GIGACHAT_API_PERS |
GIGACHAT_API_PERS |
GIGACHAT_SPACE_ID |
пусто | пусто |
GIGACHAT_TIMEOUT |
60.0 |
60.0 |
GIGACHAT_VERIFY_SSL_CERTS |
true |
true |
OPENAI_API_KEY |
пусто | — |
OPENVIKING_API_KEY |
— | нет резерва / пусто |
OPENVIKING_BASE_URL |
— | http://openviking:1933 |
OPENVIKING_BOT_BIND |
— | 127.0.0.1:8020 |
OPENVIKING_BOT_PORT |
— | 8020 |
OPENVIKING_CA_BUNDLE |
— | пусто |
OPENVIKING_CLIENT_CERT |
— | пусто |
OPENVIKING_CLIENT_KEY |
— | пусто |
OPENVIKING_CONFIG_TEMPLATE |
— | ov.conf |
OPENVIKING_HTTP_BIND |
— | 127.0.0.1:1933 |
OPENVIKING_IMAGE_TAG |
— | v0.4.16 |
OPENVIKING_WITH_BOT |
— | 0 |
PRELOAD_EMBEDDING_MODEL |
— | 0 |
YANDEX_API_KEY |
пусто | нет резерва / пусто |
YANDEX_BILLING_ACCOUNT_ID |
— | пусто |
YANDEX_FOLDER_ID |
пусто | нет резерва / пусто |
YANDEX_IAM_TOKEN |
— | пусто |
YANDEX_SERVICE_ACCOUNT_KEY_PATH |
— | пусто |
Оркестрация и финансовые артефакты
Эти параметры управляют Temporal, передачей задач и проверкой финансовых артефактов.
Ключи подписи и проверки задавайте из одобренного хранилища секретов.
TEMPORAL_WORKER_CONTAINER_MEMORY_LIMIT ограничивает память контейнера temporal-worker;
его резервное значение — 4G. Учитывайте этот лимит вместе с лимитами GoCPG ниже.
| Переменная | Образец | Резерв Compose |
|---|---|---|
CODEGRAPH_CODEX_PLATFORM_ROOT_USAGE_ATTESTATION_ISSUER_ID |
пусто | — |
CODEGRAPH_CODEX_PLATFORM_ROOT_USAGE_ATTESTATION_KEY_ID |
пусто | — |
CODEGRAPH_CODEX_PLATFORM_ROOT_USAGE_ATTESTATION_PUBLIC_KEY |
пусто | — |
CODEGRAPH_CODEX_PLATFORM_SUBAGENT_ATTESTATION_PUBLIC_KEY |
пусто | — |
CODEGRAPH_EVA_ARTIFACT_SIGNING_KEY_FILE |
./secrets/eva/eva-artifact-signing.key |
— |
CODEGRAPH_EVA_HOOK_ARTIFACT_DIR |
./data/eva/artifacts |
— |
CODEGRAPH_EVA_PROVIDER_OUTBOX_HMAC_KEY_B64 |
пусто | нет резерва |
CODEGRAPH_EVA_PROVIDER_OUTBOX_HMAC_KEY_ID |
пусто | нет резерва |
CODEGRAPH_EVA_PROVIDER_OUTBOX_HMAC_VERIFICATION_KEYS_JSON |
{} |
{} |
CODEGRAPH_HANDOFF_EXECUTION_MODE |
auto |
— |
CODEGRAPH_LOCAL_OPERATOR_HANDOFF_BINDING |
пусто | — |
CODEGRAPH_PROVIDER_WORKER_HANDOFF_BINDING |
пусто | — |
TEMPORAL_ADDRESS |
— | temporal:7233 |
TEMPORAL_ENABLED |
true |
true |
TEMPORAL_GRPC_BIND |
— | 127.0.0.1:7233 |
TEMPORAL_MODE |
shadow |
shadow |
TEMPORAL_NAMESPACE |
default |
default |
TEMPORAL_OUTBOX_DISPATCHER_ENABLED |
true |
true |
TEMPORAL_SERVER_VERSION |
— | 1.29.3 |
TEMPORAL_UI_BIND |
— | 127.0.0.1:8233 |
TEMPORAL_UI_URL |
— | http://localhost:8233 |
TEMPORAL_UI_VERSION |
— | 2.50.0 |
TEMPORAL_WORKER_CONTAINER_MEMORY_LIMIT |
— | 4G |
TEMPORAL_WORKER_ROLE |
all |
all |
Git и учётные данные интеграций
Здесь задаются подключения GitVerse и GitHub, а также параметры GoCPG. Для GitLab используйте разрешённый HTTPS-источник выше и задайте секрет подключения через интерфейс или API.
| Переменная | Образец | Резерв Compose |
|---|---|---|
CODEGRAPH_GITHUB_API_TOKEN |
пусто | пусто |
DUCKDB_VERSION |
— | 1.5.5 |
GITVERSE_API_URL |
— | https://api.gitverse.ru |
GITVERSE_ENABLED |
false |
false |
GITVERSE_TOKEN |
— | пусто |
GITVERSE_WEBHOOK_SECRET |
— | пусто |
GOCPG_GRPC_BIND |
— | 127.0.0.1:50051 |
GOCPG_SKIP_TESTS |
— | true |
GOCPG_CONTAINER_MEMORY_LIMIT |
4G |
4G |
GOCPG_DUCKDB_BULK_MEMORY_LIMIT |
2GB |
2GB |
GOCPG_DUCKDB_READONLY_MEMORY_LIMIT |
1GB |
1GB |
GOCPG_SOURCE_PATH |
. |
— |
OAUTH_GITVERSE_CLIENT_ID |
пусто | пусто |
OAUTH_GITVERSE_CLIENT_ID_VAULT_KEY |
client_id |
client_id |
OAUTH_GITVERSE_CLIENT_SECRET |
пусто | пусто |
OAUTH_GITVERSE_CLIENT_SECRET_VAULT_KEY |
client_secret |
client_secret |
OAUTH_GITVERSE_SERVER_URL |
https://gitverse.ru |
https://gitverse.ru |
OAUTH_GITVERSE_SERVER_URL_VAULT_KEY |
server_url |
server_url |
OAUTH_GITVERSE_VAULT_PATH |
пусто | пусто |
Память GoCPG и DuckDB
GOCPG_CONTAINER_MEMORY_LIMIT задаёт общий лимит памяти контейнера gocpg.
GOCPG_DUCKDB_BULK_MEMORY_LIMIT ограничивает память DuckDB при построении и обновлении
CPG, а GOCPG_DUCKDB_READONLY_MEMORY_LIMIT — при чтении. CPG — граф свойств кода,
который CodeGraph использует для анализа проекта. Оба лимита DuckDB передаются
контейнерам api, mcp, temporal-worker и gocpg: эти службы могут запускать
нативный анализатор или читать CPG.
Лимит DuckDB не ограничивает всю память процесса. Парсер, граф и анализаторы
GoCPG также занимают память. Оставьте для них запас внутри лимита контейнера;
сумма лимитов контейнеров и потребностей остальных служб должна укладываться
в доступную память сервера. Начните с 8G / 3GB / 1GB, измерьте потребление
на своём проекте и скорректируйте лимиты по результатам.
На сервере с Docker Compose, из каталога поставки, добавьте в существующий
файл .env следующие строки. Не заменяйте остальные настройки и секреты:
GOCPG_CONTAINER_MEMORY_LIMIT=8G
GOCPG_DUCKDB_BULK_MEMORY_LIMIT=3GB
GOCPG_DUCKDB_READONLY_MEMORY_LIMIT=1GB
Дождитесь завершения текущих импортов и аудитов. В Bash (Linux/macOS) или
PowerShell выполните команды из того же каталога. Если поставка использует
дополнительные Compose-файлы, укажите те же -f при перезапуске:
docker compose up -d --no-build --no-deps api mcp temporal-worker gocpg
docker compose exec -T gocpg sh -c 'printenv GOCPG_DUCKDB_BULK_MEMORY_LIMIT GOCPG_DUCKDB_READONLY_MEMORY_LIMIT'
docker inspect codegraph-gocpg --format '{{.HostConfig.Memory}}'
docker stats --no-stream codegraph-api codegraph-mcp codegraph-temporal-worker codegraph-gocpg
При этих значениях printenv выводит 3GB и 1GB, а docker inspect —
8589934592 (8 ГиБ в байтах). Повторите аудит и наблюдайте потребление памяти.
После сбоя проверьте события Docker: автоматический перезапуск может скрыть
предыдущий OOM в текущем состоянии контейнера.
docker events --since 30m --until 0s --filter container=codegraph-gocpg --filter event=oom
Если GoCPG запускается напрямую вне этой Compose-поставки, значения по умолчанию
в нативном коде — 8GB для записи и 4GB для чтения. Переменные DuckDB переопределяют
их, а GOCPG_CONTAINER_MEMORY_LIMIT действует только в Compose.
Безопасность и хранилище секретов
Флаги включают защитные функции, а параметры Vault и mTLS задают способ получения секретов и проверки клиентских сертификатов.
| Переменная | Образец | Резерв Compose |
|---|---|---|
DLP_ENABLED |
true |
true |
RELEASE_CONTROL_ENABLED |
false |
false |
SECURITY_ENABLED |
true |
true |
SERVICE_ACCOUNT_MTLS_ENABLED |
false |
false |
SERVICE_ACCOUNT_MTLS_FINGERPRINT_HEADER |
X-Client-Cert-Fingerprint |
X-Client-Cert-Fingerprint |
SERVICE_ACCOUNT_MTLS_REQUIRED_INTERFACES |
["grpc","acp"] |
["grpc","acp"] |
SERVICE_ACCOUNT_MTLS_SUBJECT_HEADER |
X-Client-Cert-Subject |
X-Client-Cert-Subject |
SIEM_ENABLED |
false |
false |
VAULT_ADDR |
http://localhost:8200 |
http://localhost:8200 |
VAULT_AUTH_METHOD |
token |
token |
VAULT_ENABLED |
false |
false |
VAULT_KUBERNETES_ROLE |
пусто | пусто |
VAULT_ROLE_ID |
пусто | пусто |
VAULT_SECRETS_MOUNT |
secret |
secret |
VAULT_SECRET_ID |
пусто | пусто |
VAULT_TLS_VERIFY |
true |
true |
VAULT_TOKEN |
пусто | пусто |
Мониторинг и уведомления
Адреса Sentry, почты и метрик в образце относятся к примерному окружению; замените их адресами своей инфраструктуры перед включением соответствующих сервисов.
| Переменная | Образец | Резерв Compose |
|---|---|---|
ALERTMANAGER_BIND |
— | 127.0.0.1:9093 |
ALERTMANAGER_CONFIG_FILE |
— | ./monitoring/alertmanager.yml |
ALERTMANAGER_CREDENTIALS_FILE |
— | ./secrets/leads-api-key.txt |
ALERTMANAGER_WEBHOOK_URL |
http://localhost:9095/alert |
— |
DASHBOARD_EMAIL_FROM |
hello@codegraph.ru |
пусто |
DASHBOARD_EMAIL_TO |
пусто | пусто |
DASHBOARD_SMTP_HOST |
smtp.yandex.ru |
пусто |
DASHBOARD_SMTP_PASSWORD |
пусто | пусто |
DASHBOARD_SMTP_PORT |
587 |
587 |
DASHBOARD_SMTP_USER |
пусто | пусто |
DASHBOARD_TELEGRAM_CHAT_ID |
— | пусто |
DASHBOARD_TELEGRAM_TOKEN |
— | пусто |
DASHBOARD_WEBHOOK_AUTH_HEADER |
— | пусто |
DASHBOARD_WEBHOOK_URL |
— | пусто |
DORA_METRICS_REFRESH_ACTION_KIND |
dora_metrics_refresh |
dora_metrics_refresh |
DORA_METRICS_REFRESH_CADENCE |
0 6,18 * * * |
0 6,18 * * * |
DORA_METRICS_REFRESH_ENABLED |
true |
true |
DORA_METRICS_REFRESH_ENVIRONMENT |
prod |
prod |
DORA_METRICS_REFRESH_HTTP_TIMEOUT_SECONDS |
90.0 |
90.0 |
DORA_METRICS_REFRESH_ISSUE_LIMIT |
50 |
50 |
DORA_METRICS_REFRESH_PROVIDER_PROFILE |
yandex-cloud-sentry |
yandex-cloud-sentry |
DORA_METRICS_REFRESH_RETRY_ATTEMPTS |
5 |
5 |
DORA_METRICS_REFRESH_RETRY_BACKOFF_SECONDS |
10.0 |
10.0 |
DORA_METRICS_REFRESH_SERVICE_ACCOUNT_REF |
svc:scheduled-project-actions |
svc:scheduled-project-actions |
DORA_METRICS_REFRESH_STATS_PERIOD |
24h |
24h |
DORA_METRICS_REFRESH_TIMEZONE |
Asia/Yekaterinburg |
Asia/Yekaterinburg |
GRAFANA_ADMIN_PASSWORD |
пусто | нет резерва |
GRAFANA_ADMIN_USER |
admin |
admin |
GRAFANA_BIND |
— | 127.0.0.1:3000 |
GRAFANA_ROOT_URL |
http://localhost:3000 |
http://localhost:3000 |
PROMETHEUS_BIND |
— | 127.0.0.1:9090 |
PROMETHEUS_RETENTION_SIZE |
— | 5GB |
SENTRY_ALERT_EXPORTER_PORT |
9102 |
9102 |
SENTRY_ALERT_LEVELS |
error,fatal |
error,fatal |
SENTRY_AUTH_TOKEN |
пусто | пусто |
SENTRY_BASE_URL |
https://sentry.codegraph.ru |
https://sentry.codegraph.ru |
SENTRY_DSN |
пусто | пусто |
SENTRY_ENVIRONMENT |
production |
production |
SENTRY_ISSUE_ADMIN_TOKEN |
пусто | пусто |
SENTRY_ORG |
codegraph |
codegraph |
SENTRY_POLL_SECONDS |
60 |
60 |
SENTRY_PROJECT |
codegraph-backend |
codegraph-backend |
SENTRY_PROJECTS |
codegraph-backend,codegraph-frontend |
${SENTRY_PROJECT:-codegraph-backend} |
SENTRY_RELEASE |
пусто | пусто |
VITE_GITVERSE_ENABLED |
false |
false |
VITE_RELEASE_CONTROL_ENABLED |
false |
false |
VITE_SENTRY_DSN |
пусто | пусто |
VITE_SENTRY_ENVIRONMENT |
production |
production |
VITE_SENTRY_RELEASE |
пусто | пусто |
Развёртывание и Docker
Эти параметры определяют метки развёртывания, версии образов и ограничения логов.
| Переменная | Образец | Резерв Compose |
|---|---|---|
CODEGRAPH_DEPLOYED_AT |
пусто | пусто |
CODEGRAPH_DEPLOYED_BRANCH |
main |
main |
CODEGRAPH_DEPLOYED_COMMIT |
пусто | пусто |
CODEGRAPH_DEPLOYED_RELEASE_ID |
пусто | пусто |
CODEGRAPH_DOCKER_LOG_MAX_FILES |
— | 3 |
CODEGRAPH_DOCKER_LOG_MAX_SIZE |
— | 10m |
FRONTEND_NODE_IMAGE_TAG |
— | 22.18-bookworm-slim |
COMPOSE_PROFILES — переменная Docker Compose, а не подстановка в docker-compose.yml.
Её исходное значение пусто: дополнительные профили выключены. Для локальных моделей
задайте local-models; перечень профилей проверяйте в файле Compose вашей версии.