Об этом проекте
Headscale — это реализация управляющего сервера Tailscale с открытым исходным кодом, размещаемая самостоятельно. Tailscale — это современная VPN на основе WireGuard, работающая как оверлейная сеть между компьютерами с использованием обхода NAT. Хотя большая часть Tailscale имеет открытый исходный код, управляющий сервер — нет; Headscale заполняет этот пробел.
Управляющий сервер действует как точка обмена открытыми ключами WireGuard между узлами сети Tailscale. Он назначает клиентские IP-адреса, создаёт границы между пользователями, разрешает обмен машинами между пользователями и раскрывает анонсируемые маршруты узлов. Tailnet — это частная сеть, которую Tailscale назначает пользователю или организации.
Цель проекта: Headscale стремится предоставить самостоятельным хостам и любителям открытый сервер для их проектов и лабораторий. Он намеренно реализует узкую область — одну tailnet — подходящую для личного использования или небольшой организации с открытым исходным кодом.
Проект не связан с Tailscale Inc., хотя один активный сопровождающий работает в Tailscale и ему разрешено вносить вклад в рабочее время; эти вклады проверяются другими сопровождающими. Сопровождающие вместе определяют направление проекта, руководствуясь принципом служения сообществу самостоятельных хостеров, энтузиастов и любителей, сохраняя при этом устойчивость проекта.
Документация публикуется как для стабильных, так и для разрабатываемых версий; пользователям рекомендуется выбирать тег GitHub, соответствующий их выпущенной версии, поскольку ветка main может содержать невыпущенные изменения. Сборочные версии из main доступны в виде образов контейнеров и бинарных файлов. Проект отмечает, что он не поддерживает и не поощряет использование обратных прокси и контейнеров для запуска Headscale. Модуль NixOS доступен в каталоге nix/.
Для участия требуются последние версии Go и Buf (генератор Protobuf). Для настройки среды разработки рекомендуется Nix через nix develop, который устанавливает инструменты и предоставляет оболочку, соответствующую окружению сопровождающих. Правила стиля кода включают golangci-lint, golines и gofumpt для Go; buf и clang-format для Protobuf; mdformat для документации; и prettier для других файлов. Тесты запускаются с помощью make test, сборка — с помощью make build; изменения Protobuf требуют make generate. Проект также публикует политику в отношении ИИ и руководство для участников, а также поддерживает сообщество в Discord.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.