Перейти к содержанию
CADCAMFUN
Документы

Документация

Конфигурация времени выполнения

Выберите процесс, каталог данных, тип учетных данных и параметры интеграции, которые фактически управляют каждой средой выполнения.

Автоматически переведено с английского. Смотреть оригинал на английском

Владельцы конфигурации

Сайдкар считывает конфигурацию среды через 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_HOSTnikcliВыбирать 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. Файл должен существовать.

Таким образом, пустой список проектов может означать, что вы открыли другую действительную базу данных. Запишите процесс и абсолютный выбранный путь перед изменением миграции или копированием данных. Сеанс учетной записи также может изменить видимые ресурсы без изменения файла.

Применить и подтвердить изменение

  1. Определите процесс-владелец и текущий путь к хранилищу. Сохраняйте необходимые данные перед изменением хранилища или миграцией.
  2. Остановите этот процесс и обновите его явную конфигурацию запуска или собственные настройки.
  3. Запустите его снова и дождитесь фактического результата готовности. Разрешите новое соединение вместо повторного использования старого порта.
  4. Проверьте вызов службы здравоохранения и принятый защищенный вызов.
  5. Проверьте конкретное поведение: появляется предполагаемый проект, изменяется статус провайдера, шлюз становится доступным или настроенный сборщик телеметрии получает ожидаемый сигнал.

Наличие настроенного значения — это не то же самое, что работающая внешняя интеграция. Прочитайте результат обслуживания после внесения изменений. Значения конфигурации со значением по умолчанию следует отличать от необязательных значений, для которых принимающая служба решает использовать резервный вариант.

Диагностика конфигурации

Если инициализация завершается неудачей до того, как она будет готова, проверьте необходимые настройки, доступность миграции, доступ к каталогу и ошибку построения первого слоя. Если работоспособность подтверждена, но защищенный вызов не выполнен, проверьте тип токена и текущий процесс. Если поставщик выходит из строя во время работы проекта, проверьте конфигурацию ИИ, а не сбрасывайте базу данных.

Если 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_HOSTnikcli | directnikcliПомощник ведущего; любое другое значение приводит к сбою запуска
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_URLpackages/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_DATA_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-ответы.

Через 3Д

Где считывается конфигурация Перетащите на орбиту · прокрутите, чтобы увеличить · перетащите вправо, чтобы панорамировать
Processes at run time. The Tauri shell spawns the sidecar and waits for its {”event”:”ready”,”port”:N} line on stdout (sidecar.rs); the webview then talks HTTP to 127.0.0.1 on that port with the bearer token. The sidecar owns the SQLite database, the embedded nikcli AI host (CADCAMFUN_AI_HOST=nikcli, the default) and plugins; the mobile app reaches it through companion pairing.