コンテンツへスキップ
CADCAMFUN
ドキュメント

ドキュメント

ランタイム構成

実際に各ランタイムを制御するプロセス、データ ディレクトリ、資格情報の種類、および統合設定を選択します。

英語から自動翻訳されています。 英語の原文を見る

構成所有者

サイドカーは環境設定を読み取ります。 AppConfigService で apps/sidecar/src/config.ts。レイヤーは構築時にこれらの値を読み取り、AppConfig 値を必要とするサービスに渡します。親シェル変数を変更しても、すでに実行中のサービスは変更されません。

Tauri は、子の起動時に独自の起動トークンとアプリケーション データ/移行パスを提供します。ブラウザ プレビューは Vite 側の接続変数を使用します。モバイルは、ペアになったデスクトップ接続とデバイスの資格情報を保存します。ドキュメント サイトには、別個の Worker バインディングと独立したローカル Studio プロセスがあります。これらはユニバーサル構成ファイルを共有しません。

変更する動作の所有者を構成します。たとえば、CLI 移行 URL を設定してもネイティブ デスクトップ データベースはリダイレクトされず、ドキュメント アシスタントを構成してもデスクトップ AI プロバイダーの資格情報は提供されません。

独立したサイドカーを開始する

リポジトリルートの対話型ターミナル
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

これは、使い捨てディレクトリとサンプル開発トークンを使用します。独自のプロセスに適切なトークンを選択してください。サーバーは、割り当てられたポートでループバックをバインドします。そのポートをreadyイベントから読み取ります。標準入力を閉じるとシャットダウンが通知されるため、標準入力は開いたままにしてください。このコマンドは意図的に設定を明示的に渡し、Bun の環境ファイルの自動ロードを無効にします。

通常のネイティブ ループの場合は、次を使用します。 bun run desktop:dev。 Tauri を起動する前に、サイドカー バイナリと移行を準備します。Tauri は、結果として生じるプロセス接続を所有します。 2 番目の手動サイドカーを開始して、ネイティブ Web ビューがそれにアタッチされると想定しないでください。

必要な接続とストレージの設定

設定デフォルト行動
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 設定を変更しても、ループバック リスナーは公開されません。

構成された移行ディレクトリをバイナリと一致させてください。移行を計画、バックアップ、または適用できない場合、準備が整う前に起動に失敗する可能性があります。データベース リファレンスでは、トランザクションとバックアップの動作について説明しています。マイグレーションを省略した後にテーブルが欠落している場合は、プロジェクトが削除されたという証拠ではなく、構成の問題です。

アプリケーション トークンは編集された値として読み取られ、構成ログには表示されません。このページのすべての設定は 1 回読み取られます。 apps/sidecar/src/config.ts;変更された値は、サイドカーが再起動された後にのみ有効になります。

AI ホストと接続

設定デフォルト行動
CADCAMFUN_AI_HOSTnikcli選択 nikcli または direct。直接ホストは、組み込みの永続ツール ループと専門スケジューラを追加しません。
CADCAMFUN_AI_OFFLINE間違いネットワーク プロバイダー カタログの読み込みとライブ Web 検索ハンドラーを無効にします。これはローカル モデルの実装ではありません。
CADCAMFUN_AI_MINIMAX_BASE_URL不在組み込み MiniMax 構成用のオプションのトリミングされたエンドポイント オーバーライド。

プロバイダー キーは認証情報 API によって管理され、AI サービスによって永続化されます。 <dataDir>/ai/credentials.json。これらは、すべてのプロバイダーに対して文書化されていない環境変数を作成することによって提供されるものではありません。プロバイダー/モデルのステータス エンドポイントを使用して、構成内容と AIガイド サポートされているダイレクトモデルルーティング用。

オフライン モードでは、クラウド プロバイダーへの通話がオフライン応答に変わりません。構成された直接モデルまたは埋め込みモデルでも、推論のためにプロバイダー接続が必要な場合があります。ローカルファースト製品は、モデル接続なしでローカル プロジェクトを保持します。このストレージ プロパティは、オフライン AI 推論とは異なります。

オペレータ ポリシーは次からロードされます <dataDir>/ai/policy.json。組み込みホストは、アプリケーションの AI ストレージの下に独自の作業/構成ディレクトリを分離します。ポリシー、資格情報、セッション コンテキスト、およびプロバイダー カタログ キャッシュにはさまざまな目的があります。 1 つのファイルをコピーしても、会話のランタイム全体が再構築されるわけではありません。

アカウントと請求の統合

