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

headscale v0.29.3

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

مشاركة

headscale logo

ci

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

انضم إلى خادم Discord الخاص بنا للدردشة.

ملاحظة: اختر دائمًا نفس وسم GitHub الخاص بالإصدار الذي تستخدمه لضمان حصولك على مثال التكوين الصحيح. قد يحتوي فرع main على تغييرات غير مُصدَرة. تتوفر الوثائق لكل من الإصدارات المستقرة وإصدارات التطوير:

ما هو Tailscale

Tailscale هو شبكة VPN حديثة مبنية فوق Wireguard. وهو يعمل كشبكة تراكبية (overlay network) بين أجهزة الكمبيوتر في شبكاتك - باستخدام اختراق NAT.

كل شيء في Tailscale مفتوح المصدر، باستثناء عملاء واجهة المستخدم الرسومية لأنظمة التشغيل الاحتكارية (Windows وmacOS/iOS)، وخادم التحكم.

يعمل خادم التحكم كنقطة تبادل للمفاتيح العامة لـ Wireguard الخاصة بالعُقد في شبكة Tailscale. فهو يخصص عناوين IP للعملاء، وينشئ الحدود بين كل مستخدم، ويُمكّن مشاركة الأجهزة بين المستخدمين، ويكشف المسارات المُعلنة لعُقدك.

شبكة Tailscale (tailnet) هي شبكة خاصة يخصصها Tailscale لمستخدم من حيث المستخدمين الخاصين أو لمؤسسة ما.

هدف التصميم

يهدف Headscale إلى تنفيذ بديل مفتوح المصدر ومُستضاف ذاتيًا لخادم التحكم الخاص بـ Tailscale. هدف Headscale هو تزويد المستضيفين الذاتيين والهواة بخادم مفتوح المصدر يمكنهم استخدامه لمشاريعهم ومختبراتهم. وهو ينفذ نطاقًا ضيقًا، وهو شبكة Tailscale واحدة (tailnet)، مناسبة للاستخدام الشخصي، أو لمؤسسة مفتوحة المصدر صغيرة.

دعم Headscale

إذا أعجبك headscale ووجدته مفيدًا، فهناك أزرار للرعاية والتبرع متاحة في المستودع.

الميزات

يُرجى الاطلاع على "الميزات" في الوثائق.

دعم أنظمة تشغيل العملاء

يُرجى الاطلاع على "دعم العملاء وأنظمة التشغيل" في الوثائق.

تشغيل headscale

يُرجى ملاحظة أننا لا ندعم ولا نشجع استخدام الوكلاء العكسيين (reverse proxies) والحاويات لتشغيل Headscale.

يُرجى إلقاء نظرة على الوثائق.

لمستخدمي NixOS، تتوفر وحدة (module) في nix/.

عمليات البناء من main

تتوفر عمليات البناء التطويرية من فرع main كصور حاويات و ملفات ثنائية. راجع وثائق عمليات البناء التطويرية للحصول على التفاصيل.

المحاضرات

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

هذا المشروع غير مرتبط بشركة Tailscale Inc.

ومع ذلك، فإن أحد المشرفين النشطين على Headscale موظف لدى Tailscale ويُسمح له بقضاء ساعات عمل في المساهمة في المشروع. تتم مراجعة مساهمات هذا المشرف من قبل مشرفين آخرين.

يعمل المشرفون معًا على تحديد اتجاه المشروع. المبدأ الأساسي هو خدمة مجتمع المستضيفين الذاتيين والمتحمسين والهواة - مع الحفاظ على مشروع مستدام.

المساهمة

يُرجى قراءة ملف CONTRIBUTING.md.

ألقِ نظرة أيضًا على AI_POLICY.md.

المتطلبات

للمساهمة في headscale ستحتاج إلى أحدث إصدار من Go وBuf (مولّد Protobuf).

نوصي باستخدام Nix لإعداد بيئة تطوير. يمكن القيام بذلك عبر nix develop، والذي سيثبّت الأدوات ويمنحك صدفة (shell). هذا يضمن حصولك على نفس بيئة التطوير التي يستخدمها مشرفو headscale.

أسلوب الكود

لضمان قدر من الاتساق مع تزايد عدد المساهمات، اعتمد هذا المشروع قواعد للتدقيق (linting) والأسلوب/التنسيق:

يتم تدقيق كود Go باستخدام golangci-lint و تنسيقه باستخدام منسّقات golangci-lint (gofumpt، gci، goimports). يرجى تهيئة محرّرك لتشغيل الأدوات أثناء التطوير واحرص على تشغيل make lint وmake fmt قبل إجراء commit لأي كود.

يتم تدقيق كود Proto باستخدام buf و تنسيقه باستخدام clang-format.

يتم تنسيق المستندات باستخدام mdformat.

يتم تنسيق الباقي (Markdown، YAML، إلخ) باستخدام prettier.

راجع .golangci.yaml وMakefile للاطلاع على التهيئة المحددة.

تثبيت أدوات التطوير

  • Go
  • Buf
  • أدوات Protobuf

التثبيت والتفعيل:

nix develop

الاختبار والبناء

تتطلب بعض أجزاء المشروع توليد شيفرة Go من Protobuf (إذا تم إجراء تغييرات في proto/) ويجب إعادة توليدها باستخدام:

make generate

ملاحظة: يُرجى إيداع التغييرات من gen/ في commit منفصل لتسهيل المراجعة.

لتشغيل الاختبارات:

make test

لبناء البرنامج:

make build

سير عمل التطوير

نوصي باستخدام Nix لإدارة التبعيات لضمان توفر جميع الأدوات المطلوبة لديك. إذا كنت تفضّل إدارة التبعيات بنفسك، يمكنك استخدام Make مباشرةً:

مع Nix (موصى به):

nix develop
make test
make build

مع الاعتماديات الخاصة بك:

make test
make build

سيُنبّهك ملف Makefile إذا كانت أي أدوات مطلوبة مفقودة، ويقترح تشغيل nix develop. شغّل make help لعرض جميع الأهداف المتاحة.

المساهمون

صُنع باستخدام contrib.rocks.

الفئات