
headscale v0.29.3
تطبيق مفتوح المصدر ومستضاف ذاتيًا لخادم التحكم في Tailscale

تطبيق مفتوح المصدر ومستضاف ذاتيًا لخادم تحكم Tailscale.
انضم إلى خادم Discord للدردشة.
ملاحظة: اختر دائمًا نفس علامة GitHub مثل الإصدار الذي تستخدمه لضمان حصولك على مثال التكوين الصحيح. قد يحتوي الفرع main على تغييرات غير منشورة. الوثائق متاحة للإصدارات المستقرة والتطويرية:
ما هو Tailscale
Tailscale هو VPN حديث مبني على Wireguard. يعمل كشبكة تراكبية بين أجهزة شبكاتك - باستخدام اجتياز NAT.
كل شيء في Tailscale هو مفتوح المصدر، باستثناء عملاء الواجهة الرسومية لأنظمة التشغيل الاحتكارية (Windows و macOS/iOS)، وخادم التحكم.
يعمل خادم التحكم كنقطة تبادل للمفاتيح العامة لـ Wireguard بين العُقد في شبكة Tailscale. يقوم بتعيين عناوين IP للعملاء، وإنشاء الحدود بين كل مستخدم، وتمكين مشاركة الأجهزة بين المستخدمين، وكشف المسارات المُعلنة للعُقد.
شبكة Tailscale (tailnet) هي شبكة خاصة يعينها Tailscale لمستخدم إما مستخدم خاص أو مؤسسة.
هدف التصميم
يهدف Headscale إلى تنفيذ بديل مفتوح المصدر ومستضاف ذاتيًا لخادم تحكم Tailscale. هدف Headscale هو توفير خادم مفتوح المصدر يمكن لهواة الاستضافة الذاتية والهواة استخدامه في مشاريعهم ومعاملهم. ينفذ نطاقًا محدودًا، وهو شبكة Tailscale واحدة (tailnet)، مناسبة للاستخدام الشخصي أو لمؤسسة صغيرة مفتوحة المصدر.
دعم Headscale
إذا كنت تحب headscale وتجده مفيدًا، توجد أزرار للرعاية والتبرع في المستودع.
الميزات
يرجى الاطلاع على "الميزات" في الوثائق.
دعم أنظمة تشغيل العميل
يرجى الاطلاع على "دعم العميل وأنظمة التشغيل" في الوثائق.
تشغيل headscale
يرجى ملاحظة أننا لا ندعم ولا نشجع استخدام الوكلاء العكسي والحاويات لتشغيل Headscale.
يرجى إلقاء نظرة على الوثائق.
لمستخدمي NixOS، تتوفر وحدة في nix/.
إصدارات من main
إصدارات التطوير من الفرع main متاحة كصور حاوية وملفات تنفيذية. راجع وثائق إصدارات التطوير للتفاصيل.
المحاضرات
- Fosdem 2026 (فيديو): Headscale & Tailscale: The complementary open source clone
- تقديم كريستوفر دالبي
- Fosdem 2023 (فيديو): Headscale: How we are using integration testing to reimplement Tailscale
- تقديم خوان فونت ألونسو وكريستوفر دالبي
إخلاء المسؤولية
هذا المشروع ليس مرتبطًا بشركة Tailscale Inc.
ومع ذلك، أحد المطورين النشطين لـ Headscale يعمل في Tailscale ويُسمح له بالمساهمة في المشروع خلال ساعات العمل. تتم مراجعة المساهمات من هذا المطور من قبل مطورين آخرين.
يعمل المطورون معًا على تحديد اتجاه المشروع. المبدأ الأساسي هو خدمة مجتمع المستضيفين ذاتيًا والمتحمسين والهواة - مع الحفاظ على مشروع مستدام.
المساهمة
يرجى قراءة ملف CONTRIBUTING.md.
المتطلبات
للمساهمة في headscale، ستحتاج إلى أحدث إصدار من Go و Buf (مولد Protobuf).
نوصي باستخدام Nix لإعداد بيئة تطوير. يمكن القيام بذلك باستخدام nix develop، الذي سيقوم بتثبيت الأدوات ويمنحك شل. هذا يضمن أن لديك نفس بيئة التطوير التي لدى مطوري headscale.
نمط الكود
لضمان بعض التناسق مع العدد المتزايد من المساهمات، اعتمد هذا المشروع قواعد للفحص والتصميم/التنسيق:
يتم فحص كود Go باستخدام golangci-lint وتنسيقه باستخدام golines (عرض 88) و gofumpt.
يرجى تكوين محررك لتشغيل الأدوات أثناء التطوير وتأكد من تشغيل make lint و make fmt قبل إيداع أي كود.
يتم فحص كود Proto باستخدام buf وتنسيقه باستخدام clang-format.
يتم تنسيق المستندات باستخدام mdformat.
يتم تنسيق الباقي (Markdown، YAML، إلخ) باستخدام prettier.
اطلع على .golangci.yaml و Makefile لرؤية التكوين المحدد.
تثبيت أدوات التطوير
- Go
- Buf
- أدوات Protobuf
التثبيت والتفعيل:
nix develop
الاختبار والبناء
تتطلب بعض أجزاء المشروع توليد كود Go من Protobuf (إذا تم إجراء تغييرات في proto/) ويجب إعادة توليده باستخدام:
make generate
ملاحظة: يرجى إيداع التغييرات من gen/ في إيداع منفصل لتسهيل المراجعة.
لتشغيل الاختبارات:
make test
لبناء البرنامج:
make build
سير العمل التطويري
نوصي باستخدام Nix لإدارة التبعيات لضمان حصولك على جميع الأدوات المطلوبة. إذا كنت تفضل إدارة التبعيات بنفسك، يمكنك استخدام Make مباشرة:
مع Nix (موصى به):
nix develop
make test
make build
مع التبعيات الخاصة بك:
make test
make build
سيحذرك Makefile إذا كانت أي أدوات مطلوبة مفقودة ويقترح تشغيل nix develop. قم بتشغيل make help لرؤية جميع الأهداف المتاحة.
المساهمون
تم بواسطة contrib.rocks.