मी स्वतःचे टनेलिंग प्लॅटफॉर्म तयार केले

मी माझ्या लॅपटॉपवर एक वेब ॲप पॉलिश करण्यासाठी तीन दिवस घालवले. ते अगदी परिपूर्ण दिसत होते. मग मी ते माझ्या फोनवर टेस्ट करण्याचा प्रयत्न केला. सर्व काही बिघडले.

जेव्हा तुम्हाला दुसऱ्या उपकरणाची गरज पडते, तेव्हा लोकल डेव्हलपमेंट गोंधळात टाकणारे होते. फायरवॉल आणि HTTPS सर्टिफिकेटच्या समस्यांमुळे लोकल IP शेअर करणे अपयशी ठरते.

मी Ngrok वापरून पाहिले. ते काम करते, पण फ्री टियरमध्ये कनेक्शन तुटतात. तसेच URL देखील खूप वाईट दिसतात. a1b2-34-56.ngrok-free.app सारखे रँडम स्ट्रिंग्स क्लायंट किंवा टीमसोबत शेअर करण्यासाठी चांगले नसतात.

मला स्वच्छ आणि वाचनीय URL असलेले टनेल हवे होते. म्हणून मी स्वतःचे टनेल तयार केले.

मी कस्टम टनेलला URL शॉर्टनरसोबत जोडले. स्मार्ट स्लग्स तयार करण्यासाठी मी AI जोडले आणि सुरक्षा संरक्षण (security protections) देखील समाविष्ट केले.

टेक स्टॅक: • टनेल / प्रॉक्सी: Django Channels, Daphne, WebSockets, Python & Node.js CLI • फ्रंटएंड: Next.js, TailwindCSS, Shadcn/UI • बॅकएंड: Django 5, Graphene GraphQL • डेटाबेस: PostgreSQL (Neon) • ऑथेंटिकेशन: JWT, bcrypt • AI: Google Gemini • सुरक्षा: MaxMind GeoLite2, Google Safe Browsing API

ते कसे कार्य करते:

  • द्विमार्गी (Bi-directional) WebSocket टनेलिंग. HTTP विनंत्या (requests) फॉरवर्ड करण्यासाठी एक लोकल CLI एजंट Django सर्व्हरशी कनेक्ट होतो.
  • रेस-कंडिशन प्रोटेक्शन. ॲनालिटिक्स अचूक ठेवण्यासाठी मी ॲटॉमिक अपडेट्ससाठी Django F() expressions वापरतो.
  • नॉन-ब्लॉकिंग टेलिमेट्री. लेटन्सी कमी ठेवण्यासाठी लोकेशन आणि OS शोधण्याचे काम बॅकग्राउंड थ्रेड्समध्ये चालते.
  • AI स्लग्स. रँडम टेक्स्टऐवजी अर्थपूर्ण स्लग तयार करण्यासाठी Gemini टार्गेट URL वाचते.
  • प्रोअॅक्टिव्ह सुरक्षा. मी प्रायव्हेट IP रेंज ब्लॉक करतो आणि कोणताही लिंक सेव्ह करण्यापूर्वी Google Safe Browsing चे चेक रन करतो.

बॅकएंड आणि टनेलिंग लॉजिक स्थिर आहे. फ्रंटएंड अजूनही प्रगतीपथावर आहे.

मी सध्या IITM मध्ये परीक्षेसाठी अभ्यास करत आहे. अभ्यासावर लक्ष केंद्रित करण्यासाठी मी नवीन फीचर्स थांबवले आहेत. कोड तसाच पडून राहण्याऐवजी, मी तो रिव्ह्यूसाठी उपलब्ध करून देत आहे.

मला काही गोष्टींवर तुमच्या फीडबॅकची गरज आहे:

  • लेटन्सी: मोठ्या प्रमाणावर (high scale) रिडायरेक्ट्स 10ms च्या खाली कसे ठेवता येतील?
  • सुरक्षा: SSRF शमन (mitigation) अधिक मजबूत करण्याचा सर्वोत्तम मार्ग कोणता आहे?
  • स्केलेबिलिटी: दीर्घकाळ चालणाऱ्या (long-lived) टनेल्ससाठी मी WebSockets वापरावे की TCP?
  • ऑब्झर्व्हेबिलिटी: टनेलच्या आरोग्यासाठी (health) मी कोणते मेट्रिक्स ट्रॅक केले पाहिजेत?

जर तुम्हाला प्रॉक्सी वर्कर्स किंवा सिस्टम डिझाइनचा अनुभव असेल, तर कृपया तुमचे विचार शेअर करा.

संपूर्ण सिस्टम डिझाइन ब्रेकडाउन: [Link] कोडबेस: [Link]

लोकल डेव्हलपमेंट दरम्यान तुम्ही मोबाईल परमिशन्स टेस्ट कशा प्रकारे करता? तुम्ही थर्ड-पार्टी टनेल्स वापरता की कस्टम टूल्स?

स्रोत: https://dev.to/zallu/my-ngrok-urls-got-so-ugly-i-built-my-own-tunneling-platform-instead-59d