# पुल रिक्वेस्ट के लिए प्रीव्यू डिप्लॉय

Source: https://support.kapsulehost.com/hi-in/site-preview

पहले हर पुल रिक्वेस्ट को उसका अपना लाइव URL देते हैं, जो उस ब्रांच के कोड से बनाया जाता है, ताकि समीक्षक डिफ पढ़कर अंदाज़ा लगाने के बजाय असली बदलाव पर क्लिक करके देख सकें। जब आप नया कमिट पुश करते हैं तो हर प्रीव्यू अपडेट होता है, और पुल रिक्वेस्ट बंद होने पर यह अपने आप साफ़ कर दिया जाता है।

## प्रीव्यू डिप्लॉय कहाँ मिलेंगे

**वेबसाइटें** खोलें, साइट पर क्लिक करें, साइट के बाएँ मेनू में **Environment** समूह खोलें, और **पूर्वावलोकन** चुनें। पेज का शीर्षक **प्रीव्यू डिप्लॉय** है।

प्रीव्यू, स्टेजिंग से अलग होते हैं। स्टेजिंग साइट की एक लंबे समय तक रहने वाली प्रति है जिसे आप जानबूझकर पुश करते हैं; जबकि प्रीव्यू एक अल्पकालिक एनवायरनमेंट है जो प्रत्येक पुल रिक्वेस्ट के लिए बनाया जाता है और बाद में हटा दिया जाता है। कई टीमें दोनों का उपयोग करती हैं। दूसरे आधे के लिए [स्टेजिंग एनवायरनमेंट](https://support.kapsulehost.com/hi-in/staging-environments) देखें।

![KPanel में एक साइट के लिए प्रीव्यू डिप्लॉय पेज](https://support.kapsulehost.com/help/screenshots/site-preview.0fb977c9.webp)

## पहले Git Deploy सेट अप करें

प्रीव्यू कोई स्टैंडअलोन फीचर नहीं है। यह प्रोडक्शन साइट की डिप्लॉय की और बिल्ड कमांड का दोबारा उपयोग करता है, इसलिए प्रीव्यू सक्षम करने से पहले साइट में एक काम करने वाला Git Deploy कॉन्फ़िगरेशन होना ज़रूरी है।

अगर Git Deploy कॉन्फ़िगर नहीं है, तो पेज पर **पहले Git deploy को सेट अप करें** लिखा दिखता है और सक्षम करने वाले फॉर्म की जगह एक **Git deploy पर जाएँ** बटन दिखता है। [Git से साइट डिप्लॉय करना](https://support.kapsulehost.com/hi-in/site-git-deploy) को पूरा पढ़ें, फिर वापस आएँ।

> **Note:** अगर Git Deploy कनेक्ट है लेकिन उसमें कोई बिल्ड कमांड नहीं है, तो Preview पेज पर एक चेतावनी दिखती है। प्रीव्यू यह मानकर चलेंगे कि रिपॉज़िटरी पहले से बनी हुई है, और स्टैटिक फाइलें रूट में हैं। यह एक सामान्य HTML साइट के लिए सही है लेकिन ऐसी किसी भी चीज़ के लिए गलत है जिसे कंपाइल करना पड़ता है, इसलिए अगर आपके प्रोजेक्ट को इसकी ज़रूरत है तो Git Deploy पेज पर एक बिल्ड कमांड सेट करें।

## प्रीव्यू सक्षम करना

1. **Preview deploys को सक्षम करें** कार्ड में, रिपॉज़िटरी को `owner/repo` रूप में टाइप करें। यह कोई URL नहीं, कोई SSH पता नहीं: बस दो हिस्से, उदाहरण के लिए `acme/marketing-site`।
2. **Enable** पर क्लिक करें।

जो कुछ भी `owner/name` से मेल नहीं खाता उसे **Repo owner/name format में होना चाहिए** संदेश के साथ अस्वीकार कर दिया जाता है।

सक्षम करने के तुरंत बाद, KPanel एक कार्ड में वेबहुक साइनिंग सीक्रेट दिखाता है जिसका शीर्षक **अपना webhook secret अभी कॉपी करें** होता है, साथ ही यह चेतावनी भी कि आप इसे दोबारा नहीं देख पाएंगे।

> **Important:** पेज छोड़ने से पहले सीक्रेट कॉपी कर लें। यह केवल एक बार जनरेट होता है और बाद में इसे फिर से पाना संभव नहीं है। अगर आप इसे खो देते हैं, तो इसका समाधान इसे फिर से जनरेट करना है, जिससे पुराना सीक्रेट अमान्य हो जाता है और वैसे भी आपको अपनी रिपॉज़िटरी वेबहुक को अपडेट करना पड़ेगा।

## अपनी रिपॉज़िटरी में वेबहुक जोड़ना

कॉन्फ़िगर किया गया कार्ड एक **वेबहुक URL** दिखाता है जिसे आपको अपनी रिपॉज़िटरी सेटिंग्स में, Webhooks के अंतर्गत पेस्ट करना है। इसे इस तरह कॉन्फ़िगर करें:

- **पेलोड URL**: पेज पर दिखाया गया वेबहुक URL।
- **Secret**: वह मान जो आपने अभी कॉपी किया है।
- **कंटेंट का प्रकार**: JSON।
- **Events**: पुल रिक्वेस्ट इवेंट, साथ ही पुश भी, ताकि किसी खुले पुल रिक्वेस्ट पर नए कमिट से प्रीव्यू दोबारा बने।

एक बार यह सब सेट हो जाए, तो पुल रिक्वेस्ट खोलने पर कुछ ही मिनटों में एक प्रीव्यू बन जाता है। एक बैकग्राउंड जॉब हर मिनट नए प्रीव्यू कार्य की जाँच करता है, इसलिए KPanel में कुछ भी दबाने की ज़रूरत नहीं है।

## प्रीव्यू URL

हर प्रीव्यू को `pr-<pull-request-number>-<site-id>.kapsulecloud.app` रूप का अपना होस्टनेम मिलता है, जो एक वाइल्डकार्ड सर्टिफिकेट से सुरक्षित होता है, इसलिए यह बिना आपके अपने किसी सर्टिफिकेट स्टेप के HTTPS पर उपलब्ध रहता है।

इसे खोलने का भरोसेमंद तरीका **हाल के प्रीव्यू** में प्रीव्यू की पंक्ति पर दिया **Open** बटन है, जो उस बिल्ड के लिए प्रावधानित किए गए सटीक URL को लेकर जाता है। उस लिंक को पुल रिक्वेस्ट में पेस्ट करें ताकि समीक्षकों को KPanel ढूँढने की बिल्कुल ज़रूरत न पड़े।

## हाल के प्रीव्यू की सूची पढ़ना

**हाल के प्रीव्यू** सेक्शन सबसे हाल के प्रीव्यू को सूचीबद्ध करता है, नवीनतम सबसे पहले। हर पंक्ति पुल रिक्वेस्ट नंबर और शीर्षक, ब्रांच, कमिट, और एक स्थिति दिखाती है:

| स्थिति | अर्थ |
|---|---|
| BUILDING | अभी क्लोनिंग और बिल्डिंग हो रही है |
| LIVE | अपने प्रीव्यू URL पर सर्व हो रहा है |
| FAILED | बिल्ड में त्रुटि आई; कारण देखने के लिए लॉग विस्तृत करें |
| DESTROYED | साफ़ कर दिया गया, आमतौर पर इसलिए क्योंकि पुल रिक्वेस्ट बंद हो गया |

किसी पंक्ति का बिल्ड आउटपुट इनलाइन विस्तृत करने के लिए **Build log को toggle करें** पर क्लिक करें। प्रीव्यू विफल होने पर सबसे पहले यही लॉग देखना चाहिए, और यह वही आउटपुट है जो आपका बिल्ड स्थानीय रूप से देता।

अगर सूची खाली है, तो पेज पर यह बता दिया जाता है: रिपॉज़िटरी पर एक पुल रिक्वेस्ट खोलें और कुछ ही मिनटों में एक प्रीव्यू बन जाएगा।

## वेबहुक सीक्रेट को घुमाना

कॉन्फ़िगर किए गए कार्ड में **Secret को पुन: उत्पन्न करें** पर क्लिक करें। KPanel आपसे पुष्टि माँगता है, और स्पष्ट रूप से बताता है कि मौजूदा सीक्रेट तुरंत काम करना बंद कर देगा और बाद में आपको इसे अपनी रिपॉज़िटरी की वेबहुक सेटिंग्स में अपडेट करना होगा।

नया सीक्रेट एक बार दिखाया जाता है, पहले जैसे ही एक बार के कार्ड में। इसे कॉपी करें, फिर अपनी रिपॉज़िटरी में वेबहुक अपडेट करें। इन दोनों क्षणों के बीच, आने वाली वेबहुक डिलीवरी अस्वीकार कर दी जाती हैं, इसलिए दोनों चरण एक के बाद एक करें।

सीक्रेट को तब फिर से जनरेट करें जब किसी व्यक्ति की रिपॉज़िटरी एडमिन एक्सेस चली जाती है, या अगर सीक्रेट कभी किसी ऐसी जगह पेस्ट किया गया हो जहाँ इसे नहीं होना चाहिए था, जैसे किसी साझा चैट चैनल या किसी टिकट में।

## प्रीव्यू बंद करना

**Disable** पर क्लिक करें। कॉन्फ़िगरेशन बंद कर दिया जाता है और संग्रहीत सीक्रेट मिटा दिया जाता है। मौजूदा प्रीव्यू को दोबारा बनाना बंद हो जाता है।

अपनी रिपॉज़िटरी में भी वेबहुक मिटाकर इसे साफ़ कर लें। यह कोई नुकसान करने के बजाय विफल होना शुरू कर देगा, लेकिन एक वेबहुक जो हमेशा त्रुटियाँ लौटाता रहे, वह आपकी रिपॉज़िटरी के डिलीवरी लॉग में शोर पैदा करता है।

## लागत और रखरखाव

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

- जिन पुल रिक्वेस्ट पर आप अब काम नहीं कर रहे हैं, उन्हें बंद करें। बंद पुल रिक्वेस्ट का प्रीव्यू अपने आप साफ़ कर दिया जाता है।
- प्रीव्यू को प्रोडक्शन क्रेडेंशियल की ओर न इंगित करें। [Secrets](https://support.kapsulehost.com/hi-in/site-secrets) टैब के **preview** एनवायरनमेंट के ज़रिए उन्हें टेस्ट कीज़ दें, जो ठीक इसीलिए मौजूद है ताकि प्रीव्यू और प्रोडक्शन कॉन्फ़िगरेशन में कभी गड़बड़ी न हो।

> **Warning:** प्रीव्यू URL निजी नहीं होता। यह एक असली, सार्वजनिक रूप से पहुँच योग्य होस्टनेम है जिसमें एक वैध सर्टिफिकेट होता है, और जिसके पास लिंक है वह इसे खोल सकता है। असली ग्राहक डेटा वाली किसी भी चीज़ की समीक्षा के लिए प्रीव्यू का उपयोग न करें, और प्रीव्यू एनवायरनमेंट को किसी प्रोडक्शन डेटाबेस डंप से सीड न करें।

## समस्या निवारण

**जब पुल रिक्वेस्ट खोला जाता है तो कुछ भी नहीं बनता।** अपनी रिपॉज़िटरी में वेबहुक की हाल की डिलीवरी जाँचें। 401 या 403 का मतलब है कि सीक्रेट मेल नहीं खाता, इसलिए इसे फिर से जनरेट करें और दोनों तरफ अपडेट करें। कोई डिलीवरी बिल्कुल न होने का मतलब है कि वेबहुक पुल रिक्वेस्ट इवेंट्स के लिए सब्सक्राइब नहीं है।

**प्रीव्यू बनता है लेकिन डायरेक्टरी लिस्टिंग या 404 दिखाता है।** Git Deploy पेज पर आउटपुट डायरेक्टरी उस जगह से मेल नहीं खाती जहाँ आपका बिल्ड वास्तव में लिखता है। प्रीव्यू यह सेटिंग प्रोडक्शन से विरासत में लेते हैं।

**बिल्ड केवल प्रीव्यू में ही विफल होता है।** इसका सबसे आम कारण कोई ऐसी डिपेंडेंसी या एनवायरनमेंट वेरिएबल है जो प्रोडक्शन में मौजूद है लेकिन कभी प्रीव्यू एनवायरनमेंट में नहीं जोड़ी गई। Secrets पेज पर **preview** टैब जाँचें।

**कोई प्रीव्यू URL काम करना बंद कर देता है।** इसकी पंक्ति पर स्थिति देखें। **DESTROYED** का अर्थ है कि पुल रिक्वेस्ट बंद हो गया और एनवायरनमेंट वापस ले लिया गया, जो कि अपेक्षित व्यवहार है।

## आगे कहाँ जाएँ

- [Git से साइट डिप्लॉय करना](https://support.kapsulehost.com/hi-in/site-git-deploy), जरूरी पूर्व-आवश्यक कॉन्फ़िगरेशन।
- [किसी साइट के लिए ऐप सीक्रेट्स संग्रहीत करना](https://support.kapsulehost.com/hi-in/site-secrets), प्रति-एनवायरनमेंट क्रेडेंशियल्स के लिए।
- [स्टेजिंग एनवायरनमेंट](https://support.kapsulehost.com/hi-in/staging-environments), एक स्थायी प्री-प्रोडक्शन प्रति के लिए।
