Пароль Postgres. Compose формує з нього DATABASE_URL; у production немає fallback.
Змінні середовища 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.
Жодна змінна не збігається.
Обов’язкові секрети та адреса
Спільний секрет платформи й sandbox-controller. Згенеруйте 64 hex-символи через openssl rand -hex 32.
64-символьний hex-ключ для шифрування ключів провайдерів; він зберігається поза базою даних.
Обов'язковий для інстансу, доступного не лише з loopback. Не дає першому відвідувачу забрати обліковий запис адміністратора.
Аварійний небезпечний fallback: дозволяє ключ у базі, якщо немає CAPKA_MASTER_KEY. Не використовуйте у production.
Потрібний лише коли застосунок працює поза готовим Compose-стеком; значення — PostgreSQL connection URL.
Канонічний публічний origin без кінцевого /. За production proxy задайте явно для auth callback та абсолютних посилань.
Розгортання, маршрутизація та TLS
Тег опублікованого релізу для platform, controller і sandbox images. Зафіксуйте тег для контрольованих оновлень.
Порт хоста, на якому публікується контейнер платформи.
Інтерфейс для опублікованого порту. Використайте 127.0.0.1, якщо Capka стоїть за reverse proxy на тому самому хості.
Домен для npm run up; вмикає Caddy-профіль та автоматичний HTTPS.
Необов'язковий email ACME. Разом із DOMAIN інсталятор може додати ZeroSSL як резервний issuer.
Шлях до Docker socket на хості. Потрібен, коли стек використовує rootless Docker daemon.
Застарілий alias для PUBLIC_URL. Якщо задані обидва, перемагає PUBLIC_URL.
Ізоляція та доступ пісочниці
Використовуйте runsc лише після встановлення gVisor на хості. Secure profile не запускається, якщо runtime відсутній.
Deployment-рівень дозволу мережі. false забороняє egress, навіть якщо адміністратор увімкне його в UI.
Список дозволених HTTPS-хостів через кому. Підтримує точні хости, *.example.com та необов'язкові порти.
Внутрішня підмережа allowlist-egress. Змінюйте лише при конфлікті з маршрутом хоста.
Фіксована адреса egress-proxy; має належати до SANDBOX_EGRESS_SUBNET.
Корені хоста через :, які адміністратори можуть монтувати після ввімкнення folder access. Рекомендовано для multi-admin інстансів.
Ресурси та життєвий цикл пісочниці
RAM на одну пісочницю разом із tmpfs. Внутрішній fallback controller поза Compose — 512 MB.
CPU cores на пісочницю; дозволені дробові значення, наприклад 0.5.
Ліміт процесів і потоків. Під gVisor це high-water mark; значення нижче приблизно 128 можуть ламати rendering.
Одночасні запущені пісочниці на користувача; при ліміті витісняється LRU-сесія. Внутрішній fallback: 5.
Час до зупинки idle-контейнера: 15 хвилин. Файли workspace та запис у базі лишаються.
Lease, який оновлює активна фонова задача: 1 година.
Максимальний busy-hold від початку lease: 6 годин.
Видалення workspace після 30 днів без використання.
Grace для каталогу без запису в базі: 7 днів у Compose; внутрішній fallback — 1 година.
Сховище та зберігання даних
Корінь content-addressed blob store для vault.
Дні зберігання завершених, помилкових і скасованих задач. 0 — безстроково.
Дні зберігання фіналізованої історії usage ledger. 0 — безстроково.
Дні зберігання governance audit events. 0 — безстроково.
Кількість рядків у bounded batch щоденного очищення.
Кількість каталогів логів фонових задач на workspace; 0 не зберігає жодного.
Максимальний розмір одного логу фонової задачі.
Кількість rendered-каталогів view_file на workspace; 0 не зберігає жодного.
Кількість збережених файлів tool output на workspace; 0 не зберігає жодного.
Максимальний розмір одного збереженого файла tool output.
Агент, streaming та workers
Крок, після якого довгий цикл припиняє tools і пише відповідь; обмежується загальним step ceiling.
Жорсткий ліміт tool-calling кроків одного turn.
Wall-clock ліміт одного turn разом із tool calls.
Частка time budget, після якої агент перестає запускати tools і завершує відповідь.
Ліміт символів одного результату інструмента.
Сумарний ліміт символів tool output за один turn.
Ліміт рядків для одного читання файла.
Тиша до визнання model stream завислим; одна повторна спроба отримує подвоєне вікно.
Кількість повторних streaming-спроб після зависань; 0 вимикає recovery.
Кількість turn, які інстанс виконує одночасно. Per-user fairness queue немає.
Розмір Postgres pool платформи. Він має бути помітно більшим за worker concurrency.
Ставте false лише для OpenAI-сумісного gateway, який ламається від запиту stream usage.
MCP-конектори
Найбільший MCP media payload inline; 0 завжди переносить media у файл.
Максимальна довжина опису одного MCP tool.
Імена конекторів через кому, tools яких завжди завантажуються eagerly, а не через find_tool.
Відсоток context window, після якого connector schemas відкладаються.
Абсолютний token cap для always-loaded connector schemas; 0 лишає тільки percentage gating.
Tracing і telemetry
OTLP HTTP endpoint. Без значення agent tracing вимкнений і не має exporter overhead.
OTLP request headers через кому, наприклад authorization header для backend.
Назва сервісу в експортованих spans.
Додає prompts, completions, tool arguments, results і sandbox commands. Це може розкрити роботу користувачів.
Друга явна згода, без якої content не експортується на віддалений host.
Експортує оцінену вартість у USD; внутрішній usage ledger лишається джерелом фінансової правди.
Префікси span names для експорту; * експортує всі spans, включно з framework spans.
Додаткові точні attribute keys або prefix-форми, дозволені export allowlist.
Необов’язкові можливості
Дозволяє імпортувати публічне share-посилання claude.ai або chatgpt.com у чат.