Documentation
Démarrage rapide
Des dépendances de l'espace de travail à une fenêtre de bureau soutenue par le véritable sidecar local.
Traduit automatiquement de l'anglais. Voir l'original en anglais
Exigences
Les installateurs et une extraction de source sont différents
Une version de bureau publiée est sur le page de téléchargement. Ce guide installe le référentiel et exécute desktop:dev. Lire Installer quand vous voulez plutôt les artefacts de version.
L'espace de travail déclare Bun 1.4.4 en tant que gestionnaire de paquets. Utilisez le fichier de verrouillage du référentiel pour l'installation des dépendances. Le développement de bureau natif nécessite également une chaîne d'outils Rust, les dépendances de build Tauri de la plate-forme et une vue Web du système installée. La CLI Tauri est déjà une dépendance de développement de bureau.
- macOS : Outils de ligne de commande Xcode pour la liaison et l'empaquetage Rust/natif.
- Fenêtres : la chaîne d'outils MSVC et les prérequis d'exécution/build WebView2.
- Linux : WebKitGTK 4.1, indicateur d'application, librsvg, OpenSSL et outils de regroupement. Le workflow CI enregistre les packages utilisés sur Ubuntu.
- compagnon iOS : macOS, Xcode, CocoaPods et une version native d'Expo contenant le module d'épinglage local.
Un aperçu du navigateur nécessite des dépendances Bun et l'espace de travail mais ne compile pas le shell Rust. Un programme d'installation de version nécessite en outre une configuration de signature ; qui est distinct du développement de l'interface utilisateur locale.
Installer les dépendances
bun install
bun run --filter @cadcamfun/desktop typecheck
bun test packages/core Installer une fois à la racine de l'espace de travail de manière locale workspace:* les dépendances se résolvent ensemble. Utilisations CI bun install --frozen-lockfile pour rejeter la dérive du fichier de verrouillage. Utilisez les scripts du package pour sélectionner le compilateur configuré du référentiel plutôt que de supposer que chaque package utilise le même exécutable TypeScript.
Les commandes ciblées ci-dessus fournissent une vérification rapide de la source. Les vérifications complètes de l'espace de travail sont bun run typecheck et bun run test; ils couvrent plus de modules et peuvent prendre plus de temps. Un package de réussite individuel ne prouve pas que toutes les intégrations d’exécution sont configurées.
Configuration de la base de données
Le vrai bureau ne nécessite pas de commande de migration CLI distincte. Son lanceur fournit le répertoire des données de l'application et les migrations par étapes vers le sidecar ; l'ouverture de la base de données s'applique aux migrations en attente. bun run desktop:dev organise la ressource de migration dans le cadre de la préparation du sidecar.
L'outil de ligne de commande de base de données est distinct. bun run db:migrate délègue au package de base de données et par défaut ./data/cadcamfun.db par rapport au répertoire de processus de ce package, normalement packages/db/data/cadcamfun.db lorsqu'il est invoqué via le script racine. Définir un absolu DATABASE_URL lorsque vous devez cibler une base de données spécifique.
bun run db:generate
bun run db:migrate La génération lit packages/db/src/schema.ts et écrit les migrations sous packages/db/drizzle. L'application des migrations met à jour la base de données CLI sélectionnée, et non toutes les bases de données d'application. Les données de bureau natives se trouvent dans le répertoire de données de l'application Tauri ; un sidecar démarré manuellement utilise CADCAMFUN_DATA_DIR.
Choisissez délibérément la base de données
Une migration CLI réussie ne modifie pas la base de données ouverte par le bureau. Localisez le répertoire de données sidecar avant d'enquêter sur les projets manquants ou d'appliquer une opération manuelle sur les données.
Ouvrez le bureau
bun run desktop:dev Celui-ci compile le véritable sidecar Bun et effectue les migrations, puis exécute Tauri. Tauri démarre Vite à http://localhost:1420 et ouvre la vue Web. Le shell Rust attend la poignée de main prête du sidecar ; la vue Web vérifie l'état de santé avant d'afficher les écrans routés.
Gardez le terminal de lancement ouvert. Le shell est propriétaire du cycle de vie du sidecar et fournit son jeton de lancement et ses chemins. Si le démarrage échoue, inspectez la raison du démarrage et les journaux d'application. La vue Web tente à nouveau de découvrir le point de terminaison pendant 150 secondes ; le shell permet un redémarrage automatique du sidecar.
bun run --filter @cadcamfun/desktop dev Ouvrir http://localhost:1420. Sans VITE_SIDECAR_URL, cela utilise la fausse API en mémoire. Il prend en charge un sous-ensemble de requêtes et ne fournit pas de projets persistants, de sessions de fournisseur ou de boîtes de dialogue natives. Connectez-vous à un sidecar en direct en définissant à la fois l'URL du sidecar Vite et les variables de processus de jeton.
Le package de bureau tauri:dev le script crée un sidecar stub lorsque le binaire est manquant. Le stub prend en charge l’isolation du shell. Préférez la racine desktop:dev commande lors de l’exercice des services d’application.
bun run desktop:dev premières courses build:sidecar, qui compile le sidecar et organise les migrations (étapes du pipeline compile et resources). Cela commence alors tauri dev dans le package de bureau.
Vérifier la première session
- Attendez que l'application quitte l'écran de démarrage et confirmez qu'elle est connectée à l'API prévue.
- Créez ou ouvrez un projet et entrez CAO ou CAM.
- Enregistrez le travail et rouvrez-le via l’interface utilisateur du projet/ressource pour vérifier la persistance.
- Si vous utilisez l'assistant, configurez un fournisseur de modèles pris en charge dans les paramètres du bureau avant de démarrer une conversation.
- Si vous utilisez le compagnon iOS, activez sa passerelle et créez un couplage d'appareils sur le bureau.
Tester une trajectoire visible ne valide pas la sécurité de l'usinage. Inspectez le stock, l'outillage, les limites de la machine, la post-sortie et les résultats de vérification de l'opération réelle avant de transférer la sortie CN à une machine.
bun run --cwd packages/web start
bun run --cwd packages/web check
bun run --cwd packages/web build Le Web start la commande exécute Astro. Utilisez son adresse locale imprimée. Le Web dev le script démarre en outre l'API Studio, qui peut ouvrir la base de données locale sélectionnée ; utilisez-le lorsque vous travaillez sur Studio plutôt que sur une documentation statique seule.
Commandes suivantes
| But | Commande |
|---|---|
| Compiler le sidecar uniquement et effectuer les migrations | bun run build:sidecar |
| Construire une interface sans installateurs | bun run build:desktop |
| Examiner le plan de build natif | bun scripts/build.ts --dry-run |
| Régénérer les clients API | bun run generate |
| Vérifier les clients générés | bun run generate:check |
| Exécuter des tests de transport compagnon | bun run --cwd apps/mobile test |
Vérifier une vraie API sans modèle
Démarrez le sidecar manuel décrit dans le guide de développement local ou utilisez le point de terminaison/jeton d'un processus de développement que vous contrôlez. La recette suivante crée un projet jetable et le répertorie. Il a besoin de boucles ; l'extraction facultative de l'identifiant utilise Bun. Remplacez l'exemple de port et de jeton par ceux de votre sidecar isolé.
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 renvoie un objet statut/horodatage. La création de projet renvoie HTTP 201 et une ligne de projet avec son identifiant. La liste renvoie un tableau de projets avec des relations et des décomptes propriétaire/organisation ; la lecture par identifiant renvoie un de ces projets associés. L'exemple n'appelle pas de modèle et ne génère pas de sortie machine.
Fermez proprement le sidecar manuel, redémarrez-le avec le même répertoire de données, mettez à jour l'URL éphémère et répertoriez à nouveau les projets pour vérifier la persistance. Un nouveau lancement peut choisir un port différent. Si ce projet est absent, comparez d'abord le répertoire de données, le point de terminaison client et le contexte d'autorisation.
Le nettoyage est facultatif et destructeur pour ce projet jetable : envoyer DELETE /api/projects/<id> seulement après avoir confirmé l'identifiant renvoyé. Création/liste/lecture de la persistance de l'application sans nécessiter de nettoyage pour réussir.
Interpréter les échecs de première exécution
| Échec | Limite probable | Action suivante |
|---|---|---|
| L'installation de dépendances ne peut pas résoudre un package local | Installation de l'espace de travail | Exécuté à partir de la racine du référentiel avec la version Bun déclarée et le fichier de verrouillage. |
| Liaison native ou erreur WebKit | Prérequis Tauri | Installez les bibliothèques de chaîne d'outils/plateforme utilisées par la cible CI correspondante. |
| Aucun événement prêt | Configuration, migration ou démarrage du sidecar | Inspectez stderr et l’événement d’erreur structuré. Gardez stdin ouvert. |
| La santé fonctionne, l'appel de projet revient 401 | Autorisation | La santé est publique ; Les appels d'API protégés ont toujours besoin du jeton de processus actuel. |
| Créer des retours 400 | Validation de la demande/validation commerciale | Envoyez JSON avec un nom non vide et inspectez le message renvoyé. |
| Créer des retours 403 avec les données de l'organisation | Adhésion à l'organisation | Utilisez une organisation accessible ou omettez le champ de l’organisation pour une vérification locale. |
| Un compagnon natif indique que l'épinglage n'est pas disponible | Module Expo local manquant | Utilisez une version iOS personnalisée, pas Expo Go. |
Gardez la première vérification petite : santé, un projet, un dessin/programme persistant, puis intégrations facultatives. Un lancement réussi d'une application de base ne configure pas automatiquement Stripe, les fournisseurs d'IA, un référentiel GitHub distant ou le routage mobile.
Détails des exigences
| Outil | Version | Nécessaire pour |
|---|---|---|
| Bun | 1.4.4 (le référentiel du référentiel packageManager) | Tout : installation, tests, sidecar, scripts |
| Chaîne d'outils Rust + prérequis Tauri | écurie; bibliothèques de vues Web de la plate-forme sous Linux | Le shell du bureau (desktop:dev, construit) |
| CLI SQLite | n'importe lequel | Facultatif : inspection de la base de données en lecture seule |
| Xcode | — | Uniquement pour le compagnon iOS |
Votre première heure, étape par étape
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 - Lorsque la fenêtre s'ouvre, l'état du sidecar devient prêt en quelques secondes ; un nouveau répertoire de données est migré au premier lancement.
- Créez un projet, ajoutez un dessin, dessinez un rectangle et extrudez-le.
- Ouvrez CAM, choisissez le solide et générez. Vérifiez le niveau de version et les revendications avant d'exporter NC.
- Ouvrez le panneau d'historique et validez : le projet a désormais sa première version.
Aucune clé de modèle nécessaire
Tout ce qui précède fonctionne sans fournisseur d’IA. Ajoutez une clé plus tard dans les paramètres de l'assistant.