वेबसाइट
Git से साइट तैनात करना
Git Deploy connects a repository to a site so that every push to your chosen branch clones the code, runs your build, and publishes the result. This guide covers the initial connection, the two…
Git Deploy एक रिपोजिटरी को एक साइट से जोड़ता है ताकि आपकी चुनी हुई ब्रांच में हर पुश कोड को क्लोन करे, आपके बिल्ड को चलाए, और परिणाम प्रकाशित करे। यह गाइड प्रारंभिक कनेक्शन, दोनों रिपोजिटरी-पक्षीय चरणों को कवर करती है जो सेटअप को समाप्त करते हैं, डिप्लॉय इतिहास को पढ़ना, और बिल्डपैक डिटेक्शन जो यह तय करता है कि Node.js ऐप्लिकेशन कैसे बनाया जाता है।
Git Deploy कहां स्थित है
Websites खोलें, साइट पर क्लिक करें, साइट टैब स्ट्रिप में Advanced मेनू खोलें, और Git Deploy चुनें। दो संबंधित पृष्ठ एक ही मेनू में स्थित हैं:
- Deploys, इस साइट के लिए पूर्ण डिप्लॉय इतिहास।
- Buildpack, पता लगाई गई बिल्ड स्ट्रेटेजी, Node.js साइटों पर।
Git Deploy पृष्ठ स्वयं को स्पष्ट रूप से वर्णित करता है: एक रिपोजिटरी को कनेक्ट करें और आपकी कॉन्फ़िगर की गई ब्रांच में हर पुश एक बिल्ड और डिप्लॉय को ट्रिगर करता है।

