Перейти до вмісту

Змінні середовища Capka

Змінні середовища призначені для deployment-рівня: root secrets, маршрутизації хоста, жорстких security-обмежень, ресурсів, retention та observability.

Перед редагуванням .env

Підтримуваний шлях self-hosting — npm run up або scripts/up.sh. Під час першого запуску скрипт створює сильні значення обов’язкових секретів і не перезаписує вже наявні значення в .env. Для локальної розробки npm run docker:dev дає loopback-only defaults без копіювання production-файла.

Для прямого production docker compose up, Coolify чи іншого orchestrator задайте обов’язкові секрети самостійно. Не додавайте .env у git; збережіть ті самі значення в password manager або secret store.

Безпечне застосування змін

  • Зробіть backup бази та постійних даних перед зміною storage, retention або version settings.
  • Після редагування .env виконайте docker compose up -d і перевірте docker compose ps та логи сервісів.
  • Змінюйте по одній ризиковій групі: secrets, routing, sandbox security, а вже потім resource tuning.
  • Не обертайте CAPKA_MASTER_KEY без окремого плану: це root key для зашифрованих ключів провайдерів.

Ефективні значення для стандартного розгортання відповідають docker-compose.yml. Компонент, запущений поза Compose, іноді має інший внутрішній fallback.

Обов’язкові секрети та адреса

POSTGRES_PASSWORD# Типово required

Пароль Postgres. Compose формує з нього DATABASE_URL; у production немає fallback.

CONTROLLER_SECRET# Типово required

Спільний секрет платформи й sandbox-controller. Згенеруйте 64 hex-символи через openssl rand -hex 32.

CAPKA_MASTER_KEY# Типово required

64-символьний hex-ключ для шифрування ключів провайдерів; він зберігається поза базою даних.

SETUP_TOKEN# Типово conditional

Обов'язковий для інстансу, доступного не лише з loopback. Не дає першому відвідувачу забрати обліковий запис адміністратора.

ALLOW_DB_MASTER_KEY# Типово false

Аварійний небезпечний fallback: дозволяє ключ у базі, якщо немає CAPKA_MASTER_KEY. Не використовуйте у production.

DATABASE_URL# Типово Compose-generated

Потрібний лише коли застосунок працює поза готовим Compose-стеком; значення — PostgreSQL connection URL.

PUBLIC_URL# Типово request-derived

Канонічний публічний origin без кінцевого /. За production proxy задайте явно для auth callback та абсолютних посилань.

Розгортання, маршрутизація та TLS

CAPKA_VERSION# Типово latest

Тег опублікованого релізу для platform, controller і sandbox images. Зафіксуйте тег для контрольованих оновлень.

PLATFORM_PORT# Типово 3000

Порт хоста, на якому публікується контейнер платформи.

PLATFORM_BIND# Типово 0.0.0.0

Інтерфейс для опублікованого порту. Використайте 127.0.0.1, якщо Capka стоїть за reverse proxy на тому самому хості.

DOMAIN# Типово unset

Домен для npm run up; вмикає Caddy-профіль та автоматичний HTTPS.

ACME_EMAIL# Типово unset

Необов'язковий email ACME. Разом із DOMAIN інсталятор може додати ZeroSSL як резервний issuer.

DOCKER_SOCKET# Типово rootful socket

Шлях до Docker socket на хості. Потрібен, коли стек використовує rootless Docker daemon.

BETTER_AUTH_URL# Типово deprecated

Застарілий alias для PUBLIC_URL. Якщо задані обидва, перемагає PUBLIC_URL.

Ізоляція та доступ пісочниці

SANDBOX_RUNTIME# Типово runc

Використовуйте runsc лише після встановлення gVisor на хості. Secure profile не запускається, якщо runtime відсутній.

SANDBOX_ALLOW_NETWORK# Типово true

Deployment-рівень дозволу мережі. false забороняє egress, навіть якщо адміністратор увімкне його в UI.

SANDBOX_EGRESS_ALLOW# Типово unset

Список дозволених HTTPS-хостів через кому. Підтримує точні хости, *.example.com та необов'язкові порти.

SANDBOX_EGRESS_SUBNET# Типово 10.201.7.0/24

Внутрішня підмережа allowlist-egress. Змінюйте лише при конфлікті з маршрутом хоста.

SANDBOX_EGRESS_PROXY_IP# Типово 10.201.7.2

Фіксована адреса egress-proxy; має належати до SANDBOX_EGRESS_SUBNET.

SANDBOX_MOUNT_ALLOW# Типово unset

Корені хоста через :, які адміністратори можуть монтувати після ввімкнення folder access. Рекомендовано для multi-admin інстансів.

Ресурси та життєвий цикл пісочниці

SANDBOX_MEMORY_MB# Типово 1024 in Compose

RAM на одну пісочницю разом із tmpfs. Внутрішній fallback controller поза Compose — 512 MB.

SANDBOX_CPUS# Типово 1.0

CPU cores на пісочницю; дозволені дробові значення, наприклад 0.5.

SANDBOX_PIDS_LIMIT# Типово 1024

Ліміт процесів і потоків. Під gVisor це high-water mark; значення нижче приблизно 128 можуть ламати rendering.

MAX_SESSIONS_PER_USER# Типово 2 in Compose

Одночасні запущені пісочниці на користувача; при ліміті витісняється LRU-сесія. Внутрішній fallback: 5.

SANDBOX_IDLE_TTL_MS# Типово 900000

Час до зупинки idle-контейнера: 15 хвилин. Файли workspace та запис у базі лишаються.

