প্রকল্প সম্পর্কে

Headscale হল Tailscale কন্ট্রোল সার্ভারের একটি ওপেন-সোর্স, স্ব-হোস্টেড বাস্তবায়ন। Tailscale হল WireGuard-এর উপর নির্মিত একটি আধুনিক VPN যা NAT ট্রাভার্সাল ব্যবহার করে কম্পিউটারগুলির মধ্যে ওভারলে নেটওয়ার্ক হিসেবে কাজ করে। Tailscale-এর বেশিরভাগ অংশ ওপেন-সোর্স হলেও কন্ট্রোল সার্ভারটি ওপেন-সোর্স নয়; Headscale সেই শূন্যতা পূরণ করে। কন্ট্রোল সার্ভারটি একটি Tailscale নেটওয়ার্কের নোডগুলির মধ্যে WireGuard পাবলিক কী বিনিময়ের পয়েন্ট হিসেবে কাজ করে। এটি ক্লায়েন্ট IP ঠিকানা নির্ধারণ করে, ব্যবহারকারীদের মধ্যে সীমানা তৈরি করে, ব্যবহারকারীদের মধ্যে মেশিন ভাগ করে নেওয়া সক্ষম করে এবং নোডগুলির বিজ্ঞাপিত রুট প্রকাশ করে। tailnet হল প্রাইভেট নেটওয়ার্ক যা Tailscale একজন ব্যবহারকারী বা সংস্থাকে নির্ধারণ করে। ডিজাইন লক্ষ্য: Headscale-এর লক্ষ্য হল স্ব-হোস্টার এবং শখের মানুষদের তাদের প্রকল্প এবং ল্যাবের জন্য একটি ওপেন-সোর্স সার্ভার প্রদান করা। এটি ইচ্ছাকৃতভাবে একটি সংকীর্ণ পরিধি বাস্তবায়ন করে — একটি একক tailnet — যা ব্যক্তিগত ব্যবহার বা একটি ছোট ওপেন-সোর্স সংস্থার জন্য উপযুক্ত। প্রকল্পটি Tailscale Inc.-এর সাথে যুক্ত নয়, যদিও একজন সক্রিয় রক্ষণাবেক্ষণকারী Tailscale-এ নিযুক্ত এবং কাজের সময়ে অবদান রাখার অনুমতি রয়েছে; সেই অবদানগুলি অন্যান্য রক্ষণাবেক্ষণকারীদের দ্বারা পর্যালোচনা করা হয়। রক্ষণাবেক্ষণকারীরা একসাথে প্রকল্পের দিকনির্দেশনা নির্ধারণ করেন, স্ব-হোস্টার, উত্সাহী এবং শখের মানুষদের সম্প্রদায়ের সেবা করার নীতি নিয়ে, প্রকল্পটি টেকসই রাখার পাশাপাশি। স্থিতিশীল এবং উন্নয়ন উভয় সংস্করণের জন্য ডকুমেন্টেশন প্রকাশিত হয়, এবং ব্যবহারকারীদের তাদের প্রকাশিত সংস্করণের সাথে মিলে যাওয়া GitHub ট্যাগ নির্বাচন করার পরামর্শ দেওয়া হয়, কারণ main শাখায় অপ্রকাশিত পরিবর্তন থাকতে পারে। main থেকে উন্নয়ন বিল্ডগুলি কন্টেইনার ইমেজ এবং বাইনারি হিসাবে উপলব্ধ। প্রকল্পটি নোট করে যে এটি Headscale চালানোর জন্য রিভার্স প্রক্সি এবং কন্টেইনার ব্যবহার সমর্থন বা উত্সাহিত করে না। nix/ ডিরেক্টরিতে একটি NixOS মডিউল উপলব্ধ। অবদান রাখার জন্য সর্বশেষ Go এবং Buf (Protobuf জেনারেটর) প্রয়োজন। nix develop-এর মাধ্যমে উন্নয়ন পরিবেশ সেট আপ করার জন্য Nix সুপারিশ করা হয়, যা সরঞ্জাম ইনস্টল করে এবং রক্ষণাবেক্ষণকারীদের পরিবেশের সাথে মেলে এমন একটি শেল প্রদান করে। কোড স্টাইল নিয়মগুলির মধ্যে রয়েছে Go-এর জন্য golangci-lint, golines এবং gofumpt; Protobuf-এর জন্য buf এবং clang-format; ডক্সের জন্য mdformat; এবং অন্যান্য ফাইলের জন্য prettier। টেস্ট চলে make test দিয়ে এবং বিল্ড চলে make build দিয়ে; Protobuf পরিবর্তনের জন্য make generate প্রয়োজন। প্রকল্পটি একটি AI নীতি এবং অবদান নির্দেশিকাও প্রকাশ করে এবং একটি Discord সম্প্রদায় বজায় রাখে।