Headscale؛ سرور کنترل Tailscale که خودت میزبانیش میکنی
خلاصهٔ کاملتر
تو صفحهٔ پروژه توضیح داده شده که Headscale یه جایگزین متنباز و self-hosted برای سرور کنترل Tailscale هست. برای اینکه بفهمیم چرا مهمه، اول باید بدونیم Tailscale چیه: یه VPN مدرن که روی WireGuard ساخته شده و مثل یه شبکهٔ overlay بین کامپیوترهای شبکهت کار میکنه و از تکنیک NAT traversal برای برقراری ارتباط مستقیم استفاده میکنه.
تو Tailscale تقریباً همهچی متنبازه، جز کلاینتهای گرافیکی سیستمعاملهای بسته (ویندوز و macOS/iOS) و خود سرور کنترل. این سرور کنترل نقش نقطهٔ تبادل کلیدهای عمومی WireGuard بین nodeها رو داره، آدرس IP کلاینتها رو تعیین میکنه، مرزها بین کاربرها رو میسازه، اشتراکگذاری دستگاه بین کاربرها رو ممکن میکنه و مسیرهای اعلامشدهٔ nodeها رو expose میکنه. Headscale دقیقاً همین تیکهٔ بسته رو بهصورت باز پیادهسازی میکنه.
به گفتهٔ سازندهها، هدف Headscale اینه که به self-hosterها و علاقهمندها یه سرور متنباز بده که بتونن تو پروژهها و آزمایشگاههای خودشون استفاده کنن. Scope عمداً محدوده: فقط یه شبکهٔ Tailscale (که بهش tailnet میگن) رو پشتیبانی میکنه که مناسب استفادهٔ شخصی یا یه تیم/سازمان متنباز کوچیکه.
یه نکتهٔ مهم تو راهاندازی اینه که تیم پروژه استفاده از reverse proxy و کانتینر برای اجرای Headscale رو نه پشتیبانی میکنه نه توصیه؛ پس بهتره به مستندات رسمی برای روش درست نصب تکیه کنی. برای کاربرهای NixOS هم یه ماژول آماده تو پوشهٔ nix/ وجود داره و بیلدهای توسعه از شاخهٔ main بهصورت ایمیج کانتینری و باینری در دسترسه.
یه نکتهٔ جالب دربارهٔ سلامت پروژه هم اینه که هرچند Headscale وابسته به شرکت Tailscale نیست، یکی از maintainerهای فعالش کارمند Tailscale هست و اجازه داره تو ساعت کاری روی این پروژه کار کنه؛ البته مشارکتهاش رو maintainerهای دیگه بازبینی میکنن. اصل راهنمای پروژه اینه که جامعهٔ self-hosterها و هابیایستها رو سرویس بده و یه پروژهٔ پایدار بمونه.
برای مشارکت هم به آخرین نسخهٔ Go و ابزار Buf (تولیدکنندهٔ Protobuf) نیاز داری و تیم استفاده از Nix رو برای ساختن محیط توسعه توصیه میکنه تا همه همون محیط maintainerها رو داشته باشن. کد Go با golangci-lint لینت و با golines و gofumpt فرمت میشه.
نکات کلیدی:
- یه پیادهسازی متنباز و self-hosted از سرور کنترل Tailscale
- Tailscale یه VPN روی پایهٔ WireGuard هست که مثل شبکهٔ overlay با NAT traversal کار میکنه
- سرور کنترل کلیدهای WireGuard رو تبادل، IPها رو تخصیص و مرز بین کاربرها رو مدیریت میکنه
- Scope عمداً محدوده: فقط یه tailnet، مناسب استفادهٔ شخصی یا تیم کوچیک
- تیم پروژه استفاده از reverse proxy و کانتینر برای اجرا رو توصیه نمیکنه؛ برای NixOS ماژول آماده داره




