ドキュメント
クイックスタート
ワークスペースの依存関係から、実際のローカル サイドカーに支えられたデスクトップ ウィンドウまで。
英語から自動翻訳されています。 英語の原文を見る
要件
インストーラーとソースチェックアウトは異なります
ワークスペースは Bun を宣言します 1.4.4 パッケージマネージャーとして。依存関係のインストールにはリポジトリ ロックファイルを使用します。ネイティブ デスクトップ開発には、Rust ツールチェーン、プラットフォームの Tauri ビルド依存関係、およびインストールされたシステム Web ビューも必要です。 Tauri CLI はすでにデスクトップ開発の依存関係になっています。
- macOS: Rust/ネイティブのリンクとパッケージ化のための Xcode コマンドライン ツール。
- Windows: mSVC ツールチェーンと WebView2 ランタイム/ビルドの前提条件。
- Linux: WebKitGTK 4.1、アプリケーション インジケーター、librsvg、OpenSSL、バンドラー ツール。 CI ワークフローは、Ubuntu で使用されるパッケージを記録します。
- iOS コンパニオン: macOS、Xcode、CocoaPods、およびローカル ピニング モジュールを含むネイティブ Expo ビルド。
ブラウザーのプレビューには Bun とワークスペースの依存関係が必要ですが、Rust シェルはコンパイルされません。リリース インストーラーにはさらに署名構成が必要です。それはローカル UI 開発とは別のものです。
依存関係をインストールする
bun install
bun run --filter @cadcamfun/desktop typecheck
bun test packages/core ワークスペースのルートに一度インストールするとローカルになります workspace:* 依存関係は一緒に解決されます。 CI の使用 bun install --frozen-lockfile ロックファイルのドリフトを拒否します。すべてのパッケージが同じ TypeScript 実行可能ファイルを使用すると仮定するのではなく、パッケージ スクリプトを使用してリポジトリの構成済みコンパイラを選択します。
上記の対象を絞ったコマンドを使用すると、ソースを簡単にチェックできます。 The full workspace checks are bun run typecheck そして bun run test;より多くのモジュールをカバーするため、時間がかかる場合があります。個々の合格パッケージは、すべてのランタイム統合が構成されていることを証明するものではありません。
データベースのセットアップ
実際のデスクトップでは、別の CLI 移行コマンドは必要ありません。そのランチャーは、アプリケーション データ ディレクトリとサイドカーへの段階的な移行を提供します。データベースを開くと保留中の移行が適用されます。 bun run desktop:dev サイドカーの準備の一環として移行リソースをステージングします。
データベース コマンドライン ツールは別のものです。 bun run db:migrate データベース パッケージに委任され、デフォルトは ./data/cadcamfun.db 通常、そのパッケージのプロセス ディレクトリを基準とした相対パス packages/db/data/cadcamfun.db ルート スクリプトを通じて呼び出された場合。絶対値を設定する DATABASE_URL 特定のデータベースをターゲットにする必要がある場合。
bun run db:generate
bun run db:migrate 世代読み取り packages/db/src/schema.ts そして移行を以下に書き込みます packages/db/drizzle。移行を適用すると、すべてのアプリケーション データベースではなく、選択した CLI データベースが更新されます。ネイティブ デスクトップ データは、Tauri アプリケーション データ ディレクトリに存在します。手動で開始されたサイドカーは、 CADCAMFUN_DATA_DIR.
データベースを慎重に選択する
CLI の移行が成功しても、デスクトップが開くデータベースは変わりません。不足しているプロジェクトを調査したり、手動でデータ操作を適用したりする前に、サイドカー データ ディレクトリを見つけてください。
デスクトップを開く
bun run desktop:dev これにより、実際の Bun サイドカーがコンパイルされ、移行が段階的に行われ、Tauri が実行されます。タウリはViteを開始します http://localhost:1420 そしてWebビューを開きます。 Rust シェルはサイドカーのハンドシェイクが完了するまで待機します。 Web ビューは、ルーティングされた画面を表示する前に健全性をチェックします。
起動ターミナルを開いたままにしてください。シェルはサイドカーのライフサイクルを所有し、その起動トークンとパスを提供します。起動に失敗した場合は、起動理由とアプリケーション ログを調べてください。 WebView は、最大 150 秒間エンドポイント検出を再試行します。シェルはサイドカーの自動再起動を 1 回許可します。
bun run --filter @cadcamfun/desktop dev 開ける http://localhost:1420。なし VITE_SIDECAR_URL、これはメモリ内の偽の API を使用します。リクエストのサブセットをサポートしますが、永続的なプロジェクト、プロバイダー セッション、ネイティブ ダイアログは提供しません。 Vite サイドカー URL とトークン プロセス変数の両方を設定して、ライブ サイドカーに接続します。
デスクトップパッケージの tauri:dev バイナリが見つからない場合、スクリプトはスタブ サイドカーを作成します。スタブはシェル分離をサポートします。根のほうが好み desktop:dev アプリケーションサービスを実行するときにコマンドを実行します。
bun run desktop:dev 最初の実行 build:sidecar、サイドカーをコンパイルし、移行をステージングします (パイプライン ステップ) compile そして resources)。それから始まります tauri dev デスクトップパッケージにあります。
最初のセッションを確認する
- アプリケーションがブート画面を終了するまで待ち、目的の API に接続されていることを確認します。
- プロジェクトを作成するか開いて、CAD または CAM を入力します。
- 作業を保存し、プロジェクト/リソース UI から再度開いて、永続性を確認します。
- アシスタントを使用する場合は、会話を開始する前に、デスクトップ設定でサポートされているモデルのプロバイダーを構成します。
- iOS コンパニオンを使用している場合は、そのゲートウェイを有効にし、デスクトップ上でデバイスのペアリングを作成します。
目に見えるパスをテストしても、加工の安全性は検証されません。 NC 出力を機械に転送する前に、在庫、ツーリング、機械の制限、出力後の結果、および実際の動作の検証結果を検査します。
bun run --cwd packages/web start
bun run --cwd packages/web check
bun run --cwd packages/web build ウェブ start コマンドは Astro を実行します。印刷されたローカル アドレスを使用します。ウェブ dev スクリプトはさらに Studio API を起動し、選択したローカル データベースを開くことができます。静的なドキュメントだけではなく、Studio で作業するときに使用してください。
次のコマンド
| ゴール | 指示 |
|---|---|
| サイドカーのみをコンパイルし、移行をステージングする | bun run build:sidecar |
| インストーラーなしでフロントエンドを構築する | bun run build:desktop |
| ネイティブ ビルド プランを確認する | bun scripts/build.ts --dry-run |
| APIクライアントを再生成する | bun run generate |
| 生成されたクライアントを確認する | bun run generate:check |
| コンパニオントランスポートテストを実行する | bun run --cwd apps/mobile test |
モデルを使用せずに実際の API を検証する
ローカル開発ガイドに記載されている手動サイドカーを開始するか、管理する開発プロセスのエンドポイント/トークンを使用します。次のレシピでは、使い捨てプロジェクトを 1 つ作成し、それをリストします。カールが必要です。オプションの識別子の抽出では Bun を使用します。サンプルのポートとトークンを、分離されたサイドカーのものに置き換えます。
CADCAM_URL=http://127.0.0.1:43111
CADCAM_TOKEN=local-development-token
curl --fail-with-body "$CADCAM_URL/api/health"
curl --fail-with-body -X POST "$CADCAM_URL/api/projects" -H "Authorization: Bearer $CADCAM_TOKEN" -H 'Content-Type: application/json' -d '{"name":"Documentation smoke","description":"Disposable local check","isPublic":false}' -o /tmp/cadcamfun-project-smoke.json
curl --fail-with-body "$CADCAM_URL/api/projects" -H "Authorization: Bearer $CADCAM_TOKEN"
CADCAM_PROJECT_ID=$(bun --no-env-file -e 'const row = await Bun.file("/tmp/cadcamfun-project-smoke.json").json(); console.write(row.id)')
curl --fail-with-body "$CADCAM_URL/api/projects/$CADCAM_PROJECT_ID" -H "Authorization: Bearer $CADCAM_TOKEN" Health はステータス/タイムスタンプ オブジェクトを返します。プロジェクトを作成すると、HTTP 201 とその識別子を含むプロジェクト行が返されます。リストは、所有者と組織の関係と数を含むプロジェクトの配列を返します。識別子で読み取ると、そのような関連プロジェクトが 1 つ返されます。この例では、モデルを呼び出したり、マシン出力を生成したりしません。
手動サイドカーを完全に閉じ、同じデータ ディレクトリで再起動し、一時 URL を更新し、プロジェクトを再度リストして永続性を確認します。新しく起動すると、別のポートが選択される場合があります。このプロジェクトが存在しない場合は、まずデータ ディレクトリ、クライアント エンドポイント、および承認コンテキストを比較します。
クリーンアップはオプションであり、この 1 つの使い捨てプロジェクトでは破壊的です: send DELETE /api/projects/<id> 返された識別子を確認した後にのみ。クリーンアップを成功させることなく、アプリケーションの永続性を作成/リスト/読み取りで実行します。
初回実行時の失敗を解釈する
| 失敗 | 可能性のある境界 | 次のアクション |
|---|---|---|
| 依存関係のインストールではローカル パッケージを解決できません | ワークスペースのインストール | 宣言された Bun バージョンとロックファイルを使用してリポジトリ ルートから実行します。 |
| ネイティブリンクまたはWebKitエラー | タウリの前提条件 | 一致する CI ターゲットで使用されるツールチェーン/プラットフォーム ライブラリをインストールします。 |
| 準備可能なイベントはありません | サイドカーの構成、移行、または起動 | stderr と構造化エラー イベントを検査します。標準入力を開いたままにしてください。 |
| 正常性は機能し、プロジェクト呼び出しは 401 を返します | 認可 | 健康は公共のものです。保護された API 呼び出しには引き続き現在のプロセス トークンが必要です。 |
| 返品の作成 400 | リクエスト検証/ビジネス検証 | 空ではない名前で JSON を送信し、返されたメッセージを検査します。 |
| 組織データを含む返品 403 を作成する | 組織のメンバーシップ | アクセス可能な組織を使用するか、ローカル チェックの組織フィールドを省略します。 |
| ネイティブコンパニオンはピン留めが利用できないと言っています | ローカル Expo モジュールがありません | Expo Go ではなく、カスタム iOS ビルドを使用してください。 |
最初の検証は小さくしてください。健全性、1 つのプロジェクト、1 つの永続的な図面/プログラム、次にオプションの統合です。基本アプリケーションの起動が成功しても、Stripe、AI プロバイダー、リモート GitHub リポジトリ、またはモバイル ルーティングは自動的には構成されません。
要件の詳細
| 道具 | バージョン | 必要な |
|---|---|---|
| Bun | 1.4.4 (リポジトリの packageManager) | すべて: インストール、テスト、サイドカー、スクリプト |
| Rust ツールチェーン + Tauri の前提条件 | 安定した; Linux 上のプラットフォーム Webview ライブラリ | デスクトップシェル (desktop:dev、ビルドします) |
| SQLite CLI | どれでも | オプション: 読み取り専用データベース検査 |
| Xcode | — | iOS コンパニオンのみ |
最初の 1 時間はステップごとに
git clone https://github.com/nikomatt69/cadcamfun.git
cd cadcamfun
bun install --frozen-lockfile
bun run typecheck # all workspaces
bun run test # bun test packages apps scripts
bun run desktop:dev # builds the sidecar + migrations, then tauri dev - ウィンドウが開くと、数秒以内にサイドカーのステータスが準備完了になります。初回起動時に新しいデータ ディレクトリが移行されます。
- プロジェクトを作成し、描画を追加し、長方形を描画して押し出します。
- CAM を開き、ソリッドを選択して生成します。 NC をエクスポートする前に、リリース レベルとクレームを確認してください。
- 履歴パネルを開いてコミットします。プロジェクトには最初のバージョンが含まれています。
モデルキーは必要ありません
上記のすべては AI プロバイダーなしで機能します。後でアシスタント設定でキーを追加します。