Перейти к основному содержимому

Переменные окружения серверной поставки CodeGraph

Сверьте параметры серверной установки CodeGraph со значениями образца .env и резервными значениями Docker Compose перед запуском сервисов.

Начало работы

Этот справочник нужен администратору серверной установки. Он перечисляет все имена из поставляемого .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-серверов. Диапазоны адресов и шаблоны с * не поддерживаются.

База данных, API и браузер
Переменная Образец Резерв 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.

Провайдеры моделей и OpenViking
Переменная Образец Резерв 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.

Git и учётные данные интеграций
Переменная Образец Резерв 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

Эти параметры определяют метки развёртывания, версии образов и ограничения логов.

Развёртывание и 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 вашей версии.