منصوبے کے بارے میں
httpSMS ایک ایسی سروس ہے جو آپ کو اینڈرائیڈ فون کو ایس ایم ایس گیٹ وے کے طور پر استعمال کرنے دیتی ہے۔ آپ ایک سادہ HTTP API کال کرتے ہیں، اور یہ درخواست اینڈرائیڈ فون کو ایس ایم ایس بھیجنے کا محرک بنتی ہے۔ فون پر موصول ہونے والے پیغامات آپ کے فراہم کردہ ویب ہُک اینڈ پوائنٹ پر بھیجے جا سکتے ہیں۔ یہ پروجیکٹ اس لیے بنایا گیا کیونکہ بہت سے ممالک میں ورچوئل فون نمبر دستیاب نہیں ہیں، اور مصنف ایک حقیقی موبائل فون کے ذریعے ایس ایم ایس بھیجنے اور وصول کرنے کا خودکار، API سے چلنے والا طریقہ چاہتا تھا۔
اجزاء
- ویب UI: ایک سنگل پیج ایپلیکیشن جو Nuxt اور Vuetify سے بنی ہے، Firebase پر ہوسٹ کی گئی ہے؛ سورس web ڈائریکٹری میں موجود ہے۔
- API: Go اور Fiber سے بنایا گیا ہے، CockroachDB استعمال کرتا ہے، اور Google Cloud Run پر سرور لیس چلانے کے لیے ڈیزائن کیا گیا ہے۔ API دستاویزات الگ سے شائع کی گئی ہیں۔
- اینڈرائیڈ ایپ: ایک مقامی Kotlin ایپلیکیشن جسے پیغامات بھیجنے یا وصول کرنے سے پہلے فون پر انسٹال کرنا ضروری ہے۔ یہ APK کے طور پر اور GitHub ریلیز کے ذریعے تقسیم کی جاتی ہے۔
خصوصیات
- اینڈ ٹو اینڈ انکرپشن: پیغامات کو AES-256 سے انکرپٹ کیا جا سکتا ہے، جس کی کلید صرف فون پر محفوظ ہوتی ہے، اس لیے سرور پیغام کے مواد کو نہیں پڑھ سکتا۔
- ویب ہُکس: موصولہ ایس ایم ایس پیغامات کو انٹیگریشنز بنانے کے لیے کال بیک URL پر بھیجا جا سکتا ہے۔
- بیک پریشر: ایک قابل ترتیب ریٹ لمٹ (مثال کے طور پر، تین پیغامات فی منٹ) فون کے ایس ایم ایس API کو سیلاب سے بچاتا ہے چاہے بہت سے وصول کنندگان قطار میں ہوں۔
- پیغام کی میعاد: پیغام کی درستگی کے لیے ٹائم آؤٹ مقرر کیا جا سکتا ہے، اور اگر پیغام بھیجے جانے سے پہلے میعاد ختم ہو جائے تو آپ کو مطلع کیا جاتا ہے۔
API کلائنٹس
Go اور JavaScript/TypeScript کے لیے سرکاری کلائنٹ لائبریریاں درج ہیں۔
بھیجنے کا عمل
send اینڈ پوائنٹ پر درخواست HTTP 202 کے ساتھ قبول کی جاتی ہے، ایک پش نوٹیفکیشن شیڈول کر کے اینڈرائیڈ ایپ کو پہنچایا جاتا ہے، ایپ پیغام حاصل کرتی ہے، اسے اینڈرائیڈ ایس ایم ایس API کے ذریعے بھیجتی ہے، اور بھیجنے کا نتیجہ اور ڈیلیوری رپورٹ غیر ہم وقت طور پر API کو واپس رپورٹ کرتی ہے۔
Docker کے ساتھ سیلف ہوسٹنگ
README میں Docker پر مبنی سیلف ہوسٹ کا طریقہ درج ہے: ایک Firebase پروجیکٹ اور ویب SDK کنفیگ بنائیں، ای میل/پاس ورڈ سائن ان فعال کریں (ای میل انیومریشن پروٹیکشن کے لیے ایک نوٹ شدہ متبادل طریقہ کے ساتھ)، Firebase سروس اکاؤنٹ اسناد اور ایک اینڈرائیڈ google-services.json تیار کریں، ایک SMTP ای میل سروس ترتیب دیں، پیغام تلاش کے راستے کی حفاظت کے لیے Cloudflare Turnstile ویجیٹ سیٹ اپ کریں، ریپوزٹری کلون کریں، web اور api کے لیے فراہم کردہ .env.docker فائلیں کاپی کریں، ماحولیاتی متغیرات پُر کریں، پھر docker compose up --build چلائیں۔ اس کے بعد ویب UI پورٹ 3000 پر اور API پورٹ 8000 پر دستیاب ہوتی ہے۔ users ٹیبل میں ایک سسٹم صارف داخل کرنا ضروری ہے جس کی id اور api_key ایونٹس کیو کی ترتیبات سے مماثل ہوں، اور اس کے بعد API کنٹینر دوبارہ شروع کریں۔ پش میسجنگ کے کام کرنے کے لیے اینڈرائیڈ ایپ کو Android Studio میں تبدیل شدہ google-services.json کے ساتھ بنانا ضروری ہے۔
ٹیسٹنگ اور لائسنس
اینڈ ٹو اینڈ انٹیگریشن ٹیسٹ پورے اسٹیک (API، PostgreSQL، Redis) کو Docker میں فون ایمولیٹر کے ساتھ چلاتے ہیں جو اینڈرائیڈ ڈیوائس کی نقل کرتا ہے، اور 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.