設定使用欠席時
STRIPE_SECRET_KEYアウトバウンドストライプ API 認証。有料チェックアウトと請求ポータルの統合は利用できません。
STRIPE_WEBHOOK_SECRET署名された Stripe Webhook ペイロードを検証します。Webhook ハンドラーは、検証構成がないと取り込みを拒否します。
STRIPE_PRICE_BASIC, STRIPE_PRICE_PRO, STRIPE_PRICE_ENTERPRISE有料プランの価格 ID。空白の値は無視されます。マッピングが欠落していると、そのプランに設定されたチェックアウト価格を識別できません。
CRON_SECRETcron メンテナンス用の追加の共有認証情報。そのガードには追加の cron シークレットは必要ありません。申請書の持参者の入場は引き続き適用されます。
ADMIN_EMAILアカウント/サービス ポリシーで使用される管理者 ID。ローカル インストールのプロファイルは、そのサービスによって実装されるローカル管理動作を保持します。

これらの設定により統合が構成されます。リモート アカウント、価格、サブスクリプション、または Webhook 配信が存在することは確立されません。操作の実際の失敗と実行中のサービスのステータスを確認してください。テーブルの存在が、関連するホスト機能が完全に構成されていることを意味すると推測しないでください。

AppConfig インターフェイスには、置換モデル ファクトリや Stripe API ベースなどのテスト挿入フックも含まれています。これらは、この実稼働構成レイヤーによって読み取られる環境変数ではありません。実行中のホストがテスト フックを明示的に公開しない限り、デプロイメント手順にテスト フックを含めないでください。

請求トライアル ルートは 14 日から始まります PRO トライアル (TRIAL_DAYS で apps/sidecar/src/repos/billing-repo.ts、によって使用されます http/billing.ts)。利用可能なプランは、 FREE, BASIC, PRO、 そして ENTERPRISE; 3 つの有料プランのみがかかります STRIPE_PRICE_* 設定。

ログとテレメトリ

OTEL_EXPORTER_OTLP_ENDPOINT サイドカーの OTLP/HTTP トレース、メトリック、およびログ エクスポーターを有効にします。空白でないエンドポイントがないと、このオプションのテレメトリ レイヤーは無効になります。エクスポータ コードは信号固有のエンドポイントを構築します。これらの信号をサポートするコレクターを構成します。

通常のサイドカーのログはテレメトリのエクスポートとは別のものです。標準出力は、シェルによって消費される JSON 準備/エラー プロトコルを伝送しますが、ログは標準エラー出力に送信されます。起動を診断するときは、アプリケーション ウィンドウに初期化の詳細がすべて含まれることを期待するのではなく、最初の関連エラーとその操作コンテキストを保持してください。

診断バンドルには、起動トークン、プロバイダー キー、セッション トークン、または完全な認証情報ファイルを含めないでください。通常、ソース パス、メソッド/ステータス、エンドポイント ID、非機密プロジェクト ID、および失敗したデータベース操作は、より安全で有用な開始点となります。

クライアント構成

ブラウザーのみのデスクトップ プレビューは、次の場合に偽のメモリ内 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 settings belong to the frontend development process; changing them does not restart or reconfigure the sidecar.ブラウザ アクセスは、サイドカーのループバック/Tauri CORS ポリシーと通常のベアラー アドミッションの対象となります。

モバイル ペアリングは、モバイル アプリケーションを通じてデスクトップ アドレス、証明書フィンガープリント、デバイス トークンを保存します。デスクトップの起動トークンを変更することは、電話をペアリングする通常の方法ではありません。を使用します。 ペアリング手順 必要に応じて個々のデバイスを取り消します。

データベースパスの選択

プロセス選択ルール
ネイティブデスクトップサイドカーTauri が提供するアプリケーション データ ディレクトリ、その後 cadcamfun.db.
手動サイドカーCADCAMFUN_DATA_DIR/cadcamfun.db.
データベース移行 CLIDATABASE_URL、イニシャルを削除 file:;それ以外の場合はプロセス相対 ./data/cadcamfun.db.
根 db:migrate ラッパーDB パッケージ スクリプトを実行するため、デフォルトは次の範囲内で解決されます。 packages/db.
ドキュメンテーションスタジオCADCAMFUN_DB、 それから DATABASE_URL、次にリポジトリのルート data/cadcamfun.db。ファイルは存在する必要があります。

したがって、空のプロジェクト リストは、別の有効なデータベースを開いた可能性があります。移行を変更したりデータをコピーしたりする前に、プロセスと選択した絶対パスを記録します。アカウント セッションでは、ファイルを変更せずに、表示されるリソースを変更することもできます。

変更を適用して確認する

  1. 所有者プロセスと現在のストレージ パスを特定します。ストレージの変更や移行の前に、必要なデータを保存します。
  2. そのプロセスを完全に停止し、明示的な起動構成またはネイティブ設定を更新します。
  3. 再度起動し、実際の準備完了の結果を待ちます。古いポートを再利用する代わりに、新しい接続を解決します。
  4. 公衆衛生上の呼び出しと許可された保護された呼び出しを確認します。
  5. 特定の動作を確認します。目的のプロジェクトが表示されるか、プロバイダーのステータスが変化するか、ゲートウェイに到達可能になるか、構成されたテレメトリ コレクターが予期した信号を受信します。

