アップデート一覧に戻る
New releaseJul 29, 2026

headscale v0.29.3

オープンソースでセルフホスト可能なTailscaleコントロールサーバーの実装。

共有

headscale ロゴ

ci

Tailscale コントロールサーバーのオープンソース、セルフホスト実装です。

Discord サーバー に参加してチャットしましょう。

注意: 常に使用しているリリースバージョンと同じ GitHub タグを選択し、正しい設定例があることを確認してください。main ブランチには未リリースの変更が含まれている可能性があります。安定版と開発版のドキュメントが利用可能です:

Tailscale とは

Tailscale は Wireguard 上に構築されたモダンな VPN です。 ネットワーク上のコンピューター間でオーバーレイネットワークのように動作しNAT トラバーサル を利用します。

Tailscale のすべてはオープンソースですが、プロプライエタリ OS(Windows および macOS/iOS)用の GUI クライアントとコントロールサーバーは除きます。

コントロールサーバーは、Tailscale ネットワーク内のノード間で Wireguard 公開鍵を交換するための交換ポイントとして機能します。クライアントの IP アドレスを割り当て、各ユーザー間の境界を作成し、ユーザー間でマシンを共有できるようにし、ノードのアドバタイズされたルートを公開します。

Tailscale ネットワーク(テイルネット) は、個人ユーザーまたは組織に対して Tailscale が割り当てるプライベートネットワークです。

デザインゴール

Headscale は、Tailscale コントロールサーバーのセルフホスト、オープンソースの代替を実装することを目指しています。Headscale の目標は、セルフホスターや愛好家に、自分のプロジェクトやラボで使用できるオープンソースサーバーを提供することです。これは、個人使用または小規模なオープンソース組織に適した、単一の Tailscale ネットワーク(テイルネット)という狭い範囲を実装しています。

Headscale のサポート

headscale が気に入り、役に立つと思われた場合は、リポジトリにスポンサーシップと寄付のボタンがあります。

機能

ドキュメントの "機能" を参照してください。

クライアント OS のサポート

ドキュメントの "クライアントおよびオペレーティングシステムのサポート" を参照してください。

headscale の実行

リバースプロキシやコンテナを使用して Headscale を実行することはサポートしておらず、推奨もしていませんのでご注意ください。

ドキュメント をご覧ください。

NixOS ユーザー向けには、nix/ にモジュールがあります。

main からのビルド

main ブランチからの開発ビルドは、コンテナイメージとバイナリとして入手可能です。詳細は開発ビルドのドキュメントを参照してください。

トーク

免責事項

このプロジェクトは Tailscale Inc. とは関係ありません。

ただし、Headscale のアクティブなメンテナの一人は Tailscale に雇用されており、作業時間をプロジェクトへの貢献に充てることが許可されています。このメンテナからの貢献は他のメンテナによってレビューされます。

メンテナはプロジェクトの方向性を設定するために協力しています。根本的な原則は、持続可能なプロジェクトを維持しながら、セルフホスター、愛好家、趣味人のコミュニティに奉仕することです。

コントリビューション

CONTRIBUTING.md ファイルをお読みください。

必要条件

headscale に貢献するには、最新バージョンの GoBuf(Protobuf ジェネレーター)が必要です。

開発環境のセットアップには Nix を使用することをお勧めします。これは nix develop で行うことができ、ツールをインストールしてシェルを提供します。これにより、headscale メンテナと同じ開発環境を保証できます。

コードスタイル

増え続ける貢献との一貫性を確保するために、このプロジェクトはリンティングとスタイル/フォーマットルールを採用しています:

Go コードは golangci-lint でリントされ、golines(幅88)と gofumpt でフォーマットされます。 開発中はツールを実行するようにエディターを設定し、コードをコミットする前に make lintmake fmt を実行してください。

Proto コードは buf でリントされ、clang-format でフォーマットされます。

ドキュメントmdformat でフォーマットされます。

その他(Markdown、YAML など)は prettier でフォーマットされます。

具体的な設定は .golangci.yamlMakefile を確認してください。

開発ツールのインストール

  • Go
  • Buf
  • Protobuf ツール

インストールして有効化:

nix develop

テストとビルド

プロジェクトの一部では、Protobuf から Go コードを生成する必要があります(proto/ に変更があった場合)。これは次のコマンドで(再)生成する必要があります:

make generate

注: gen/ からの変更は、レビューを容易にするために別のコミットでチェックインしてください。

テストを実行するには:

make test

プログラムをビルドするには:

make build

開発ワークフロー

依存関係管理には Nix を使用することをお勧めします。これにより必要なツールがすべて揃います。自分で依存関係を管理する場合は、Make を直接使用できます:

Nix を使用する場合(推奨):

nix develop
make test
make build

独自の依存関係を使用する場合:

make test
make build

Makefile は、必要なツールが不足している場合に警告を表示し、nix develop を実行するよう提案します。利用可能なすべてのターゲットを確認するには make help を実行してください。

貢献者

contrib.rocks で作成

カテゴリ