Orbit

अपने प्रोजेक्ट को तैनात करना

Once a repository is connected, Orbit deploys on every push to your production branch: it clones the commit, installs dependencies, runs your build, packages the output and starts serving it. This…

एक बार रिपोजिटरी कनेक्ट हो जाने के बाद, Orbit आपकी प्रोडक्शन ब्रांच में हर पुश पर डिप्लॉय करता है: यह कमिट को क्लोन करता है, डिपेंडेंसीज इंस्टॉल करता है, आपका बिल्ड चलाता है, आउटपुट को पैकेज करता है और इसे सर्व करना शुरू करता है। यह गाइड पूरे डिप्लॉय साइकल को कवर करती है, कैसे मैनुअली एक को ट्रिगर करें, और वे कंट्रोल जो यह तय करते हैं कि डिप्लॉय को लाइव जाने की अनुमति कब है।

ऑटोमैटिक डिप्लॉयज कैसे काम करते हैं

Settings में Production branch के रूप में सेट की गई ब्रांच को हर पुश, फिर Git, एक डिप्लॉय को ट्रिगर करता है। Orbit फिर:

  1. GitHub, GitLab या Bitbucket से पुश इवेंट प्राप्त करता है।
  2. एक डिप्लॉयमेंट को क्यू करता है और इसे एक बिल्ड स्लॉट असाइन करता है।
  3. उस सटीक कमिट पर आपकी रिपोजिटरी को क्लोन करता है।
  4. आपकी कैश की गई node_modules को रिस्टोर करता है यदि आपकी प्लान पर बिल्ड कैश उपलब्ध है।
  5. आपका इंस्टॉल कमांड चलाता है (npm ci, yarn install या pnpm install, आपकी लॉकफाइल से डिटेक्ट किया गया)।
  6. आपका बिल्ड कमांड चलाता है।
  7. आउटपुट डायरेक्टरी को एक डिप्लॉयमेंट आर्टिफैक्ट में पैकेज करता है और इसे अपलोड करता है।
  8. एनवायरनमेंट को नए आर्टिफैक्ट को सर्व करने के लिए स्विच करता है।

डिप्लॉयमेंट डिटेल पेज इन्हें नामित Build phases के रूप में दिखाता है: Clone, Cache restore, Install, Cache save, Build, Upload, Done। अधिकांश प्रोजेक्ट एक से तीन मिनट में पूरे हो जाते हैं।

Orbit प्रोजेक्ट ओवरव्यू सबसे नवीनतम बिल्ड दिखा रहा है

डिप्लॉय स्टेटसेज

स्टेटसमतलब
Queuedएक बिल्ड स्लॉट के लिए प्रतीक्षा कर रहा है। डिप्लॉयमेंट पेज आपकी क्यू में स्थिति दिखाता है
Awaiting approvalRequire approval for production चालू होने के कारण रोका गया है। किसी को इसे मंजूरी देनी होगी
Buildingडिपेंडेंसीज इंस्टॉल कर रहा है और आपका बिल्ड कमांड चला रहा है
Deployingबिल्ड पूर्ण हो गया है, नया आर्टिफैक्ट ट्रैफिक के सामने रखा जा रहा है
Succeeded (Live के रूप में दिखाया गया है)ट्रैफिक सर्व कर रहा है। डिप्लॉयमेंट एक CURRENT बैज ले जाता है
Failedबिल्ड या डिप्लॉय स्टेप में त्रुटि हुई है। त्रुटि देखने के लिए लॉग खोलें
Cancelledपूर्णता से पहले रोका गया, आपके द्वारा या एक ही ब्रांच को नए पुश से
Rolled backएक पहले की बिल्ड को रोलबैक करके प्रतिस्थापित किया गया

एक बिल्ड को प्रगति में देखना

प्रोजेक्ट Overview वर्तमान बिल्ड को Latest build पैनल में लाइव स्ट्रीमिंग लॉग के साथ दिखाता है। डिप्लॉयमेंट डिटेल पेज खोलने के लिए Full details पर क्लिक करें, जो एक बिल्ड प्रोग्रेस बार, अनुमानित समय शेष, क्यू स्थिति, और फेज द्वारा विभाजित बिल्ड टाइमलाइन जोड़ता है।

यदि आपकी प्लान एक से अधिक समवर्ती बिल्ड की अनुमति देती है और वे सब व्यस्त हैं, पेज आपको स्पष्ट रूप से बताता है: यह दिखाता है कि आपके समवर्ती बिल्ड स्लॉट में से कितने उपयोग में हैं और आपके डिप्लॉयमेंट को स्वचालित रूप से शुरू करता है जब एक मुक्त होता है। आप Orbit पर अपने सभी प्रोजेक्ट के पार हर बिल्ड को फ्लाइट में देख सकते हैं, फिर Queue

मैनुअली एक डिप्लॉय को ट्रिगर करना

नए कमिट को पुश किए बिना डिप्लॉय करने के चार तरीके हैं।

