ServBay में Docker कंटेनर आधारित वेबसाइट जोड़ना और कॉन्फ़िगर करना
ServBay macOS और Windows के लिए एक स्थानीय वेब डेवलपमेंट वातावरण है, जो कई प्रोग्रामिंग भाषाओं और टेक्नोलॉजी स्टैक का समर्थन करता है। ServBay के पैकेज (जैसे PHP, Node.js, Python, Go, Java, डाटाबेस आदि) के अलावा, आप अपनी वेबसाइट या सेवाओं को Docker कंटेनर पर चला सकते हैं। यह तरीका विशेष रूप से उन प्रोजेक्ट्स के लिए उपयुक्त है जिन्हें खास पर्यावरण या डिपेंडेंसी की जरूरत होती है, और यह बहुत लचीलापन, अलगाव और स्थिरता प्रदान करता है।
यह लेख ServBay में Docker कंटेनर आधारित वेबसाइट जोड़ने और उसे ServBay के रिवर्स प्रॉक्सी फ़ीचर से लोकल डेवलपमेंट फ्लो में एकीकृत करने के पूरे प्रोसेस का पूरा विवरण देता है।
परिचय
ServBay को रिवर्स प्रॉक्सी की तरह कॉन्फ़िगर करके, आप किसी विशिष्ट डोमेन के अनुरोध को Docker कंटेनर में चल रहे सर्विस पोर्ट पर फॉरवर्ड कर सकते हैं। ServBay इनकमिंग ट्रैफिक जैसे HTTPS सर्टिफ़िकेट, डोमेन नेम रिज़ॉल्यूशन आदि को संभालता है, जबकि Docker कंटेनर आपके ऐप्लिकेशन को चलाते हैं। यह मॉडल ServBay के आसान मैनेजमेंट इंटरफ़ेस को Docker की शक्तिशाली कंटेनराइजेशन से जोड़ता है।
नीचे दिए गए स्टेप्स आपको ServBay में Docker सेवा आधारित वेबसाइट जोड़ने और सेटअप करने की पूरी प्रक्रिया में मार्गदर्शन करेंगे।
ज़रूरी शर्तें
शुरू करने से पहले, सुनिश्चित करें कि:
- ServBay इंस्टॉल और रनिंग है: आपने अपने macOS सिस्टम पर ServBay को सफलतापूर्वक इंस्टॉल कर लिया है और वह चल रहा है।
- Docker इंस्टॉल और रनिंग है: आपके macOS पर Docker Desktop या कोई अन्य Docker वातावरण इंस्टॉल है और Docker सेवा चालू है।
- Docker इमेज और कंटेनर तैयार हैं: आपने अपनी वेबसाइट या ऐप्लिकेशन वाली Docker इमेज बना ली है या pull कर ली है, और उस इमेज के जरिए कंटेनर चला सकते हैं।
वेबसाइट जोड़ने के स्टेप-बाय-स्टेप निर्देश
चरण 1: Docker कंटेनर तैयार करें और चलाएं
सबसे पहले, सुनिश्चित करें कि आपका Docker कंटेनर रन कर रहा है, और उसके अंदर का वेब सर्वर या अन्य सेवा सही पोर्ट पर सुन रहा है।
उदाहरण, यदि आपके पास Nginx कंटेनर है जो अंदर 80 पोर्ट पर सुनता है, तो आप यह कमांड चला सकते हैं:
bash
docker run -d --name my-nginx-servbay -p 8080:80 nginx1
इस उदाहरण में, Docker कंटेनर my-nginx-servbay के अंदर Nginx सेवा 80 पोर्ट पर सुनती है। -p 8080:80 विकल्प से कंटेनर का 80 पोर्ट आपके macOS के 8080 पोर्ट से जुड़ता है। ServBay को अब आपके लोकलहोस्ट पर 8080 पोर्ट से कनेक्ट करना होगा।
अपने ऐप और Dockerfile की सेटिंग्स के अनुसार, सुनिश्चित करें कि आपका कंटेनर सही पोर्ट पर सुन रहा है और वह पोर्ट लोकल सिस्टम पर map हुआ है।
चरण 2: ServBay प्रबंधन इंटरफेस खोलें
अपने macOS में "ServBay" ऐप का आइकॉन ऐप्लिकेशन फोल्डर में खोजें और डबल-क्लिक करके ServBay का एडमिन इंटरफेस खोलें।
चरण 3: वेबसाइट प्रबंधन पेज पर जाएं
ServBay खोलने के बाद आपको मुख्य इंटरफेस दिखेगा। बाईं ओर के नेविगेशन मेनू में वेबसाइट विकल्प ढूँढें और उस पर क्लिक करें। इससे आप ServBay के वेबसाइट प्रबंधन पेज पर पहुंच जाएंगे, जहाँ आप सभी लोकल वेबसाइट्स देख और सेट कर सकते हैं।
चित्र: नेविगेशन बार में "वेबसाइट" पर क्लिक करके मैनेजमेंट पेज खोलें।
चरण 4: नई वेबसाइट जोड़ें
वेबसाइट प्रबंधन पेज के नीचे आपको एक + बटन दिखेगा। इस बटन पर क्लिक करने से ServBay के राइट सेक्शन में एक नया फॉर्म खुलेगा, जहाँ नई वेबसाइट के सेटिंग्स भर सकते हैं।
चित्र: नीचे "+ बटन" पर क्लिक करके नई वेबसाइट जोड़ें।
चरण 5: वेबसाइट सेटिंग्स कॉन्फ़िगर करें
नई वेबसाइट कॉन्फ़िगरेशन फॉर्म में, आपको नीचे दी गई अहम जानकारियां इनपुट करनी होंगी:
- नाम (Name): अपनी वेबसाइट का कोई पहचान योग्य नाम दें, जैसे
Docker Nginx Demo। यह नाम सिर्फ ServBay की इंटरनल मैनेजमेंट के लिए है। - डोमेन (Domain): वह लोकल डोमेन दर्ज करें जिसे ब्राउज़र में खोलना है। सुझाव:
.servbay.demoइस्तेमाल करें, जैसेdocker.servbay.demoताकि कोई पब्लिक डोमेन से टकराव न हो। ServBay आपके सिस्टम होस्ट्स फाइल को सेट कर देगा ताकि यह डोमेन127.0.0.1को ही पॉइंट करे। - प्रोटोकॉल (Protocol): वेबसाइट कौन सा प्रोटोकॉल सपोर्ट करेगी - आमतौर पर
HTTP/HTTPSडिफ़ॉल्ट रखें। ServBay HTTP (80) और HTTPS (443) दोनों पोर्ट को हैंडल करेगा, और आपकी SSL सेटिंग्स अनुसार ट्रैफिक संभालेगा। - SSL सर्टिफ़िकेट अनुरोध विधि (SSL Certificate Request Method): सलाह:
ServBay CAचुनें। ServBay खुद आपके लिए एक लोकल ट्रस्टेड SSL सर्टिफ़िकेट तैयार करेगा और मैनेज करेगा। ServBay Public CA को अपने सिस्टम की keychain में इंस्टॉल करें, जिससे लोकल डोमेन का HTTPS ब्राउज़र में सुरक्षित माने। अन्य जरुरतों के लिएACME(जैसे Let's Encrypt) याCustomभी चुन सकते हैं। - वेबसाइट प्रकार (Website Type): [महत्वपूर्ण]
रिवर्स प्रॉक्सी (Reverse Proxy)चुनें। इसका मतलब ServBay आपके डोमेन के लिए प्रवेश द्वार की तरह रहेगा और अनुरोध आपके चुने हुए बैकएंड पर फॉरवर्ड करेगा। - IP एड्रेस (IP Address): अपने Docker कंटेनर सेवा का लोकल आईपी (आमतौर पर
127.0.0.1) दर्ज करें। - पोर्ट (Port): अपने Docker कंटेनर की सेवा का वह पोर्ट जो आपके macOS पर एक्सपोज़्ड है, दर्ज करें। उदाहरण,
-p 8080:80किया है तो यहाँ8080डालें।
चित्र: Docker आधारित वेबसाइट के रिवर्स प्रॉक्सी सेटिंग्स भरें।
चरण 6: सेटिंग सेव करें
सब विवरण भरने के बाद, फॉर्म के नीचे "जोड़ें (Add)" बटन पर क्लिक करें।
ServBay अब आपके अनुरोध को प्रोसेस करेगा, Web Server (जैसे Caddy या Nginx) में सही रिवर्स प्रॉक्सी नियम जोड़ देगा, और सिस्टम की hosts फाइल अपडेट कर देगा।
सफल सेव के बाद, ServBay को थोड़ी देर के लिए नई सेटिंग अप्लाई करनी पड़ सकती है, इसके बाद आप नए डोमेन पर ब्राउज़र में वेबसाइट खोल सकते हैं।
चरण 7: वेबसाइट एक्सेस और शॉर्टकट्स का उपयोग करें
सफल सेव के बाद वेबसाइट प्रबंधन पेज पर लौटें, वहाँ आपकी नई वेबसाइट दिखेगी। पक्का करें कि उसका स्टेटस "चल रही है" (Running) दिख रहा है।
ब्राउज़र में अपने चुने हुए डोमेन जैसे http://docker.servbay.demo या https://docker.servbay.demo खोलें। सही कॉन्फ़िग्रेशन होने पर ServBay आपका अनुरोध Docker कंटेनर सेवा तक रूट कर देगा, और कंटेनर की वेबसाइट ब्राउज़र में ओपन होगी।
वेबसाइट लिस्ट में ServBay कई सुविधाजनक शॉर्टकट्स (Buttons) देता है:
- IDE से वेबसाइट रूट खोलें: (रिवर्स प्रॉक्सी वेबसाइट्स के लिए यह बटन शायद काम न करे या सिर्फ ServBay की config डायरेक्टरी खोले, यह ServBay वर्शन और सेटिंग्स पर निर्भर है)
- ब्राउज़र में वेबसाइट खोलें: सीधे URL को नए टैब में खोलें।
- वेबसाइट लॉग देखें: वेबसाइट की एक्सेस और एरर लॉग देखें, डिबगिंग के लिए मददगार।
- Pause/Enable वेबसाइट: रेवरस प्रॉक्सी सेटिंग्स कुछ समय के लिए डिसेबल या एनेबल करें।
- Delete वेबसाइट: वेबसाइट की सेटिंग्स ServBay से हटाएं।
चित्र: वेबसाइट लिस्ट में ServBay के शॉर्टकट बटन।
ध्यान देने योग्य बातें तथा बेस्ट प्रैक्टिस
- Docker कंटेनर की स्थिति: चेक करें कि आपका Docker कंटेनर लगातार चालू है, नहीं तो ServBay आपका अनुरोध फॉरवर्ड नहीं कर पाएगा।
- पोर्ट मैपिंग: Docker का
-pपैरामीटर और ServBay में डाली गई पोर्ट संख्या एक जैसी होनी चाहिए, और वह पोर्ट macOS पर किसी अन्य सर्विस द्वारा प्रयोगशील न हो। - फ़ायरवॉल: macOS की firewall settings देखें और सुनिश्चित करें कि ServBay के पोर्ट (आम तौर पर 80, 443) एवं Docker से जुड़ा पोर्ट ब्लॉक न हो।
- Docker नेटवर्क मोड: ज़्यादातर मामलों में default
bridgeनेटवर्क और-pसे पोर्ट मैपिंग सबसे आसान है। अगर आपhostनेटवर्क मोड यूज़ कर रहे हैं, तो ServBay सीधे container के अंदर चल रहे पोर्ट पर कनेक्ट कर सकता है (जैसे container में 80 है तो ServBay में भी 80)। ध्यान रखें:hostमोड में पोर्ट क्लैश हो सकता है। - ServBay CA: लोकल HTTPS डेवलपमेंट के लिए ServBay Public CA को ज़रूर इंस्टॉल करें, जिससे ServBay के सर्टिफ़िकेट ब्राउज़र में trusted रहे और कोई security warning न दिखे।
सामान्य समस्याएं और समाधान (FAQ)
Q: वेबसाइट जोड़ने के बाद एक्सेस नहीं हो रही, ब्राउज़र में कनेक्शन एरर या टाइमआउट?
A: जांचें:
- ServBay वेबसाइट स्टेटस: सर्वबे की वेबसाइट मैनेजमेंट स्क्रीन पर वेबसाइट का स्टेटस "चल रही है" देखिए।
- Docker कंटेनर स्टेटस: टर्मिनल में
docker psचलाएं और पक्का करें कि कंटेनर चालू है। - Docker पोर्ट मैपिंग:
docker psसे पोर्ट्स देखें (PORTSकॉलम)। जो पोर्ट आपने ServBay में सेट किया है, वही लोकल पोर्ट मैप हो — जैसे0.0.0.0:8080->80/tcpया127.0.0.1:8080->80/tcpवाला8080। - Docker कंटेनर के भीतर की सेवा: कंटेनर में वेब सर्वर (जैसे Nginx, Apache या Node) सही पोर्ट पर चल रहा है? कोई इंटरनल एरर तो नहीं? कंटेनर लॉग (
docker logs <containerID या नाम>) देखें। - ServBay लॉग्स: ServBay वेबसाइट लिस्ट पर लॉग बटन पर क्लिक करके एक्सेस और एरर लॉग्स देख सकते हैं — वहाँ फॉरवर्डिंग से जुड़ा एरर मिल सकता है।
- सिस्टम होस्ट्स फाइल:
/etc/hostsचेक करें, Domian सही तरीके से127.0.0.1को point कर रहा है या नहीं। - Firewall: सुनिश्चित करें कि Firewall ServBay या Docker के पोर्ट को ब्लॉक नहीं कर रही है।
Q: क्या ServBay खुद Docker कंटेनर को मैनेज कर सकती है?
A: ServBay का फोकस लोकल वेब सर्वर, डाटाबेस, प्रोग्रामिंग भाषा पर्यावरण और बैकएंड सेवा तक ट्रैफिक रूटिंग है — वो खुद Docker कंटेनर लाइफ सायकल (स्टार्ट, स्टॉप, इमेज बनाना आदि) हैंडल नहीं करती। ये काम Docker के CLI या Docker Desktop के ज़रिए ही करना होगा।
Q: ServBay CA क्या है? इसे इंस्टॉल क्यों करें?
A: ServBay CA (Certificate Authority) ServBay की लोकल HTTPS डेवलपमेंट के लिए सर्टिफ़िकेट मैनेजमेंट प्रणाली है। ServBay User CA आपके लोकल साइट्स के SSL सर्टिफ़िकेट जारी करती है, और ServBay Public CA उसकी root certificate है। Public CA को अपने सिस्टम की keychain में इंस्टॉल करने से आपका ऑपरेटिंग सिस्टम और ब्राउज़र इन सभी लोकल सर्टिफ़िकेट्स को trusted मानते हैं, इसलिए "unsafe connection" अलर्ट नहीं आता। प्रोडक्शन जैसी HTTPS एक्सेस की लोकल टेस्टिंग के लिए यह जरूरी है।
निष्कर्ष
ServBay में Docker कंटेनर आधारित वेबसाइट को जोड़ना एक शक्तिशाली और लचीला तरीका है। ServBay आपके लोकल डेवलपमेंट वातावरण का केंद्र बनता है, ट्रैफिक और डोमेन मैनेज करता है, जबकि Docker आपके ऐप्स को अलग और सुरक्षित वातावरण में चलाता है। सरल रिवर्स प्रॉक्सी कॉन्फ़िगरेशन से आप किसी भी Docker आधारित प्रोजेक्ट को ServBay वर्कफ़्लो में इंटीग्रेट कर सकते हैं। ऊपर बताए स्टेप्स और टिप्स को फॉलो करें, और आसानी से अपना Dockerized लोकल वेबसाइट सेटअप करें।