एक रिपोजिटरी को कनेक्ट करना
- अपना Provider चुनें: GitHub, GitLab या Bitbucket।
- Repository URL दर्ज करें। SSH फॉर्म वह है जो आप चाहते हैं, उदाहरण के लिए
git@github.com:user/repo.git। - Branch को डिप्लॉय करने के लिए सेट करें। फील्ड
mainसे शुरू होता है। - वैकल्पिक रूप से एक Build command सेट करें, उदाहरण के लिए
npm run build। - वैकल्पिक रूप से एक Output directory सेट करें, उदाहरण के लिए
dist,public, या.एक रिपोजिटरी के लिए जो पहले से ही बनाया हुआ है। - Connect repo पर क्लिक करें।
बिल्ड कमांड और आउटपुट डायरेक्टरी को खाली छोड़ दें यदि आपकी रिपोजिटरी पहले से ही डिप्लॉय करने योग्य है जैसा है, जो सादे PHP या स्टेटिक साइट के लिए सामान्य स्थिति है।
Advanced Scripts
Advanced को विस्तारित करने से दो अतिरिक्त फील्ड दिखाई देते हैं:
- Pre-deploy script, जो बिल्ड से पहले चलता है।
- Post-deploy script, जो डिप्लॉय के बाद चलता है।
Post-deploy हुक का उपयोग उन चीजों के लिए करें जो एक बार नया कोड तैनात होने के बाद होनी चाहिए: एक एप्लिकेशन कैश को साफ करना, एक डेटाबेस माइग्रेशन चलाना, एक वर्कर को पुनः शुरू करना।
Auto-Deploy On Push
कार्ड के नीचे टॉगल नियंत्रित करता है कि क्या पुश डिप्लॉय करते हैं। जब यह चालू होता है, तो कॉन्फ़िगर की गई ब्रांच में हर पुश एक डिप्लॉय को ट्रिगर करता है। जब यह बंद होता है, तो डिप्लॉय केवल तब चलते हैं जब आप उन्हें Deploy now के साथ मैन्युअल रूप से ट्रिगर करते हैं।
एक कोड फ्रीज या घटना के दौरान auto-deploy को बंद कर दें बजाय रिपोजिटरी को डिस्कनेक्ट करने के। डिस्कनेक्ट करने से डिप्लॉय कुंजी और वेबहुक सीक्रेट फेंक दिया जाता है, इसलिए आपको बाद में दोनों रिपोजिटरी-पक्षीय चरणों को फिर से करना होगा।
अपनी रिपोजिटरी में सेटअप को समाप्त करना
KPanel में रिपोजिटरी को कनेक्ट करना तीन चरणों में से केवल पहला है। जब तक एक डिप्लॉय नहीं चला है, पृष्ठ Complete setup: 2 steps remaining पढ़ने वाले एक बैनर को दिखाता है जिसमें आपको जो कुछ भी चाहिए वह सब कुछ है।
Step 2: Deploy Key जोड़ें
Kapsule को आपकी रिपोजिटरी को क्लोन करने के लिए पढ़ने की एक्सेस की आवश्यकता है। बैनर एक Copy key बटन के साथ एक सार्वजनिक कुंजी दिखाता है।
इसे अपनी रिपोजिटरी की डिप्लॉय कुंजियों में पेस्ट करें। GitHub के लिए बैनर Add to GitHub शॉर्टकट सीधे सही सेटिंग्स पृष्ठ पर प्रदान करता है। पढ़ने की एक्सेस पर्याप्त है; लिखने की एक्सेस न दें।
Step 3: Webhook जोड़ें
वेबहुक यह है जो Kapsule को बताता है कि एक पुश हुआ है। बैनर आपको तीन मान देता है:
| Field | Value |
|---|---|
| Payload URL | /api/git-deploy/webhook/ में समाप्त होने वाला एक URL और इस साइट की ID |
| Secret | एक उत्पन्न हस्ताक्षर सीक्रेट, जब तक आप आई आइकन पर क्लिक न करें तब तक छुपा हुआ |
| Content Type | application/json |
प्रत्येक को अपनी रिपोजिटरी की वेबहुक सेटिंग्स में कॉपी करें। GitHub के लिए Add webhook to GitHub शॉर्टकट है। कंटेंट टाइप को JSON पर सेट करें, डिफ़ॉल्ट फॉर्म-एन्कोडेड नहीं, या पेलोड पार्स नहीं होगा।
वेबहुक सीक्रेट को पासवर्ड की तरह मानें। जो भी इसे रखता है, साथ ही पेलोड URL, आपकी साइट के डिप्लॉय को ट्रिगर कर सकता है। दोनों मान केवल उन लोगों को दिखाए जाते हैं जो पहले से ही साइट को प्रशासित कर सकते हैं, और सीक्रेट तब तक आई आइकन के पीछे छुपा रहता है जब तक आप इसके लिए न पूछें।
हाथ से डिप्लॉय करना
Git Deploy पृष्ठ पर Deploy now पर क्लिक करें कॉन्फ़िगर की गई ब्रांच के वर्तमान हेड को बनाने और डिप्लॉय करने के लिए एक कमिट पुश किए बिना। यह काम करता है कि auto-deploy चालू है या नहीं, जो इसे फ्रीज के दौरान सही उपकरण बनाता है: पुश को अनदेखा किया जाता है, लेकिन आप अभी भी फिक्स को भेज सकते हैं।
Deploy History पढ़ना
Advanced खोलें, फिर Deploys। पृष्ठ Deploy history नाम का है और वेबहुक या हाथ से ट्रिगर किए गए हर डिप्लॉयमेंट को सूचीबद्ध करता है, सबसे नया पहले।
प्रत्येक पंक्ति में है:
- एक स्टेटस आइकन और छोटा कमिट SHA, ब्रांच के रूप में एक पिल के साथ।
- कमिट संदेश, या Manual deploy यदि दिखाने के लिए कोई कमिट संदेश नहीं था।
- लेखक, यह कितने समय पहले चला, यह कितने समय तक चला, और इसे क्या ट्रिगर किया।
- एक स्टेटस पिल।
स्टेटसेस हैं pending, building, deploying, success और failed। जबकि कुछ भी उड़ान में है पृष्ठ हर पांच सेकंड में खुद को ताज़ा करता है और तालिका के नीचे Refreshing automatically नोट दिखाता है, इसलिए आप इसे खुला रख सकते हैं और एक डिप्लॉय को देख सकते हैं।
जब एक Deploy विफल हो
एक विफल पंक्ति को दाईं ओर एक Error बटन मिलता है। इसे क्लिक करें पृष्ठ छोड़े बिना कैप्चर की गई त्रुटि आउटपुट को इनलाइन विस्तारित करने के लिए। वह आउटपुट बिल्ड का अपना त्रुटि पाठ है, इसलिए यह आमतौर पर फाइल या कमांड को नाम देता है जो विफल हुई।
इस क्रम में इसके साथ काम करें: त्रुटि पढ़ें, एक ही बिल्ड कमांड को स्थानीय रूप से पुनः बनाएं, ठीक करें, पुश करें। यदि बिल्ड स्थानीय रूप से काम करता है लेकिन यहां नहीं, अंतर लगभग हमेशा एक पर्यावरण एक है, एक लापता निर्भरता जो आपकी मशीन पर विश्व स्तर पर स्थापित है, या एक फाइल जो आपकी कार्यशील डायरेक्टरी में है लेकिन कमिट नहीं की गई है।
Buildpack Detection
Node.js साइटों पर, Advanced मेनू में Buildpack पृष्ठ दिखाता है कि Kapsule ने आपके ऐप को कैसे बनाने का फैसला किया है। डिटेक्शन आपकी रिपोजिटरी रूट में फाइलों के ऊपर चलता है, और पहला मैच जीतता है:
| Detected | Trigger |
|---|---|
| Custom buildpack | kapsule.config.yaml या kapsule.config.yml रूट में |
| Dockerfile buildpack | Dockerfile रूट में |
| Node.js | package.json एक start, build या dev स्क्रिप्ट के साथ |
| Python | requirements.txt या pyproject.toml |
| PHP | composer.json |
| Static | index.html रूट में |
यदि कोई मेल नहीं खाता, तो पृष्ठ कहता है और समर्थित ट्रिगर्स को सूचीबद्ध करता है। बिल्ड को स्पष्ट रूप से नियंत्रित करने के लिए एक Dockerfile या एक kapsule.config.yaml जोड़ें।
एक Build चलाना
एक को कतार में डालने के लिए Run build पर क्लिक करें। पृष्ठ हर तीन सेकंड में पोल करता है जबकि एक रन उड़ान में है, और Recent builds तालिका अंतिम रन को उनके प्रारंभ समय, प्रकार, स्टेटस, अवधि और परिणामी इमेज संदर्भ के साथ दिखाता है। इसके लॉग टेल को देखने के लिए एक पंक्ति पर क्लिक करें।
एक समय में केवल एक बिल्ड उड़ान में हो सकता है। जबकि एक को कतार में रखा जाता है या चल रहा है तब दूसरे को ट्रिगर करने से A build is already in progress से इनकार कर दिया जाता है, जो जानबूझकर है: दो बिल्ड एक ही आउटपुट में एक साथ लिख रहे हैं, यह है कि आप एक आधे-डिप्लॉय की साइट कैसे प्राप्त करते हैं।
डिस्कनेक्ट करना
Disconnect पर क्लिक करें और पुष्टि करें। पुष्टि blast radius के बारे में स्पष्ट है: Git deploy कॉन्फ़िगरेशन और डिप्लॉय कुंजी को हटा दिया जाता है, और आपकी साइट फाइलें प्रभावित नहीं होती हैं। साइट जो भी आखिरी बार डिप्लॉय किया गया था उसे सेवा देता है।
बाद में आपनी रिपोजिटरी सेटिंग्स में डिप्लॉय कुंजी और वेबहुक को हटाकर सफाई करें। वे बस काम करना बंद कर देंगे, लेकिन मृत प्रविष्टियों को चारों ओर छोड़ने से अगली ऑडिट कठिन हो जाती है।
समस्या निवारण
Pushes do not trigger anything (पुश कुछ नहीं ट्रिगर करते हैं). पहले auto-deploy टॉगल की जांच करें, फिर अपनी रिपोजिटरी में वेबहुक की जांच करें। अधिकांश प्रदाता हाल की डिलीवरीज और उनके रिस्पांस कोड दिखाते हैं, जो आपको तुरंत बताता है कि क्या अनुरोध आपकी रिपोजिटरी से बिल्कुल भी निकला।
Cloning fails (क्लोनिंग विफल होता है). डिप्लॉय कुंजी गायब है, इसमें एक लाइन ब्रेक के साथ पेस्ट किया गया था, या गलत रिपोजिटरी में जोड़ी गई थी। Copy key बटन के साथ इसे फिर से कॉपी करें बजाय पाठ को हाथ से चुनने के।
The deploy succeeds but the site does not change (डिप्लॉय सफल होता है लेकिन साइट नहीं बदलता). आउटपुट डायरेक्टरी शायद गलत है। यदि आपका बिल्ड dist में लिखता है और आउटपुट डायरेक्टरी खाली है, तो निर्मित फाइलें कभी भी सेवा की गई रूट तक नहीं पहुंचती हैं।
Everything says pending and never moves (सब कुछ pending कहता है और कभी नहीं बदलता). डिप्लॉय कतार में रखा गया था लेकिन कभी नहीं उठाया गया। एक मैनुअल Deploy now ट्रिगर करें और Deploys पृष्ठ पर एक त्रुटि पंक्ति की जांच करें।
अगले कहां जाएं
- Preview Deploys For Pull Requests इस सेटअप के शीर्ष पर एक per-PR URL जोड़ता है।
- Storing App Secrets For a Site आपके बिल्ड और रनटाइम को आवश्यक क्रेडेंशियल्स के लिए।
- Site Activity Log यहां किए गए कॉन्फ़िगरेशन परिवर्तनों को रिकॉर्ड करता है।