Log in to leave a comment
No posts yet
हर सुबह जब हम डेवलपमेंट सर्वर शुरू करते हैं, तो एक अवांछित मेहमान हमारा स्वागत करता है। वह है Error: listen EADDRINUSE: address already in use :::3000 मैसेज। जैसे-जैसे प्रोजेक्ट्स की संख्या बढ़ती है, यह याद रखना कि कौन सी सर्विस किस पोर्ट का उपयोग कर रही है, एक सिरदर्द बन जाता है। ज़ोंबी प्रोसेस को खोजने और kill -9 चलाने की प्रक्रिया डेवलपमेंट के प्रवाह को बाधित करने वाला मुख्य अपराधी है।
इस पोर्ट के जंजाल को हल करने के लिए Vercel Labs ने जो समाधान पेश किया है, वह है Portless। अब बिना अर्थ वाले नंबरों के संयोजन के बजाय, सर्विस के नाम से लोकल एनवायरनमेंट को एक्सेस करने का युग आ गया है।
Portless केवल पोर्ट से डोमेन को जोड़ने वाला एक रैपर नहीं है। यह ऑपरेटिंग सिस्टम की नेटवर्क लेयर और एप्लिकेशन के बीच काम करने वाला एक बुद्धिमान प्रॉक्सी सिस्टम है।
portless my-app npm run dev कमांड चलाने पर सिस्टम तुरंत सक्रिय हो जाता है। सबसे पहले, Portless CLI सिस्टम के उपलब्ध पोर्ट्स (डिफ़ॉल्ट 4000-4999 रेंज) को स्कैन करता है ताकि खाली पोर्ट मिल सके। उसके बाद, मिले हुए पोर्ट नंबर को PORT एन्वायरमेंट वेरिएबल में इंजेक्ट करके सब-कमांड चलाता है। अंत में, यह सर्विस का नाम और आवंटित पोर्ट को सेंट्रल रूट स्टोर (~/.portless) में रिकॉर्ड करके मैनेज करता है।
Portless RFC 6761 मानक का उपयोग करता है। इस मानक के अनुसार, .localhost पर समाप्त होने वाले डोमेन बिना किसी फाइल संशोधन के हमेशा लूपबैक एड्रेस (127.0.0.1) के रूप में व्याख्यायित किए जाते हैं। जब ब्राउज़र रिक्वेस्ट भेजता है, तो पोर्ट 1355 पर प्रतीक्षारत Portless प्रॉक्सी हेडर का विश्लेषण करती है और ट्रैफिक को वास्तविक एप्लिकेशन तक पहुँचाती है।
नवीनतम Vite सुरक्षा बढ़ाने के लिए बाहरी प्रॉक्सी एक्सेस को सख्ती से प्रतिबंधित करता है। यदि Portless का उपयोग करते समय आपको 403 Forbidden एरर मिलता है, तो आपको कॉन्फ़िगरेशन फ़ाइल में सुधार करना होगा। सभी सबडोमेन को सुरक्षित रूप से अनुमति देने के लिए allowedHosts: ['.localhost'] सेटिंग जोड़ें। साथ ही, hmr सेटिंग में क्लाइंट पोर्ट को Portless के डिफ़ॉल्ट पोर्ट 1355 से मिलाना चाहिए ताकि हॉट मॉड्यूल रिप्लेसमेंट में कोई रुकावट न आए।
जियोलोकेशन API या सर्विस वर्कर्स का परीक्षण करने के लिए सुरक्षा संदर्भ (security context) अनिवार्य है। Portless एक सिंगल फ्लैग के साथ एक स्थानीय सर्टिफिकेट अथॉरिटी बनाता है और उसे सिस्टम के ट्रस्ट स्टोर में रजिस्टर करता है। इसके माध्यम से, आप ब्राउज़र की सुरक्षा चेतावनियों के बिना वास्तविक प्रोडक्शन सर्वर के समान कुकी नीतियों का परीक्षण कर सकते हैं।
2026 के डेवलपमेंट एनवायरनमेंट में जहाँ Portless सबसे अधिक चमकता है, वह है AI एजेंटों के साथ सहयोग। जब Cursor या Windsurf जैसे एजेंट लोकल सर्वर चलाते हैं और पोर्ट नंबर बदलते रहते हैं, तो एजेंट द्वारा लिखे गए API कॉल लॉजिक अक्सर टूट जाते हैं।
Portless को अपनाने से आप एजेंट को हमेशा auth-service.localhost:1355 जैसा एक अपरिवर्तनीय पता प्रदान कर सकते हैं। यह AI को प्रोजेक्ट की डिपेंडेंसी स्ट्रक्चर को समझते समय पोर्ट नंबर जैसी अस्थायी जानकारी के बजाय सर्विस के नाम का उपयोग करने की अनुमति देता है, जिससे कोड जनरेशन की सटीकता बढ़ जाती है। प्रोजेक्ट रूट में गाइड लिखें और एजेंट को स्वयं प्रॉक्सी मैनेज करने के लिए प्रेरित करें।
सेटअप प्रक्रिया सरल है। पैकेज को ग्लोबली इंस्टॉल करें, प्रॉक्सी सर्वर शुरू करें और फिर मौजूदा एक्जीक्यूशन स्क्रिप्ट के आगे बस सर्विस का नाम जोड़ दें।
Windows या WSL2 उपयोगकर्ताओं को नेटवर्क आइसोलेशन समस्याओं के कारण कनेक्शन में कठिनाई हो सकती है। इस मामले में, उपयोगकर्ता की कॉन्फ़िगरेशन फ़ाइल में नेटवर्क मिररिंग मोड को सक्षम करना होगा। networkingMode=mirrored सेटिंग के माध्यम से आप होस्ट और लिनक्स एनवायरनमेंट के बीच की नेटवर्क बाधा को दूर कर सकते हैं।
| तुलना का विषय | Vercel Portless | Caddy / Nginx |
|---|---|---|
| कॉन्फ़िगरेशन जटिलता | Zero Config | उच्च |
| पोर्ट आवंटन | पूरी तरह से स्वचालित | मैन्युअल असाइनमेंट आवश्यक |
| मुख्य लक्ष्य | लोकल डेवलपमेंट प्रोडक्टिविटी | ऑपरेशन और फिक्स्ड राउटिंग |
Vercel Portless केवल पोर्ट नंबरों को छिपाने का टूल नहीं है। यह एक विकास है जो डेवलपर्स को इन्फ्रास्ट्रक्चर के निचले स्तर के विवरणों से मुक्त होने और केवल उत्पाद का मूल्य बनाने पर ध्यान केंद्रित करने में मदद करता है। आधुनिक वेब डेवलपर्स के लिए, पोर्ट मैनेजमेंट अब एक तकनीकी ऋण (technical debt) है जिसे ऑटोमेट किया जाना चाहिए। नाम के माध्यम से संवाद करने वाले अधिक बुद्धिमान डेवलपमेंट एनवायरनमेंट की शुरुआत आज ही करें।