सबसे नवीनतम कमिट को रीडिप्लॉय करें

  1. प्रोजेक्ट खोलें।
  2. Deployments टैब खोलें।
  3. डिप्लॉयमेंट पर क्लिक करें जिसे आप चाहते हैं, इसके डिटेल पेज को खोलने के लिए।
  4. Retry build पर क्लिक करें। More retry options का उपयोग करें, फिर Retry with cleared cache, यदि आप एक स्टेल कैश की गई डिपेंडेंसी पर संदेह करते हैं।

अभी डिप्लॉय करें

Deployments टैब पर Deploy now बटन आपकी प्रोडक्शन ब्रांच के वर्तमान हेड का एक ताज़ा बिल्ड क्यू करता है।

एक डिप्लॉय शेड्यूल करें

एक डिप्लॉयमेंट को भविष्य के समय के लिए शेड्यूल किया जा सकता है। Orbit उस पल में कमिट को स्नैपशॉट करता है जब आप इसे शेड्यूल करते हैं, इसलिए बिल्ड जो बाद में चलता है वह कोड है जिसे आपने मंजूरी दी है, न कि जो इस बीच लैंड हुआ।

डिप्लॉय हुक्स

एक डिप्लॉय हुक एक गुप्त URL है जो एक बिल्ड को क्यू करता है जब कोई इसे POST रिक्वेस्ट भेजता है। इन्हें एक हेडलेस CMS, एक cron जॉब या एक CI पाइपलाइन से फिर से बिल्ड करने के लिए उपयोग करें। प्रोजेक्ट के Hooks टैब पर इन्हें सेट अप करें। डिप्लॉय हुक्स के माध्यम से डिप्लॉयमेंट्स को ट्रिगर करना देखें।

बिल्ड सेटिंग्स

Orbit अधिकांश प्रोजेक्ट के लिए समझदारीपूर्ण डिफॉल्ट्स डिटेक्ट करता है। Settings में किसी को भी ओवरराइड करें, फिर Build settings:

फील्डखाली होने पर प्लेसहोल्डरउदाहरण
Install commandnpm ci (auto-detected)npm ci, yarn install --frozen-lockfile, pnpm install
Build commandnpm run build (auto-detected)npm run build, next build, vite build, astro build
Output directorydist (auto-detected)dist, .next, out, build, .output
Root directory/ (monorepo subdirectory)apps/web
Node.js versionप्लेटफॉर्म डिफॉल्ट18, 20, 22

ऑटो डिटेक्ट किए गए मान को रखने के लिए एक फील्ड खाली छोड़ें। पूरा विवरण, प्रति-फ्रेमवर्क मानों सहित और गलतियां जो पहले डिप्लॉय को विफल करने का कारण बनती हैं, अपना बिल्ड कमांड और आउटपुट डायरेक्टरी कॉन्फ़िगर करना में है।

एक Root directory सेट करना काम डायरेक्टरी को बदलने से अधिक करता है। पुश जो केवल उस पथ के बाहर की फाइलों को बदलते हैं, स्वचालित रूप से छोड़ दिए जाते हैं, इसलिए एक monorepo हर कमिट पर हर ऐप को फिर से बिल्ड नहीं करता है।

यह तय करना कि डिप्लॉय को कब अनुमति है

Orbit के कई स्वतंत्र गेट हैं। ये सभी Settings में रहते हैं।

डिप्लॉय लॉक्स

एक घटना, रखरखाव विंडो या कोड फ्रीज के दौरान प्रोडक्शन को फ्रीज करने के लिए एक लॉक का उपयोग करें।

  1. प्रोजेक्ट खोलें।
  2. Lock deploys पर क्लिक करें।
  3. एक वैकल्पिक कारण जोड़ें।

लॉक होने पर, पुश-ट्रिगर किए गए डिप्लॉयमेंट्स चुप चाप छोड़ दिए जाते हैं और एक बैनर Production deploys are locked के साथ आपका कारण पढ़ता है। मैनुअल डिप्लॉयमेंट्स अभी भी काम करते हैं, जो जानबूझकर है: एक लॉक आकस्मिक डिप्लॉयमेंट्स को रोकता है, जिस फिक्स को आप शिप करने की कोशिश कर रहे हैं नहीं। इसे हटाने के लिए Unlock deploys पर क्लिक करें।

प्रोडक्शन के लिए अनुमोदन की आवश्यकता

Deploy protection के तहत Require approval for production चालू करें। पुश-ट्रिगर किए गए प्रोडक्शन डिप्लॉयमेंट्स फिर Awaiting approval पर रुकते हैं जब तक कि कोई डिप्लॉयमेंट खोलता है और Approve या Reject पर क्लिक करता है। पैनल डिप्लॉयमेंट्स और डिप्लॉय हुक्स प्रभावित नहीं होते हैं।

प्रथम स्टेजिंग सफलता की आवश्यकता

Require staging success before production एक पुश-ट्रिगर किए गए प्रोडक्शन डिप्लॉय को तब तक रोकता है जब तक कि स्टेजिंग एनवायरनमेंट सफलतापूर्वक एक ही कमिट को डिप्लॉय न कर दे। कोई व्यक्ति अभी भी प्रतीक्षा को छोड़ने के लिए मैनुअली मंजूरी दे सकता है।

