Документация
Конфигурация времени выполнения
Выберите процесс, каталог данных, тип учетных данных и параметры интеграции, которые фактически управляют каждой средой выполнения.
Автоматически переведено с английского. Смотреть оригинал на английском
Владельцы конфигурации
Сайдкар считывает конфигурацию среды через AppConfigService в apps/sidecar/src/config.ts. Уровень считывает эти значения при создании и передает значение AppConfig службам, которым оно необходимо. Изменение родительской переменной оболочки не приводит к изменению уже запущенной службы.
Tauri предоставляет свой собственный токен запуска и пути данных/миграции приложения при запуске дочернего элемента. Предварительный просмотр в браузере использует переменные подключения на стороне Vite. Мобильный телефон хранит сопряженное подключение к настольному компьютеру и учетные данные устройства. На сайте документации есть отдельные привязки Worker и независимый локальный процесс Studio. У них нет общего файла конфигурации.
Настройте владельца поведения, которое вы хотите изменить. Например, установка URL-адреса миграции CLI не перенаправляет собственную базу данных рабочего стола, а настройка помощника по документации не предоставляет учетные данные поставщика искусственного интеллекта настольного компьютера.
Запустить изолированную сайдкар
CADCAMFUN_TOKEN=local-development-token \
CADCAMFUN_DATA_DIR=/tmp/cadcamfun-config-example \
CADCAMFUN_MIGRATIONS_DIR="$PWD/packages/db/drizzle" \
CADCAMFUN_AI_HOST=direct \
CADCAMFUN_AI_OFFLINE=1 \
bun --no-env-file apps/sidecar/src/main.ts При этом используется одноразовый каталог и пример токена разработки. Выберите подходящий токен для вашего собственного процесса. Сервер связывает петлю на назначенном порту; прочитайте этот порт из события готовности. Держите стандартный ввод открытым, поскольку его закрытие сигнализирует о завершении работы. Команда намеренно передает настройки явно и отключает автоматическую загрузку файлов среды Bun.
Для обычного собственного цикла используйте bun run desktop:dev. Он подготавливает двоичный файл и миграцию перед запуском Tauri, которому принадлежит полученное соединение с процессом. Не запускайте вторую сайдкар вручную и не предполагайте, что к ней будет подключено собственное веб-представление.
Необходимые настройки подключения и хранилища
| Параметр | По умолчанию | Поведение |
|---|---|---|
CADCAMFUN_TOKEN | Необходимый | Отредактированы учетные данные носителя приложения для защищенных локальных маршрутов API. |
CADCAMFUN_DATA_DIR | Необходимый | Корень локального состояния, управляемого сайдкаром. База данных cadcamfun.db под ним. |
CADCAMFUN_MIGRATIONS_DIR | Отсутствующий | Каталог миграции передается на уровень базы данных. Без него при открытии базы данных таблицы приложения не будут создаваться и обновляться. |
CADCAMFUN_APP_URL | Отсутствует в конфиге | Базовый URL-адрес, указанный для интеграции ссылок на аккаунты. Соответствующая служба принимает решение об отступлении. |
CADCAMFUN_DEBUG_LINKS | ЛОЖЬ | Включает поля ответа разработки для ссылок на учетные записи в обработчиках, которые их поддерживают. |
Каталог данных — это корень хранилища, а не адрес привязки HTTP. Слушатель основного сервера зафиксирован на 127.0.0.1 с эфемерным портом. В сопутствующей сети используется собственный явно включенный шлюз HTTPS; изменение настройки URL-адреса не делает прослушиватель обратной связи общедоступным.
Сохраняйте настроенный каталог миграции в соответствии с двоичным файлом. Запуск может завершиться неудачей до готовности, если миграцию невозможно запланировать, выполнить резервное копирование или применить. Справочник по базе данных объясняет поведение транзакций и резервного копирования; отсутствие таблицы после пропуска миграции — это проблема конфигурации, а не доказательство того, что проект был удален.
Токен приложения считывается как отредактированное значение и никогда не отображается в журналах конфигурации. Каждая настройка на этой странице считывается один раз, в apps/sidecar/src/config.ts; измененное значение вступит в силу только после перезапуска сайдкара.
AI-хост и возможности подключения
| Параметр | По умолчанию | Поведение |
|---|---|---|
CADCAMFUN_AI_HOST | nikcli | Выбирать nikcli или direct. Прямой хост не добавляет встроенный постоянный цикл инструментов и специальный планировщик. |
CADCAMFUN_AI_OFFLINE | ЛОЖЬ | Отключает загрузку каталога сетевых провайдеров и обработчик живого веб-поиска. Это не реализация локальной модели. |
CADCAMFUN_AI_MINIMAX_BASE_URL | Отсутствующий | Дополнительное переопределение обрезанной конечной точки для встроенной конфигурации MiniMax. |
Ключи поставщика управляются API учетных данных и сохраняются службой AI по адресу. <dataDir>/ai/credentials.json. Они не предоставляются путем изобретения недокументированной переменной среды для каждого поставщика. Используйте конечные точки состояния поставщика/модели, чтобы определить, что настроено и Руководство по искусственному интеллекту для поддерживаемой маршрутизации прямой модели.
Автономный режим не превращает звонок провайдера облачных услуг в автономный ответ. Настроенная прямая или встроенная модель может по-прежнему требовать подключения к поставщику для вывода. Продукт, ориентированный на локальность, сохраняет локальные проекты без привязки к модели; это свойство хранения отличается от автономного вывода ИИ.
Политика оператора загружается из <dataDir>/ai/policy.json. Встроенный хост изолирует свои собственные рабочие каталоги/каталоги конфигурации под хранилищем AI приложения. Политика, учетные данные, контекст сеанса и кэш каталога поставщиков имеют разные цели; копирование одного файла не восстанавливает все время выполнения разговора.
Интеграция учетных записей и биллинга
| Параметр | Использовать | Когда отсутствует |
|---|---|---|
STRIPE_SECRET_KEY | Аутентификация Outbound Stripe API. | Платная оплата и интеграция с биллинговым порталом недоступны. |
STRIPE_WEBHOOK_SECRET | Проверьте подписанные полезные данные веб-перехватчика Stripe. | Обработчик веб-перехватчика отказывается от приема данных без настройки проверки. |
STRIPE_PRICE_BASIC, STRIPE_PRICE_PRO, STRIPE_PRICE_ENTERPRISE | Идентификаторы цен для платных планов. Пустые значения игнорируются. | Отсутствующее сопоставление не может определить настроенную цену оформления заказа для этого плана. |
CRON_SECRET | Дополнительные общие учетные данные для обслуживания cron. | Этому охраннику не требуется никакого дополнительного секрета cron; Допуск носителя приложения по-прежнему применяется. |
ADMIN_EMAIL | Идентификатор администратора, используемый политикой учетной записи/службы. | Профиль локальной установки сохраняет локальное административное поведение, реализуемое его службами. |
Эти параметры настраивают интеграцию; они не устанавливают существование удаленной учетной записи, цены, подписки или доставки через веб-перехватчик. Проверьте фактический сбой операции и состояние работы службы. Не думайте, что наличие таблицы означает, что соответствующая размещенная функция полностью настроена.
Интерфейс AppConfig также содержит перехватчики тестового внедрения, такие как фабрика моделей замены и база API Stripe. Они не являются переменными среды, считываемыми этим уровнем производственной конфигурации. Не допускайте использования тестовых перехватчиков в инструкциях по развертыванию, если работающий хост явно не предоставляет их.
Пробный период оплаты начинается 14 дня. PRO пробный (TRIAL_DAYS в apps/sidecar/src/repos/billing-repo.ts, используется http/billing.ts). Доступные планы: FREE, BASIC, PRO, и ENTERPRISE; только три платных плана занимают STRIPE_PRICE_* параметр.
Журналы и телеметрия
OTEL_EXPORTER_OTLP_ENDPOINT включает функцию экспорта трассировки, метрик и журналов OTLP/HTTP вспомогательного компонента. Без непустой конечной точки этот дополнительный уровень телеметрии отключается. Код экспортера создает конечные точки для конкретного сигнала; настройте коллектор, который поддерживает эти сигналы.
Обычное дополнительное ведение журнала отделено от экспорта телеметрии. Stdout содержит протокол готовности/ошибок JSON, используемый оболочкой, а журналы направляются на stderr. При диагностике запуска сохраняйте первую соответствующую ошибку и контекст ее операции, а не ожидайте, что окно приложения будет содержать все детали инициализации.
Не включайте в диагностические пакеты токены запуска, ключи поставщика, токены сеанса или полные файлы учетных данных. Исходные пути, метод/статус, идентификаторы конечных точек, несекретные идентификаторы проектов и неудачная операция базы данных обычно обеспечивают более безопасную и полезную отправную точку.
Конфигурация клиента
Предварительный просмотр рабочего стола только в браузере использует поддельный API в памяти, когда VITE_SIDECAR_URL отсутствует. Чтобы подключить его к сайдкаре, запускаемой вручную, установите этот URL-адрес и VITE_SIDECAR_TOKEN перед запуском Vite. Вместо этого упакованный путь Tauri получает соединение из оболочки.
VITE_SIDECAR_URL=http://127.0.0.1:READY_PORT \
VITE_SIDECAR_TOKEN=local-development-token \
bun run --filter @cadcamfun/desktop dev Замените заполнитель порта. Настройки Vite относятся к процессу разработки интерфейса; их изменение не приводит к перезапуску или перенастройке сайдкара. Доступ через браузер регулируется политикой кольцевой проверки/Tauri CORS сайдкара и обычным доступом к каналу связи.
Сопряжение с мобильным устройством сохраняет адрес рабочего стола, отпечаток сертификата и токен устройства через мобильное приложение. Изменение токена запуска рабочего стола не является обычным способом сопряжения телефона. Используйте процедура сопряжения и при необходимости отзывать отдельные устройства.
Выбор пути к базе данных
| Процесс | Правило выбора |
|---|---|
| Родная настольная сайдкар | Каталог данных приложения, предоставленный Tauri, затем cadcamfun.db. |
| Ручная сайдкар | CADCAMFUN_DATA_DIR/cadcamfun.db. |
| Интерфейс командной строки миграции базы данных | DATABASE_URL, удаление начального file:; в противном случае относительно процесса ./data/cadcamfun.db. |
Корень db:migrate обертка | Запускает сценарий пакета БД, поэтому значение по умолчанию разрешается в течение packages/db. |
| Студия документации | CADCAMFUN_DB, затем DATABASE_URL, затем корень репозитория data/cadcamfun.db. Файл должен существовать. |
Таким образом, пустой список проектов может означать, что вы открыли другую действительную базу данных. Запишите процесс и абсолютный выбранный путь перед изменением миграции или копированием данных. Сеанс учетной записи также может изменить видимые ресурсы без изменения файла.
Применить и подтвердить изменение
- Определите процесс-владелец и текущий путь к хранилищу. Сохраняйте необходимые данные перед изменением хранилища или миграцией.
- Остановите этот процесс и обновите его явную конфигурацию запуска или собственные настройки.
- Запустите его снова и дождитесь фактического результата готовности. Разрешите новое соединение вместо повторного использования старого порта.
- Проверьте вызов службы здравоохранения и принятый защищенный вызов.
- Проверьте конкретное поведение: появляется предполагаемый проект, изменяется статус провайдера, шлюз становится доступным или настроенный сборщик телеметрии получает ожидаемый сигнал.
Наличие настроенного значения — это не то же самое, что работающая внешняя интеграция. Прочитайте результат обслуживания после внесения изменений. Значения конфигурации со значением по умолчанию следует отличать от необязательных значений, для которых принимающая служба решает использовать резервный вариант.
Диагностика конфигурации
Если инициализация завершается неудачей до того, как она будет готова, проверьте необходимые настройки, доступность миграции, доступ к каталогу и ошибку построения первого слоя. Если работоспособность подтверждена, но защищенный вызов не выполнен, проверьте тип токена и текущий процесс. Если поставщик выходит из строя во время работы проекта, проверьте конфигурацию ИИ, а не сбрасывайте базу данных.
Если Studio недоступна на размещенном сайте, ее рабочий API намеренно возвращает 503; запустить локальный процесс Bun для выбранного существующего файла. Если помощник по документации недоступен, проверьте привязки Worker или его настроенный бэкэнд nikcli. Ни один из диагнозов не требует замены учетных данных рабочего стола.
Источник доказательства: apps/sidecar/src/config.ts, layers.ts, main.ts, observability.ts, services/ai.ts, packages/db/src/migrate.ts, и packages/web/script/studio-server.ts.
Все настройки сайдкара в одном столе
AppConfigService — единственное место в сайдкаре, которое считывает окружающую среду. В таблице перечислены все читаемые переменные в том порядке, в котором они считываются. Необязательные значения, которые являются пустыми или пробельными, считаются отсутствующими, если это указано.
| Переменная | Тип | По умолчанию | Используется |
|---|---|---|---|
CADCAMFUN_TOKEN | отредактированная строка | необходимый | Промежуточное программное обеспечение носителя для каждого защищенного маршрута |
CADCAMFUN_DATA_DIR | нить | необходимый | База данных, хранилище AI, плагины, компаньон, загрузка |
CADCAMFUN_MIGRATIONS_DIR | нить | отсутствующий | Уровень базы данных; отсутствие означает, что схема не создана |
CADCAMFUN_APP_URL | нить | отсутствующий | Ссылки в электронных письмах аккаунта (наследие NEXTAUTH_URL) |
CADCAMFUN_DEBUG_LINKS | логическое значение | false | Сброс эха и магические ссылки в ответах (только в разработке) |
CADCAMFUN_AI_OFFLINE | логическое значение | false | Нет загрузки каталога провайдера и нет поиска в Интернете. |
CADCAMFUN_AI_HOST | nikcli | direct | nikcli | Помощник ведущего; любое другое значение приводит к сбою запуска |
CADCAMFUN_AI_MINIMAX_BASE_URL | веревка, обрезанная | отсутствующий | Конечная точка MiniMax для встроенного хоста |
STRIPE_WEBHOOK_SECRET | нить | отсутствующий | Без этого веб-хуки Stripe будут отклонены. |
STRIPE_SECRET_KEY | отредактированная строка | отсутствующий | Без него платная касса и биллинг-портал недоступны. |
STRIPE_PRICE_BASIC, _PRO, _ENTERPRISE | веревка, обрезанная | отсутствующий | Идентификатор цены за платный план; пустые значения игнорируются |
CRON_SECRET | нить | отсутствующий | Общий секрет для /api/cron/*; без него маршрут открыт для локального приложения |
ADMIN_EMAIL | нить | отсутствующий | электронная почта администратора; по умолчанию локальный профиль управляет собственной установкой |
OTEL_EXPORTER_OTLP_ENDPOINT | веревка, обрезанная | отсутствующий | URL-адрес базы сборщика OTLP/HTTP; без него телеметрия отключена |
Сообщаемое приложение version зафиксировано в коде (6.0.0), а не читать из среды.
Неверные значения останавливают запуск
Отсутствует обязательная переменная или значение, которое не анализируется (например, CADCAMFUN_AI_HOST=local), не удается выполнить уровень конфигурации. Затем сайдкар печатает ошибку вместо строки готовности, а рабочий стол сообщает об ошибке запуска.
Переменные, считываемые вне конфигурации сайдкара
| Переменная | Читатель | Цель |
|---|---|---|
DATABASE_URL | packages/db перенести скрипт и комплект для дождевания | Цель для db:migrate / db:generate; ведущий file: раздет. По умолчанию ./data/cadcamfun.db относительно packages/db. |
CADCAMFUN_DB, затем DATABASE_URL | Сервер веб-студии (packages/web/script/studio-server.ts) | База данных открывается локальной Студией; по умолчанию data/cadcamfun.db в корне репозитория. |
NIKCLI_LOCALE, NIKCLI_LANGUAGE, NIKCLI_REGION | Встроенный помощник хоста | Переопределить язык и регион помощника. |
LC_ALL, LC_MESSAGES, LANG, LANGUAGE, TZ | Встроенный помощник хоста | Определение локали системы и часового пояса, если переопределение не установлено. |
Оболочка рабочего стола передает запускаемому сопровождению ровно три переменные: CADCAMFUN_TOKEN (новый случайный жетон при каждом запуске), CADCAMFUN_DATA_DIR (каталог данных приложения) и CADCAMFUN_MIGRATIONS_DIR (пакетные миграции). Все остальное должно присутствовать в среде, в которой было запущено само настольное приложение.
Что находится в каталоге данных
cadcamfun.db SQLite database (+ -wal / -shm while running)
backups/ pre-migration snapshots, newest five kept
auth-secret signing secret for account session tokens (0600)
auth-revoked.json revoked session tokens
ai/
credentials.json provider API keys (owner-readable only)
policy.json operator policy for the assistant
skills/ user skills
session-owners/ which account owns which assistant session
nikcli/ isolated working and config dirs of the embedded host
plugins/ assistant plugins loaded at startup
plugins-registry/ installed marketplace plugin files
companion/ gateway TLS cert.pem and key.pem (0600)
storage/ file storage for library import/export, entity I/O and plugins
uploads/profiles/ profile pictures
downloads/ files served by /api/download
waitlist.json local waitlist entries Каталоги создаются при первом использовании, поэтому новая установка содержит только те, которые были затронуты ее функциями. Создайте резервную копию всего каталога с остановленным приложением: база данных, учетные данные, секретный ключ аутентификации и сопутствующие ключи принадлежат друг другу. Сопряженные сопутствующие устройства хранятся в таблице «ключ-значение» базы данных, а не в companion/.
Считать каталог секретным
ai/credentials.json, auth-secret и сопутствующий закрытый ключ являются учетными данными. Не сохраняйте каталог данных разработки и не прикрепляйте его к отчетам об ошибках.
Примеры конфигураций
export CADCAMFUN_TOKEN=dev-$(openssl rand -hex 16)
export CADCAMFUN_DATA_DIR="$(mktemp -d)"
export CADCAMFUN_MIGRATIONS_DIR="$PWD/packages/db/drizzle"
export CADCAMFUN_AI_HOST=direct
export CADCAMFUN_AI_OFFLINE=true
bun --no-env-file apps/sidecar/src/main.ts export CADCAMFUN_APP_URL=http://localhost:4321
export CADCAMFUN_DEBUG_LINKS=true # reset/magic links appear in responses export OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4318 export STRIPE_SECRET_KEY=sk_test_...
export STRIPE_WEBHOOK_SECRET=whsec_...
export STRIPE_PRICE_PRO=price_... Никогда не устанавливайте CADCAMFUN_DEBUG_LINKS внешняя разработка: он помещает ссылки на учетные записи в HTTP-ответы.