इस प्रोजेक्ट के बारे में
httpSMS एक ऐसी सेवा है जो आपको Android फोन को SMS गेटवे के रूप में उपयोग करने देती है। आप एक सरल HTTP API कॉल करते हैं, और अनुरोध Android फोन को SMS भेजने के लिए ट्रिगर करता है। फोन पर प्राप्त संदेशों को आपके द्वारा प्रदान किए गए वेबहुक एंडपॉइंट पर अग्रेषित किया जा सकता है। यह प्रोजेक्ट इसलिए बनाया गया क्योंकि कई देशों में वर्चुअल फोन नंबर उपलब्ध नहीं हैं, और लेखक एक वास्तविक मोबाइल फोन के माध्यम से SMS भेजने और प्राप्त करने का एक स्वचालित, API-संचालित तरीका चाहता था।
घटक
- वेब UI: Nuxt और Vuetify के साथ निर्मित एक सिंगल-पेज एप्लिकेशन, Firebase पर होस्ट किया गया; स्रोत web निर्देशिका में रहता है।
- API: Go और Fiber के साथ निर्मित, CockroachDB का उपयोग करता है, और Google Cloud Run पर सर्वरलेस चलाने के लिए डिज़ाइन किया गया है। API दस्तावेज़ीकरण अलग से प्रकाशित किया गया है।
- Android ऐप: एक मूल Kotlin एप्लिकेशन जिसे संदेश भेजने या प्राप्त करने से पहले फोन पर इंस्टॉल किया जाना चाहिए। इसे APK के रूप में और GitHub रिलीज़ के माध्यम से वितरित किया जाता है।
विशेषताएँ
- एंड-टू-एंड एन्क्रिप्शन: संदेशों को AES-256 के साथ एन्क्रिप्ट किया जा सकता है, कुंजी केवल फोन पर संग्रहीत होती है, इसलिए सर्वर संदेश सामग्री नहीं पढ़ सकता।
- वेबहुक: प्राप्त SMS संदेशों को एकीकरण बनाने के लिए कॉलबैक URL पर अग्रेषित किया जा सकता है।
- बैक प्रेशर: एक कॉन्फ़िगर करने योग्य दर सीमा (उदाहरण के लिए, प्रति मिनट तीन संदेश) फोन के SMS API को बाढ़ से बचाती है, भले ही कई प्राप्तकर्ता कतार में हों।
- संदेश समाप्ति: संदेश वैधता के लिए एक टाइमआउट सेट किया जा सकता है, और यदि कोई संदेश भेजे जाने से पहले समाप्त हो जाता है तो आपको सूचित किया जाता है।
API क्लाइंट
Go और JavaScript/TypeScript के लिए आधिकारिक क्लाइंट लाइब्रेरी सूचीबद्ध हैं।
भेजने की प्रक्रिया
भेजें एंडपॉइंट पर एक अनुरोध HTTP 202 के साथ स्वीकार किया जाता है, एक पुश नोटिफिकेशन शेड्यूल किया जाता है और Android ऐप को वितरित किया जाता है, ऐप संदेश प्राप्त करता है, उसे Android SMS API के माध्यम से भेजता है, और भेजने के परिणाम और डिलीवरी रिपोर्ट को अतुल्यकालिक रूप से API को वापस रिपोर्ट करता है।
Docker के साथ सेल्फ-होस्टिंग
README एक Docker-आधारित सेल्फ-होस्ट पथ का दस्तावेज़ीकरण करता है: एक Firebase प्रोजेक्ट और वेब SDK कॉन्फ़िग बनाएं, ईमेल/पासवर्ड साइन-इन सक्षम करें (ईमेल गणना सुरक्षा के लिए एक उल्लिखित वर्कअराउंड के साथ), Firebase सेवा खाता क्रेडेंशियल और एक Android google-services.json उत्पन्न करें, एक SMTP ईमेल सेवा कॉन्फ़िगर करें, संदेश खोज मार्ग की सुरक्षा के लिए एक Cloudflare Turnstile विजेट सेट करें, रिपॉजिटरी क्लोन करें, web और api के लिए प्रदान की गई .env.docker फ़ाइलों की प्रतिलिपि बनाएं, पर्यावरण चर भरें, फिर docker compose up --build चलाएं। वेब UI तब पोर्ट 3000 पर और API पोर्ट 8000 पर पहुँच योग्य होता है। एक सिस्टम उपयोगकर्ता को users तालिका में एक id और api_key के साथ डाला जाना चाहिए जो events कतार सेटिंग्स से मेल खाता हो, और उसके बाद API कंटेनर को पुनः आरंभ किया जाना चाहिए। पुश मैसेजिंग के काम करने के लिए Android ऐप को Android Studio में प्रतिस्थापित google-services.json के साथ बनाया जाना चाहिए।
परीक्षण और लाइसेंस
एंड-टू-एंड एकीकरण परीक्षण पूरे स्टैक (API, PostgreSQL, Redis) को Docker में एक फोन एमुलेटर के साथ चलाते हैं जो एक Android डिवाइस का अनुकरण करता है, और main पर पुश और पुल अनुरोधों पर CI में भी चलते हैं। यह प्रोजेक्ट GNU Affero General Public License v3 के तहत लाइसेंस प्राप्त है।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.