CI आवश्यक चेक

CI required checks के तहत अपने स्वयं के CI पर डिप्लॉयमेंट्स गेट करें। GitHub पर, अल्पविराम-अलग Actions जॉब नाम दर्ज करें और सभी को पास होना चाहिए। GitLab पर, कोई भी गैर-खाली मान पूरी पाइपलाइन के लिए प्रतीक्षा करता है। एक CI विफलता Orbit डिप्लॉय को स्वचालित रूप से रद्द करता है।

डिप्लॉय फ्रीज शेड्यूल

Deploy freeze schedule अनुमोदित विंडो के बाहर पुश-ट्रिगर किए गए डिप्लॉयमेंट्स को ब्लॉक करता है: एक सप्ताहांत ब्लॉक, एक अनुमोदित घंटे की सीमा, या दोनों। सभी समय UTC हैं। मैनुअल डिप्लॉयमेंट्स और डिप्लॉय हुक्स प्रभावित नहीं होते हैं।

डिप्लॉय फ्रीज को छोड़कर ऊपर दिए गए हर गेट केवल पुश-ट्रिगर किए गए डिप्लॉयमेंट्स को ब्लॉक करते हैं। डिप्लॉय हुक्स और मैनुअल पैनल डिप्लॉयमेंट्स सीधे गुजरते हैं। यदि एक हुक URL लीक हो जाता है, ये सेटिंग्स में से कोई भी इसे बिल्ड को क्यू करने से नहीं रोकेगा। हुक URLs को क्रेडेंशियल्स की तरह ट्रीट करें।

आप जिन बिल्ड्स की जरूरत नहीं है उन्हें छोड़ना

  • Ignored paths: अल्पविराम-अलग glob पैटर्न। यदि एक पुश की हर फाइल मेल खाती है, तो बिल्ड छोड़ दिया जाता है। *.md,docs/** दस्तावेज़ कमिट्स को डिप्लॉयमेंट्स को ट्रिगर करने से रोकता है।
  • Branch ignore patterns: मेल खाने वाली ब्रांच से पुश्स पूरी तरह से छोड़ दिए जाते हैं। dependabot/*,renovate/* सामान्य मामला है।
  • Git tag deploys: प्रोडक्शन को डिप्लॉय करें जब एक मेल खाने वाला टैग पुश किया जाता है, v* जैसे glob का उपयोग करके।

बिल्ड कैश

Orbit Liftoff और Apex प्लान्स पर बिल्ड्स के बीच node_modules को कैश करता है। जब एक कैश की गई इंस्टॉल का उपयोग किया जाता है, डिप्लॉयमेंट एक Cache hit बैज दिखाता है और इंस्टॉल फेज नाटकीय रूप से छोटा होता है। एक कोल्ड बिल्ड इसके बजाय Cold build दिखाता है।

एक पूर्ण पुनः इंस्टॉल करने के लिए, Settings खोलें, फिर Clear build cache, और पुष्टि करें। अगला डिप्लॉयमेंट प्रत्येक एनवायरनमेंट के लिए शुरुआत से एक पूर्ण इंस्टॉल चलाता है।

यदि एक बिल्ड एक ऐसे तरीके से विफल होता है जिसे आप समझा नहीं सकते और कोड स्थानीय रूप से ठीक है, तो कुछ भी बदलना शुरू करने से पहले कैश को साफ किए गए साथ इसे फिर से करें। एक स्टेल कैश की गई डिपेंडेंसी ट्री एक सामान्य और बहुत भ्रमित करने वाला कारण है।

जब एक डिप्लॉय गलत हो जाता है

Orbit आपके लिए एक बुरे डिप्लॉय को पकड़ सकता है बजाय इसे लाइव रखने के:

  • Auto-rollback on failure यदि एक प्रोडक्शन डिप्लॉय विफल होता है तो स्वचालित रूप से अंतिम स्वस्थ डिप्लॉयमेंट को रिस्टोर करता है।
  • Health check हर प्रोडक्शन डिप्लॉय के बाद आप जो पथ चुनते हैं उसे फेच करता है। 15 सेकंड के भीतर एक गैर-2xx प्रतिक्रिया पिछले स्वस्थ डिप्लॉयमेंट को रिस्टोर करता है।
  • Smoke tests प्रत्येक सफल डिप्लॉय के बाद 10 पथों तक के खिलाफ GET रिक्वेस्ट्स चलाता है और पास या विफल रिकॉर्ड करता है। ऑटो-रोलबैक के साथ संयुक्त, एक विफल स्मोक टेस्ट डिप्लॉय को रोल करता है।

एक डिप्लॉय को अपने आप पूर्ववत करने के लिए, एक डिप्लॉयमेंट को रोल बैक करना देखें। यह पता लगाने के लिए कि एक बिल्ड क्यों विफल हुआ, विफल बिल्ड्स को ट्रबलशूट करना देखें।

क्या आपको अभी भी सहायता की आवश्यकता है?

हमें ईमेल करें support@kapsulehost.com या KPanel में चैट खोलें।

KPanel खोलें