منصوبے کے بارے میں

Headscale ایک اوپن سورس، خود میزبانی شدہ Tailscale کنٹرول سرور کا نفاذ ہے۔ Tailscale ایک جدید VPN ہے جو WireGuard پر مبنی ہے اور NAT traversal استعمال کرتے ہوئے کمپیوٹرز کے درمیان ایک اوورلے نیٹ ورک کے طور پر کام کرتا ہے۔ اگرچہ Tailscale کا زیادہ تر حصہ اوپن سورس ہے، کنٹرول سرور اوپن سورس نہیں ہے؛ Headscale اس خلا کو پُر کرتا ہے۔ کنٹرول سرور Tailscale نیٹ ورک میں نوڈس کے درمیان WireGuard عوامی کلیدوں کے تبادلے کے مقام کے طور پر کام کرتا ہے۔ یہ کلائنٹ IP پتے تفویض کرتا ہے، صارفین کے درمیان حدود بناتا ہے، صارفین کے درمیان مشین شیئرنگ کو قابل بناتا ہے، اور نوڈس کے اشتہار شدہ راستوں کو ظاہر کرتا ہے۔ tailnet وہ نجی نیٹ ورک ہے جو Tailscale کسی صارف یا تنظیم کو تفویض کرتا ہے۔ ڈیزائن کا مقصد: Headscale کا مقصد خود میزبانی کرنے والوں اور شوقین افراد کو ان کے پروجیکٹس اور لیبز کے لیے ایک اوپن سورس سرور فراہم کرنا ہے۔ یہ جان بوجھ کر ایک محدود دائرہ کار — ایک واحد tailnet — نافذ کرتا ہے، جو ذاتی استعمال یا ایک چھوٹی اوپن سورس تنظیم کے لیے موزوں ہے۔ یہ پروجیکٹ Tailscale Inc. سے منسلک نہیں ہے، حالانکہ ایک فعال منتظم Tailscale میں ملازم ہے اور اسے کام کے اوقات میں تعاون کرنے کی اجازت ہے؛ ان تعاونوں کا جائزہ دیگر منتظمین لیتے ہیں۔ منتظمین مل کر پروجیکٹ کی سمت طے کرتے ہیں، اس اصول کے ساتھ کہ خود میزبانی کرنے والوں، شائقین اور شوقین افراد کی کمیونٹی کی خدمت کی جائے جبکہ پروجیکٹ کو پائیدار رکھا جائے۔ دستاویزات مستحکم اور ترقیاتی دونوں ورژنز کے لیے شائع کی جاتی ہیں، اور صارفین کو مشورہ دیا جاتا ہے کہ وہ اپنے جاری کردہ ورژن سے مماثل GitHub ٹیگ منتخب کریں، کیونکہ مین برانچ میں غیر جاری شدہ تبدیلیاں ہو سکتی ہیں۔ مین سے ترقیاتی بلڈز کنٹینر امیجز اور بائنریز کے طور پر دستیاب ہیں۔ پروجیکٹ نوٹ کرتا ہے کہ وہ Headscale چلانے کے لیے ریورس پراکسی اور کنٹینرز کے استعمال کی حمایت یا حوصلہ افزائی نہیں کرتا۔ nix/ ڈائریکٹری میں ایک NixOS ماڈیول دستیاب ہے۔ تعاون کے لیے تازہ ترین Go اور Buf (Protobuf جنریٹر) درکار ہے۔ nix develop کے ذریعے ترقیاتی ماحول قائم کرنے کے لیے Nix تجویز کیا جاتا ہے، جو ٹولز انسٹال کرتا ہے اور منتظمین کے ماحول سے مماثل شیل فراہم کرتا ہے۔ کوڈ اسٹائل کے قواعد میں Go کے لیے golangci-lint، golines اور gofumpt شامل ہیں؛ Protobuf کے لیے buf اور clang-format؛ دستاویزات کے لیے mdformat؛ اور دیگر فائلوں کے لیے prettier۔ ٹیسٹ make test کے ساتھ اور بلڈز make build کے ساتھ چلتے ہیں؛ Protobuf تبدیلیوں کے لیے make generate درکار ہے۔ پروجیکٹ ایک AI پالیسی اور تعاون گائیڈ بھی شائع کرتا ہے، اور ایک Discord کمیونٹی کو برقرار رکھتا ہے۔