構成された値が存在することは、外部統合が機能していることと同じではありません。変更を加えた後にサービス結果を読み取ります。デフォルトの構成値は、受信サービスがフォールバックを決定するオプションの値とは区別する必要があります。

構成診断

準備が整う前に初期化が失敗した場合は、必要な設定、移行の可用性、ディレクトリ アクセス、および最初のレイヤー構築エラーを調べてください。正常性は成功したが、保護された呼び出しが失敗した場合は、トークンの種類と現在のプロセスを確認してください。プロジェクトの動作中にプロバイダーに障害が発生した場合は、データベースをリセットするのではなく、AI 構成を検査します。

Studio がホストされているサイトで利用できない場合、本番 API は意図的に 503 を返します。選択した既存のファイルに対してローカルの Bun プロセスを開始します。ドキュメント アシスタントが利用できない場合は、ワーカー バインディングまたはその構成された 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.

1 つのテーブルですべてのサイドカー設定を行う

AppConfigService サイドカー内で環境を読み取る唯一の場所です。この表には、読み取られるすべての変数が、読み取られる順序でリストされています。空または空白のオプションの値は、記載されている場合には存在しないものとして扱われます。
変数タイプデフォルト使用者
CADCAMFUN_TOKEN編集された文字列必須保護されたすべてのルートのベアラーミドルウェア
CADCAMFUN_DATA_DIR弦必須データベース、AI ストレージ、プラグイン、コンパニオン、アップロード
CADCAMFUN_MIGRATIONS_DIR弦不在データベース層。存在しない場合は、スキーマが作成されないことを意味します
CADCAMFUN_APP_URL弦不在アカウントの電子メール内のリンク (従来の NEXTAUTH_URL)
CADCAMFUN_DEBUG_LINKSブール値false応答内のエコー リセットとマジック リンク (開発のみ)
CADCAMFUN_AI_OFFLINEブール値falseプロバイダーのカタログのダウンロードやライブ Web 検索はありません
CADCAMFUN_AI_HOSTnikcli | directnikcliアシスタントホスト。それ以外の値を指定すると起動に失敗します
CADCAMFUN_AI_MINIMAX_BASE_URLストリング、トリミング済み不在組み込みホストの MiniMax エンドポイント
STRIPE_WEBHOOK_SECRET弦不在これがないと、Stripe Webhook は拒否されます
STRIPE_SECRET_KEY編集された文字列不在これがないと、有料チェックアウトと請求ポータルは利用できません
STRIPE_PRICE_BASIC, _PRO, _ENTERPRISEストリング、トリミング済み不在有料プランごとの価格 ID。空白の値は無視されます
CRON_SECRET弦不在の共有シークレット /api/cron/*;それがなければ、ルートはローカルアプリに対して開かれます
ADMIN_EMAIL弦不在管理者の電子メール。デフォルトでは、ローカル プロファイルが独自のインストールを管理します。
OTEL_EXPORTER_OTLP_ENDPOINTストリング、トリミング済み不在OTLP/HTTP コレクターのベース URL。それがないとテレメトリはオフになります

報告されたアプリケーション version コードで修正されています (6.0.0)、環境からは読み取られません。

無効な値は起動を停止します

必要な変数が欠落しているか、解析されない値 (たとえば、 CADCAMFUN_AI_HOST=local)、構成レイヤーに失敗します。その後、サイドカーは準備完了行の代わりにエラーを出力し、デスクトップは起動の失敗を報告します。

サイドカー構成の外部で読み取られる変数

変数リーダー目的
DATABASE_URLpackages/db スクリプトとdrizzle-kitを移行する対象者 db:migrate / db:generate;主導的な file: 剥ぎ取られます。デフォルト ./data/cadcamfun.db に対して packages/db.
CADCAMFUN_DB、 それから DATABASE_URLWeb Studio サーバー (packages/web/script/studio-server.ts)ローカル Studio が開くデータベース。デフォルト data/cadcamfun.db リポジトリのルートにあります。
NIKCLI_LOCALE, NIKCLI_LANGUAGE, NIKCLI_REGION組み込みアシスタントホストアシスタントの言語と地域をオーバーライドします。
LC_ALL, LC_MESSAGES, LANG, LANGUAGE, TZ組み込みアシスタントホストオーバーライドが設定されていない場合のシステム ロケールとタイム ゾーンの検出。

デスクトップ シェルは、起動するサイドカーに 3 つの変数を正確に渡します。 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 応答にアカウント リンクが含まれます。

3Dで

設定が読み取られる場所 ドラッグして周回します · スクロールしてズーム · 右ドラッグしてパンします
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.