العودة إلى التحديثات
New releaseJul 29, 2026

headscale v0.29.3

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

مشاركة

headscale logo

ci

تطبيق مفتوح المصدر ومستضاف ذاتيًا لخادم تحكم 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 متاحة كصور حاوية وملفات تنفيذية. راجع وثائق إصدارات التطوير للتفاصيل.

المحاضرات

إخلاء المسؤولية

هذا المشروع ليس مرتبطًا بشركة 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.

الفئات