Repolode
marvinvr

marvinvr/docktail

docktail.* ラベルを使って Docker コンテナを Tailscale Services として公開。コンテナごとの Tailscale デバイスやポート公開は不要です。

代替できる製品:TSDProxy

スター
1,408
フォーク
51
未解決の Issue
12
最終コミット
12 時間前

これは何?

DockTail は Docker コンテナを監視し、docktail.* ラベルを読み取って、該当するコンテナをネイティブな Tailscale Services として公開します。DockTail は Docker ネットワーク上の IP に直接プロキシするため、通常はアプリの Docker ポートを公開する必要はありません。

HTTP、HTTPS、TCP、TLS 終端済み TCP サービスに対応し、バックエンドから tailnet クライアントの IP を確認できるようにする PROXY protocol と、パブリックアクセス用の Tailscale Funnel も利用できます。1つのコンテナで複数のサービスを公開でき、コンテナの再起動や IP の変更時には自動で状態を調整します。認証情報は OAuth または API key で指定でき、ドキュメントに記載されているとおり、コンテナ、静的バイナリ、Compose、Podman、Swarm、Kubernetes 環境で実行できます。

DockTail は Go で書かれており、AGPL-3.0 ライセンスで提供されています。オプションのホステッドサービス DockTail Cloud ダッシュボードは、キーを設定するとエージェントからメタデータを受信します。この変数を設定しなければ、その用途でエージェントが外部に接続することはありません。

主な機能

  • 01docktail.* ラベルからコンテナを自動検出します。
  • 02OAuth または API key の認証情報を使って Tailscale services を作成します。
  • 03HTTP、HTTPS、TCP、TLS 終端済み TCP に対応します。
  • 04オプションの PROXY protocol により、バックエンドから tailnet クライアントの IP を確認できます。
  • 05パブリックインターネットからのアクセスに Tailscale Funnel を利用できます。
  • 061つのコンテナで複数のサービスを公開でき、再起動時には状態を調整します。

ユースケース

  • ホストのポートを開放せずに、homelab の Web アプリを Tailscale HTTPS 経由で公開する。
  • tailnet クライアントに TCP 経由でデータベースを公開する。
  • PROXY protocol を使って実際の tailnet クライアント IP を必要とするリバースプロキシを運用する。
  • Tailscale Funnel 経由で webhook エンドポイントをパブリックアクセス可能にする。

クイックスタート

  1. 1

    DockerソケットとTailscale OAuth変数を設定したdocktailのComposeサービスを追加し、アプリのコンテナにラベルを付けます

  2. 2

    スタックを起動します

    docker compose up -d
  3. 3

    tailnetからアプリを開きます

    curl http://myapp.your-tailnet.ts.net

使う前に知っておきたいこと

  • AGPL-3.0ライセンスのもとで提供されています。コピーレフトライセンスのため、ネットワーク経由で提供するサービスを改変した場合、ソースコードの開示が必要です。
  • DockerホストがTailscaleに接続され、サービスのアドバタイズが許可されている必要があります。
  • サービスの自動作成には、Tailscale OAuthまたはAPIキーの認証情報が必要です。
  • Dockerソケットをマウントすると、コンテナからホストのDockerデーモンにアクセスできるようになります。

収録されている特集

トピック

よくある質問

docktail とは?
docktail.* ラベルを使って Docker コンテナを Tailscale Services として公開。コンテナごとの Tailscale デバイスやポート公開は不要です。 DockTail は Docker コンテナを監視し、docktail.* ラベルを読み取って、該当するコンテナをネイティブな Tailscale Services として公開します。DockTail は Docker ネットワーク上の IP に直接プロキシするため、通常はアプリの Docker ポートを公開する必要はありません。
docktail は無料で使えますか?ライセンスは?
docktail は AGPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
docktail は今もメンテナンスされていますか?
活発にメンテナンス中。docktail の最終コミットは 2026年11月7日 です。
docktail は何に使えますか?
ホストのポートを開放せずに、homelab の Web アプリを Tailscale HTTPS 経由で公開する。 tailnet クライアントに TCP 経由でデータベースを公開する。 PROXY protocol を使って実際の tailnet クライアント IP を必要とするリバースプロキシを運用する。 Tailscale Funnel 経由で webhook エンドポイントをパブリックアクセス可能にする。
docktail のインストール方法は?
DockerソケットとTailscale OAuth変数を設定したdocktailのComposeサービスを追加し、アプリのコンテナにラベルを付けます スタックを起動します: docker compose up -d tailnetからアプリを開きます: curl http://myapp.your-tailnet.ts.net
docktail はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/marvinvr/docktail

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト