दस्तावेज़
त्वरित शुरुआत
कार्यक्षेत्र निर्भरता से लेकर वास्तविक स्थानीय साइडकार द्वारा समर्थित डेस्कटॉप विंडो तक।
अंग्रेज़ी से स्वचालित रूप से अनुवादित। अंग्रेज़ी मूल देखें
आवश्यकताएं
इंस्टॉलर और स्रोत चेकआउट अलग-अलग हैं
एक प्रकाशित डेस्कटॉप बिल्ड चालू है डाउनलोड पेज. यह मार्गदर्शिका रिपॉजिटरी स्थापित करती है और चलती है desktop:dev. पढ़ना स्थापित करना जब आप इसके बजाय रिलीज़ कलाकृतियाँ चाहते हैं।
कार्यक्षेत्र Bun घोषित करता है 1.4.4 इसके पैकेज मैनेजर के रूप में। निर्भरता स्थापना के लिए रिपॉजिटरी लॉकफ़ाइल का उपयोग करें। नेटिव डेस्कटॉप विकास के लिए रस्ट टूलचेन, प्लेटफ़ॉर्म की टॉरी बिल्ड निर्भरता और एक स्थापित सिस्टम वेबव्यू की भी आवश्यकता होती है। टौरी सीएलआई पहले से ही एक डेस्कटॉप विकास निर्भरता है।
- मैक ओएस: रस्ट/नेटिव लिंकिंग और पैकेजिंग के लिए Xcode कमांड-लाइन टूल।
- खिड़कियाँ: mSVC टूलचेन और WebView2 रनटाइम/बिल्ड पूर्वापेक्षाएँ।
- लिनक्स: WebKitGTK 4.1, एप्लिकेशन-संकेतक, librsvg, OpenSSL, और बंडलर टूल। सीआई वर्कफ़्लो उबंटू पर उपयोग किए गए पैकेजों को रिकॉर्ड करता है।
- आईओएस साथी: macOS, Xcode, CocoaPods, और एक देशी एक्सपो बिल्ड जिसमें स्थानीय पिनिंग मॉड्यूल शामिल है।
ब्राउज़र पूर्वावलोकन के लिए Bun और कार्यक्षेत्र निर्भरता की आवश्यकता होती है लेकिन रस्ट शेल को संकलित नहीं किया जाता है। रिलीज़ इंस्टॉलर को अतिरिक्त रूप से हस्ताक्षरित कॉन्फ़िगरेशन की आवश्यकता होती है; यह स्थानीय यूआई विकास से अलग है।
निर्भरताएँ स्थापित करें
bun install
bun run --filter @cadcamfun/desktop typecheck
bun test packages/core कार्यस्थल रूट पर एक बार स्थानीय रूप से स्थापित करें workspace:* निर्भरताएँ एक साथ हल होती हैं। सीआई का उपयोग करता है bun install --frozen-lockfile लॉकफ़ाइल ड्रिफ्ट को अस्वीकार करने के लिए। यह मानने के बजाय कि प्रत्येक पैकेज समान टाइपस्क्रिप्ट निष्पादन योग्य का उपयोग करता है, रिपॉजिटरी के कॉन्फ़िगर किए गए कंपाइलर का चयन करने के लिए पैकेज स्क्रिप्ट का उपयोग करें।
उपरोक्त लक्षित आदेश त्वरित स्रोत जाँच प्रदान करते हैं। संपूर्ण कार्यस्थान की जाँच होती है bun run typecheck और bun run test; वे अधिक मॉड्यूल को कवर करते हैं और अधिक समय ले सकते हैं। एक व्यक्तिगत पासिंग पैकेज यह साबित नहीं करता है कि सभी रनटाइम एकीकरण कॉन्फ़िगर किए गए हैं।
डेटाबेस सेटअप
वास्तविक डेस्कटॉप को अलग सीएलआई माइग्रेशन कमांड की आवश्यकता नहीं होती है। इसका लॉन्चर एप्लिकेशन डेटा निर्देशिका और साइडकार में चरणबद्ध माइग्रेशन की आपूर्ति करता है; डेटाबेस खोलने से लंबित माइग्रेशन लागू होता है। 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. माइग्रेशन लागू करने से चयनित सीएलआई डेटाबेस अद्यतन होता है, प्रत्येक एप्लिकेशन डेटाबेस नहीं। मूल डेस्कटॉप डेटा टौरी एप्लिकेशन डेटा निर्देशिका में रहता है; मैन्युअल रूप से शुरू की गई साइडकार का उपयोग CADCAMFUN_DATA_DIR.
डेटाबेस जानबूझकर चुनें
एक सफल सीएलआई माइग्रेशन यह नहीं बदलता कि डेस्कटॉप कौन सा डेटाबेस खोलता है। गुम परियोजनाओं की जांच करने या मैन्युअल डेटा ऑपरेशन लागू करने से पहले साइडकार डेटा निर्देशिका का पता लगाएं।
डेस्कटॉप खोलें
bun run desktop:dev यह वास्तविक Bun साइडकार को संकलित करता है और चरणबद्ध प्रवासन करता है, फिर टौरी चलाता है। तौरी ने विटे की शुरुआत की http://localhost:1420 और वेबव्यू खोलता है. रस्ट शेल साइडकार के तैयार हैंडशेक की प्रतीक्षा करता है; वेबव्यू रूट की गई स्क्रीन दिखाने से पहले स्वास्थ्य की जांच करता है।
लॉन्चिंग टर्मिनल को खुला रखें. शेल साइडकार जीवनचक्र का मालिक है और इसके लॉन्च टोकन और पथ की आपूर्ति करता है। यदि स्टार्टअप विफल हो जाता है, तो बूट कारण और एप्लिकेशन लॉग का निरीक्षण करें। वेबव्यू 150 सेकंड तक एंडपॉइंट खोज का पुनः प्रयास करता है; शेल एक स्वचालित साइडकार पुनरारंभ की अनुमति देता है।
bun run --filter @cadcamfun/desktop dev खुला http://localhost:1420. नहीं के साथ VITE_SIDECAR_URL, यह इन-मेमोरी नकली एपीआई का उपयोग करता है। यह अनुरोधों के सबसेट का समर्थन करता है और लगातार प्रोजेक्ट, प्रदाता सत्र या मूल संवाद प्रदान नहीं करता है। वाइट साइडकार यूआरएल और टोकन प्रोसेस वेरिएबल दोनों सेट करके लाइव साइडकार से कनेक्ट करें।
डेस्कटॉप पैकेज tauri:dev बाइनरी गायब होने पर स्क्रिप्ट एक स्टब साइडकार बनाती है। स्टब शेल अलगाव का समर्थन करता है। जड़ को प्राथमिकता दें desktop:dev एप्लिकेशन सेवाओं का प्रयोग करते समय आदेश दें।
bun run desktop:dev पहला रन build:sidecar, जो साइडकार को संकलित करता है और माइग्रेशन (पाइपलाइन चरण) को चरणबद्ध करता है compile और resources). फिर यह शुरू होता है tauri dev डेस्कटॉप पैकेज में.
प्रथम सत्र सत्यापित करें
- एप्लिकेशन के बूट स्क्रीन छोड़ने की प्रतीक्षा करें और पुष्टि करें कि यह इच्छित एपीआई से जुड़ा है।
- एक प्रोजेक्ट बनाएं या खोलें और CAD या CAM दर्ज करें।
- कार्य को सहेजें और दृढ़ता को सत्यापित करने के लिए प्रोजेक्ट/संसाधन यूआई के माध्यम से इसे फिर से खोलें।
- यदि सहायक का उपयोग कर रहे हैं, तो बातचीत शुरू करने से पहले डेस्कटॉप सेटिंग्स में एक समर्थित मॉडल प्रदाता को कॉन्फ़िगर करें।
- यदि iOS कंपेनियन का उपयोग कर रहे हैं, तो उसके गेटवे को सक्षम करें और डेस्कटॉप पर एक डिवाइस पेयरिंग बनाएं।
दृश्यमान पथ का परीक्षण मशीनिंग सुरक्षा को मान्य नहीं करता है। एनसी आउटपुट को मशीन में स्थानांतरित करने से पहले वास्तविक ऑपरेशन के लिए स्टॉक, टूलींग, मशीन सीमा, पोस्ट आउटपुट और सत्यापन परिणामों का निरीक्षण करें।
bun run --cwd packages/web start
bun run --cwd packages/web check
bun run --cwd packages/web build जाल start कमांड एस्ट्रो चलाता है। इसके मुद्रित स्थानीय पते का उपयोग करें। जाल dev स्क्रिप्ट अतिरिक्त रूप से स्टूडियो एपीआई शुरू करती है, जो चयनित स्थानीय डेटाबेस को खोल सकती है; केवल स्थिर दस्तावेज़ीकरण के बजाय स्टूडियो पर काम करते समय इसका उपयोग करें।
अगले आदेश
| लक्ष्य | आज्ञा |
|---|---|
| केवल साइडकार और स्टेज माइग्रेशन संकलित करें | bun run build:sidecar |
| इंस्टॉलर के बिना फ्रंटएंड बनाएं | bun run build:desktop |
| मूल निर्माण योजना की समीक्षा करें | bun scripts/build.ts --dry-run |
| एपीआई क्लाइंट पुनर्जीवित करें | bun run generate |
| उत्पन्न ग्राहकों की जाँच करें | bun run generate:check |
| साथी परिवहन परीक्षण चलाएँ | bun run --cwd apps/mobile test |
बिना किसी मॉडल के वास्तविक एपीआई सत्यापित करें
स्थानीय विकास मार्गदर्शिका में वर्णित मैन्युअल साइडकार प्रारंभ करें, या आपके द्वारा नियंत्रित विकास प्रक्रिया के समापन बिंदु/टोकन का उपयोग करें। निम्नलिखित नुस्खा एक डिस्पोजेबल प्रोजेक्ट बनाता है और उसे सूचीबद्ध करता है। इसे कर्ल की जरूरत है; वैकल्पिक पहचानकर्ता निष्कर्षण 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" स्वास्थ्य एक स्थिति/टाइमस्टैम्प ऑब्जेक्ट लौटाता है। प्रोजेक्ट निर्माण HTTP 201 और उसके पहचानकर्ता के साथ एक प्रोजेक्ट पंक्ति लौटाता है। लिस्टिंग मालिक/संगठन संबंधों और गणनाओं के साथ परियोजनाओं की एक श्रृंखला लौटाती है; पहचानकर्ता द्वारा पढ़ने से ऐसा ही एक संबंधित प्रोजेक्ट मिलता है। उदाहरण किसी मॉडल को कॉल नहीं करता या मशीन आउटपुट उत्पन्न नहीं करता।
मैन्युअल साइडकार को सफाई से बंद करें, इसे उसी डेटा निर्देशिका के साथ पुनः आरंभ करें, अल्पकालिक यूआरएल को अपडेट करें, और दृढ़ता की जांच करने के लिए परियोजनाओं को फिर से सूचीबद्ध करें। एक नया लॉन्च एक अलग पोर्ट चुन सकता है। यदि यह प्रोजेक्ट अनुपस्थित है, तो पहले डेटा निर्देशिका, क्लाइंट एंडपॉइंट और प्राधिकरण संदर्भ की तुलना करें।
इस डिस्पोजेबल प्रोजेक्ट के लिए क्लीनअप वैकल्पिक और विनाशकारी है: भेजें DELETE /api/projects/<id> लौटाए गए पहचानकर्ता की पुष्टि करने के बाद ही। सफल होने के लिए सफ़ाई की आवश्यकता के बिना अभ्यास एप्लिकेशन का निर्माण/सूची/पढ़ना दृढ़ता।
प्रथम-रन विफलताओं की व्याख्या करें
| असफलता | संभावित सीमा | अगला कदम |
|---|---|---|
| निर्भरता स्थापना स्थानीय पैकेज का समाधान नहीं कर सकती | कार्यस्थल स्थापना | घोषित Bun संस्करण और लॉकफ़ाइल के साथ रिपॉजिटरी रूट से चलाएँ। |
| नेटिव लिंकिंग या वेबकिट त्रुटि | तौरी पूर्वापेक्षाएँ | मिलान सीआई लक्ष्य द्वारा उपयोग की जाने वाली टूलचेन/प्लेटफ़ॉर्म लाइब्रेरी स्थापित करें। |
| कोई तैयार कार्यक्रम नहीं | साइडकार कॉन्फ़िगरेशन, माइग्रेशन, या स्टार्टअप | stderr और संरचित त्रुटि घटना का निरीक्षण करें। स्टडिन को खुला रखें. |
| स्वास्थ्य कार्य, प्रोजेक्ट कॉल रिटर्न 401 | प्राधिकार | स्वास्थ्य सार्वजनिक है; संरक्षित एपीआई कॉल के लिए अभी भी वर्तमान प्रक्रिया टोकन की आवश्यकता है। |
| रिटर्न बनाएं 400 | सत्यापन/व्यवसाय सत्यापन का अनुरोध करें | JSON को गैर-रिक्त नाम के साथ भेजें और लौटाए गए संदेश का निरीक्षण करें। |
| संगठन डेटा के साथ रिटर्न 403 बनाएं | संगठन की सदस्यता | किसी पहुंच योग्य संगठन का उपयोग करें या स्थानीय जांच के लिए संगठन फ़ील्ड को छोड़ दें। |
| मूल साथी का कहना है कि पिनिंग अनुपलब्ध है | स्थानीय एक्सपो मॉड्यूल गुम है | कस्टम iOS बिल्ड का उपयोग करें, एक्सपो गो का नहीं। |
पहले सत्यापन को छोटा रखें: स्वास्थ्य, एक प्रोजेक्ट, एक निरंतर ड्राइंग/प्रोग्राम, फिर वैकल्पिक एकीकरण। एक सफल बेस एप्लिकेशन लॉन्च स्ट्राइप, एआई प्रदाताओं, रिमोट गिटहब रिपॉजिटरी या मोबाइल रूटिंग को स्वचालित रूप से कॉन्फ़िगर नहीं करता है।
आवश्यकता विवरण
| औजार | संस्करण | के लिए आवश्यक है |
|---|---|---|
| Bun | 1.4.4 (भंडार का packageManager) | सब कुछ: इंस्टॉल, परीक्षण, साइडकार, स्क्रिप्ट |
| Rust उपकरण श्रृंखला + तौरी पूर्वापेक्षाएँ | स्थिर; Linux पर प्लेटफ़ॉर्म वेबव्यू लाइब्रेरीज़ | डेस्कटॉप शेल (desktop:dev, बनाता है) |
| SQLite सीएलआई | कोई | वैकल्पिक: केवल पढ़ने योग्य डेटाबेस निरीक्षण |
| एक्सकोड | — | केवल iOS साथी के लिए |
आपका पहला घंटा, चरण दर चरण
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 - जब खिड़की खुलती है, तो साइडकार स्थिति सेकंड के भीतर तैयार हो जाती है; पहली लॉन्च पर एक नई डेटा निर्देशिका माइग्रेट की जाती है।
- एक प्रोजेक्ट बनाएं, एक चित्र जोड़ें, एक आयत बनाएं और उसे बाहर निकालें।
- सीएएम खोलें, ठोस चुनें और उत्पन्न करें। एनसी निर्यात करने से पहले रिलीज स्तर और दावों की जांच करें।
- इतिहास पैनल खोलें और प्रतिबद्ध करें: प्रोजेक्ट का अब पहला संस्करण है।
किसी मॉडल कुंजी की आवश्यकता नहीं
उपरोक्त सभी चीजें एआई प्रदाता के बिना काम करती हैं। बाद में सहायक सेटिंग्स में एक कुंजी जोड़ें।