- Headscale, Tailscale के कंट्रोल सर्वर फ़ंक्शन को self-host करने के लिए बनाया गया एक open source alternative project है
- Tailscale एक WireGuard-आधारित आधुनिक VPN solution है, जिससे NAT environment में भी काम करने वाला overlay network बनाया जा सकता है
- मूल Tailscale Control server proprietary software है, लेकिन Headscale को इसके विकल्प के रूप में स्वतंत्र रूप से install किया जा सकने वाला server software बनाकर विकसित किया गया है
- Windows, macOS, iOS clients को अभी भी Tailscale GUI की आवश्यकता होती है
Headscale का उद्देश्य और विशेषताएँ
- Headscale, व्यक्तिगत और छोटे open source संगठनों के उपयोग के लिए केवल एक tailnet (virtual private network) को support करता है
- यह अपना server चलाना चाहने वाले users और free software enthusiasts के लिए उपयुक्त solution है
- इसका design scope जानबूझकर सीमित रखा गया है, जिससे maintenance और management आसान रहता है
मुख्य सुविधाएँ
- client nodes के बीच WireGuard public key exchange
- हर node के लिए IP address allocation और boundary settings
- users के बीच machine sharing feature
- node route advertisement management
- आधिकारिक feature list यहाँ देखी जा सकती है
समर्थित client operating systems
- Headscale के साथ compatible operating systems और clients की सूची आधिकारिक दस्तावेज़ में देखी जा सकती है
installation और execution से जुड़ी जानकारी
- reverse proxy या container-आधारित execution को आधिकारिक रूप से recommend नहीं किया जाता
- चलाने के तरीके और configuration के लिए आधिकारिक दस्तावेज़ देखें
community और contribution
development environment और code style
- development के लिए ज़रूरी मुख्य tools:
- Go का latest version
- Buf (Protobuf generator)
- Nix का उपयोग करके development environment सेट किया जा सकता है (
nix develop command)
- code style:
- Go code:
golangci-lint, golines, gofumpt का उपयोग
- Proto code:
buf, clang-format का उपयोग
- अन्य files:
prettier से format
- commit से पहले
make lint, make fmt से code cleanup करना आवश्यक है
build और test
- Protobuf code में बदलाव होने पर Go code को फिर से generate करना होगा:
make generate
- test चलाना:
make test
- build:
nix build
- या
make build command का उपयोग
अन्य जानकारी
- 2023 FOSDEM में Headscale पर एक प्रस्तुति दी गई थी: वीडियो देखें
- project का Tailscale Inc. से सीधा संबंध नहीं है, लेकिन Tailscale के contributors इसमें भाग लेते हैं और code review व दिशा-निर्धारण स्वतंत्र रूप से किया जाता है
1 टिप्पणियां
Hacker News राय
मैं हर कुछ महीनों में इस रिपॉज़िटरी पर फिर से आता हूँ यह देखने के लिए कि Tailnet lock काम कर रहा है या नहीं, या कोई security audit हुआ है या नहीं। दुर्भाग्य से, दोनों में कोई प्रगति नहीं हुई है, इसलिए यह अनिश्चित लगने लगा है कि क्या इस सिस्टम पर इन्फ्रास्ट्रक्चर के मुख्य हिस्से के रूप में भरोसा किया जा सकता है
अगर आप orchestration server को self-host करने में रुचि रखते हैं, तो Netbird देख सकते हैं। यह टूल काफ़ी मिलता-जुलता है, लेकिन server open source के रूप में उपलब्ध है। इसलिए आप paid version की सभी features के साथ self-hosted control server और एक अच्छा GUI पा सकते हैं
अच्छा होगा अगर Headscale instances के बीच peering/federation की अनुमति दे (चाहे ACL rework के बाद ही सही)। मुख्य समस्याओं में से एक address conflict है
project name, Headscale, को title में जोड़ा जाना चाहिए
सोच रहा हूँ कि क्या यह Plan 9 पर चलता है
मुझे Headscale बहुत पसंद है। हमने इसे production में लगाया है और यह बहुत अच्छा रहा
मैं सोच रहा हूँ कि अगर Tailscale coordination server compromise हो जाए और tailnet lock enabled हो, तो मेरे devices के compromise होने का जोखिम कितना है
कई use cases (mobile access, macOS पर GUI) में official Tailscale client, control server सेट करने की क्षमता पर निर्भर करता है
मैं जानना चाहता हूँ कि wireguard + openwrt setup की तुलना में यह setup कौन-सी अतिरिक्त value देता है
यह कथन कि "Tailscale implementation के लिए, users को यह समझने या मना करने का कोई तरीका दिए बिना कि control server clients को क्या निर्देश दे रहा है, server code का बिल्कुल audit न करना काफ़ी साहसी लगता है" इस बात की ओर इशारा करता है कि Headscale control server का source code public कर देना भर ही users के लिए "यह समझने या मना करने" की पर्याप्त शर्त नहीं है कि control server clients को क्या निर्देश दे रहा है