SANDBOX_BUSY_LEASE_MS# Типово 3600000

Lease, який оновлює активна фонова задача: 1 година.

SANDBOX_BUSY_MAX_MS# Типово 21600000

Максимальний busy-hold від початку lease: 6 годин.

WORKSPACE_TTL_MS# Типово 2592000000

Видалення workspace після 30 днів без використання.

GC_GRACE_MS# Типово 604800000 in Compose

Grace для каталогу без запису в базі: 7 днів у Compose; внутрішній fallback — 1 година.

Сховище та зберігання даних

VAULT_CAS_DIR# Типово /app/data/vault-cas

Корінь content-addressed blob store для vault.

TASK_RETENTION_DAYS# Типово 30

Дні зберігання завершених, помилкових і скасованих задач. 0 — безстроково.

USAGE_RETENTION_DAYS# Типово 365

Дні зберігання фіналізованої історії usage ledger. 0 — безстроково.

AUDIT_RETENTION_DAYS# Типово 365

Дні зберігання governance audit events. 0 — безстроково.

DB_RETENTION_BATCH_SIZE# Типово 1000

Кількість рядків у bounded batch щоденного очищення.

JOBS_KEEP_DIRS# Типово 20

Кількість каталогів логів фонових задач на workspace; 0 не зберігає жодного.

JOB_LOG_CAP_MB# Типово 10

Максимальний розмір одного логу фонової задачі.

VIEW_KEEP_DIRS# Типово 4

Кількість rendered-каталогів view_file на workspace; 0 не зберігає жодного.

OUTPUT_KEEP_FILES# Типово 5

Кількість збережених файлів tool output на workspace; 0 не зберігає жодного.

OUTPUT_FILE_CAP_MB# Типово 10

Максимальний розмір одного збереженого файла tool output.

Агент, streaming та workers

FORCE_TEXT_AFTER_STEPS# Типово MAX_AGENT_STEPS − 5

Крок, після якого довгий цикл припиняє tools і пише відповідь; обмежується загальним step ceiling.

MAX_AGENT_STEPS# Типово 25

Жорсткий ліміт tool-calling кроків одного turn.

TASK_TIMEOUT_MINUTES# Типово 20

Wall-clock ліміт одного turn разом із tool calls.

WRAP_UP_AFTER_FRACTION# Типово 0.8

Частка time budget, після якої агент перестає запускати tools і завершує відповідь.

MAX_TOOL_OUTPUT_CHARS# Типово 30000

Ліміт символів одного результату інструмента.

MAX_TURN_TOOL_OUTPUT_CHARS# Типово 400000

Сумарний ліміт символів tool output за один turn.

MAX_TOOL_OUTPUT_LINES# Типово 1500

Ліміт рядків для одного читання файла.

STREAM_IDLE_SECONDS# Типово 60

Тиша до визнання model stream завислим; одна повторна спроба отримує подвоєне вікно.

MAX_STREAM_RECOVERIES# Типово 3

Кількість повторних streaming-спроб після зависань; 0 вимикає recovery.

WORKER_MAX_CONCURRENCY# Типово 3

Кількість turn, які інстанс виконує одночасно. Per-user fairness queue немає.

PG_POOL_MAX# Типово 20

Розмір Postgres pool платформи. Він має бути помітно більшим за worker concurrency.

CAPKA_STREAM_USAGE# Типово true

Ставте false лише для OpenAI-сумісного gateway, який ламається від запиту stream usage.

MCP-конектори

MAX_MCP_MEDIA_BYTES# Типово 5242880

Найбільший MCP media payload inline; 0 завжди переносить media у файл.

MAX_MCP_TOOL_DESC_CHARS# Типово 1024

Максимальна довжина опису одного MCP tool.

MCP_ALWAYS_LOAD# Типово unset

Імена конекторів через кому, tools яких завжди завантажуються eagerly, а не через find_tool.

MCP_DEFER_TOKEN_PCT# Типово 10

Відсоток context window, після якого connector schemas відкладаються.

MCP_DEFER_TOKEN_MAX# Типово 8192

Абсолютний token cap для always-loaded connector schemas; 0 лишає тільки percentage gating.

Tracing і telemetry

OTEL_EXPORTER_OTLP_ENDPOINT# Типово unset

OTLP HTTP endpoint. Без значення agent tracing вимкнений і не має exporter overhead.

OTEL_EXPORTER_OTLP_HEADERS# Типово unset

OTLP request headers через кому, наприклад authorization header для backend.

OTEL_SERVICE_NAME# Типово capka

Назва сервісу в експортованих spans.

CAPKA_TELEMETRY_CONTENT# Типово false

Додає prompts, completions, tool arguments, results і sandbox commands. Це може розкрити роботу користувачів.

CAPKA_TELEMETRY_CONTENT_REMOTE# Типово false

Друга явна згода, без якої content не експортується на віддалений host.

CAPKA_TELEMETRY_COST# Типово false

Експортує оцінену вартість у USD; внутрішній usage ledger лишається джерелом фінансової правди.

CAPKA_TELEMETRY_SPAN_PREFIXES# Типово capka.,ai.

Префікси span names для експорту; * експортує всі spans, включно з framework spans.

CAPKA_TELEMETRY_EXTRA_ATTRIBUTES# Типово unset

Додаткові точні attribute keys або prefix-форми, дозволені export allowlist.

Необов’язкові можливості

CAPKA_SHARE_IMPORT# Типово false

Дозволяє імпортувати публічне share-посилання claude.ai або chatgpt.com у чат.


Вихідний код Capka · Повна документація для LLM