چونکہ میں گزشتہ موسم گرما سے [Neotoma](https://neotoma.io) (سابقہ ​​Asheville) پر کم و بیش کل وقتی کام کر رہا ہوں، مجھے پہلی بار اوپن سورس سافٹ ویئر پر واقعی اپنے دانت کاٹنے کا موقع ملا ہے۔

مجھے یہ کہتے ہوئے خوشی ہو رہی ہے کہ Neotoma کے لیے مخصوص عوامی طور پر دستیاب ذخیروں پر کام کرنے کے علاوہ، میں نے کچھ ذخیرے بنائے ہیں جو امید ہے کہ عام طور پر دیگر Node.js ایپس کے ماڈیولز کے طور پر کارآمد ہوں گے۔

- [Park Ranger](https://github.com/markmhx/park-ranger): ماحول سے متعلق مخصوص انحصار جیسے کہ ماحولیاتی متغیرات، کنفیگریشن فائلز اور SSL سرٹیفکیٹ فائلوں کے لیے ایک مینیجر۔

  اسے "پارک رینجر" کہا جاتا ہے کیونکہ کمپیوٹر پروگرام ہمیشہ ایک دیے گئے ماحول میں چلتا ہے، جو اکثر اس کے ڈیوائس یا دوسرے ممکنہ ماحول کے ساتھ اس ڈیوائس کے اندر منتخب کردہ مخصوص ماحول سے طے ہوتا ہے۔ اور جب آپ قدرتی ماحول سے لطف اندوز ہوتے ہیں اور اس کے بارے میں سوالات کرتے ہیں تو آپ کس کی تلاش کرتے ہیں…؟ یہ ٹھیک ہے، ایک پارک رینجر۔

  میں بنیادی طور پر اپنی مقامی ڈیولپمنٹ مشین اور تعیناتی میزبان کے درمیان ماحول پر مبنی اختلافات کو سنبھالنے کے لیے اپنے ذخیروں میں ایک ہی یوٹیلیٹی کوڈ کو دوبارہ لکھتا رہا۔ لہذا، میں نے یہ سب کچھ اس ماڈیول میں ری فیکٹر کیا تاکہ کوڈ میں بہتری اور دیکھ بھال کو آگے بڑھایا جا سکے۔ میرا نقطہ آغاز [dotenv](https://github.com/motdotla/dotenv) تھا لیکن مجھے جلد ہی احساس ہوا کہ یہ میری ضروریات کے لیے بہت آسان ہے۔

- [Hoist](https://github.com/markmhx/grunt-hoist): Node.js ایپس کو میزبانوں پر تعینات کرنے اور متعلقہ ریموٹ طریقہ کار کو انجام دینے کے لیے گرنٹ ٹاسک کا ایک مجموعہ۔

  پارک رینجر کے ساتھ اپنے تجربے کی طرح، میں نے اپنے آپ کو ذخیرہ خانوں میں ایک ہی تعیناتی کے معمولات کی معمولی تغیرات کو دوبارہ لکھتے ہوئے پایا (جیسے فائلوں کو rsync'ing، "npm install" چلانا اور ریموٹ سرور کو دوبارہ شروع کرنا)۔ لہذا میں نے کاموں کا یہ سیٹ بنایا (جو خود بخود پیرنٹ پروجیکٹس کو بطور این پی ایم اسکرپٹس کے لیے دستیاب کراتے ہیں) اس طریقے کو معیاری بنانے کے لیے جس میں میں اس سے رجوع کرتا ہوں۔ وہ مسلسل ترقی کے لیے میرے نقطہ نظر کو بھی بہت آسان بناتے ہیں، یہاں تک کہ جب میں نئی ​​مائیکرو سروسز کو اسپن کرتا ہوں یا راستے میں مقامی انحصار میں فوری تبدیلیاں کرتا ہوں۔

- [Proxy](https://github.com/neotoma/proxy): HTTP اور HTTPS درخواستوں کے لیے ایک پراکسی سرور۔

  جیسا کہ میں نے بند ٹیسٹنگ کے لیے Neotoma کے ابتدائی ورژن کی میزبانی کرنا شروع کی، مجھے پروٹوکولز (HTTP بمقابلہ HTTPS)، بندرگاہوں اور ذیلی ڈومینز میں ایک ہی میزبان پر چلنے والے مختلف سرورز کو سپورٹ کرنے کے لیے ایک آسان طریقہ درکار ہے۔ مثال کے طور پر، وہی میزبان جو Neotoma کے لیے لینڈنگ پیج کو پیش کرنے کے لیے HTTP کا استعمال کرتا ہے، اس کے بنیادی API کو بھی HTTPS درخواستیں پیش کرتا ہے اور جانچ کے لیے ذیلی ڈومین پر چلنے والی اصل Neotoma ویب ایپ کو HTTP اور HTTPS دونوں درخواستیں پیش کرتا ہے۔

  اگرچہ یہ ذخیرہ Neotoma تنظیم کے تحت رہتا ہے، اسے ہر وہ شخص استعمال کر سکتا ہے جو اپنے میزبانوں کے لیے ایسا ہی کرنا چاہتا ہے جو ایک سے زیادہ سرور چلاتے ہیں۔

Neotoma سے براہ راست تعلق رکھنے والے بہت سے دوسرے عوامی ذخیرے زیر ترقی ہیں جن کی میں یہاں فہرست نہیں دوں گا لیکن یہ [Neotoma GitHub تنظیم](https://github.com/neotoma) پر مل سکتے ہیں۔ اگرچہ میں نے ابھی تک فعال طور پر شراکت کی تلاش نہیں کی ہے، اگر آپ کوئی تبدیلی کرنا چاہتے ہیں تو اوپر اور اس تنظیم میں درج تمام ذخیرے درخواستوں کو کھینچنے کے لیے کھلے ہیں!