Web Analytics

gluetun-webui

⭐ 286 stars Japanese by Sir-Scuzza

Gluetun WebUI

Docker用VPNクライアントコンテナGluetunの監視および制御のための軽量Web UI。

Status: Connected Node 25 Docker


機能

---

スクリーンショット

alt text


要件

> linux/amd64 および linux/arm64 をサポート(Mac Intel/Apple Silicon、Linux、Windowsで動作)。


クイックスタート

オプション A1: シングルインスタンス(推奨)

既存の compose ファイルに Gluetun と並行して gluetun-webui を追加します:

gluetun-webui:
  image: scuzza/gluetun-webui:latest
  container_name: gluetun-webui
  ports:
    
  • "127.0.0.1:3000:3000"
environment:
  • GLUETUN_CONTROL_URL=http://gluetun:8000
# Uncomment if Gluetun auth is enabled: #- GLUETUN_API_KEY=yourtoken #- GLUETUN_USER=username #- GLUETUN_PASSWORD=password networks:
  • your_network_name
restart: unless-stopped read_only: true tmpfs:
  • /tmp
security_opt:
  • no-new-privileges:true
cap_drop:
  • ALL
healthcheck: test: ["CMD", "wget", "-qO-", "http://localhost:3000/api/health"] interval: 30s timeout: 5s start_period: 10s retries: 3

オプションA2:複数インスタンス

2つ以上のGluetunインスタンスを別々のダッシュボードで監視:

gluetun-webui:
  image: scuzza/gluetun-webui:latest
  container_name: gluetun-webui
  ports:
    
  • "127.0.0.1:3000:3000"
environment:
  • GLUETUN_1_NAME=VPN - London
  • GLUETUN_1_URL=http://gluetun-1:8000
  • GLUETUN_1_API_KEY=token1
  • GLUETUN_2_NAME=VPN - Amsterdam
  • GLUETUN_2_URL=http://gluetun-2:8000
  • GLUETUN_2_API_KEY=token2
  • GLUETUN_3_NAME=VPN - Singapore
  • GLUETUN_3_URL=http://gluetun-3:8000
  • GLUETUN_3_API_KEY=token3
networks:
  • your_network_name
restart: unless-stopped read_only: true tmpfs:
  • /tmp
security_opt:
  • no-new-privileges:true
cap_drop:
  • ALL

オプションB:ローカルでビルドする

git clone https://github.com/Sir-Scuzza/gluetun-webui.git
cd gluetun-webui
docker compose up -d --build

次に、以下のいずれかのオプションを実行します:

docker compose up -d

UIは http://localhost:3000 で利用可能です


ネットワーク設定

Gluetunとgluetun-webuiは同じDockerネットワーク上にある必要があり、http://gluetun:8000 が正しく解決されます。

同じcomposeファイル — 両方のサービスを同じネットワークに追加するだけです(最も一般的):

services:
  gluetun:
    networks:
      
  • arr-stack
gluetun-webui: networks:
  • arr-stack
networks: arr-stack: driver: bridge

Composeファイルを分割する — Gluetunの既存ネットワークを外部として参照します。ネットワーク名はdocker network lsで確認してください:

networks:
  ext-network:
    external: true
    name: your_gluetun_network_name


マルチVPNサポート

複数インスタンス

gluetun-webuiは複数のGluetunインスタンスを同時に監視および制御することをサポートしています。各インスタンスはレスポンシブグリッド内の別々のダッシュボードとして表示されます。

設定: 番号付き環境変数を使用してください:

gluetun-webui:
  image: scuzza/gluetun-webui:latest
  environment:
    # Instance 1
    
  • GLUETUN_1_NAME=VPN 1
  • GLUETUN_1_URL=http://gluetun-1:8000
  • GLUETUN_1_API_KEY=token1 # optional
# Instance 2
  • GLUETUN_2_NAME=VPN 2
  • GLUETUN_2_URL=http://gluetun-2:8000
  • GLUETUN_2_API_KEY=token2 # optional
# Instance 3
  • GLUETUN_3_NAME=VPN 3
  • GLUETUN_3_URL=http://gluetun-3:8000
  • GLUETUN_3_USER=admin
  • GLUETUN_3_PASSWORD=secret # optional (HTTP Basic auth)

サポート対象: 最大20インスタンス(GLUETUN_1_URLからGLUETUN_20_URLまで) レスポンシブ対応: 1つの全幅ダッシュボード → 2つの半幅 → 3つの3分の1幅 → 4つの4分の1幅 → 5つ以上はスクロール可能

後方互換性

番号付き変数が設定されていない場合は、従来の単一インスタンスモードにフォールバックします:

environment:
  
  • GLUETUN_CONTROL_URL=http://gluetun:8000 # legacy
  • GLUETUN_API_KEY=token

インスタンスごとの認証

各インスタンスは異なる認証を持つことができます:

# Instance with API key
  • GLUETUN_1_API_KEY=my-secret-token

Instance with HTTP Basic auth

  • GLUETUN_2_USER=admin
  • GLUETUN_2_PASSWORD=mysecret

Instance with no auth

  • GLUETUN_3_URL=http://gluetun-3:8000 # auth optional

---

設定

| 変数 | デフォルト | 説明 | |---|---|---| | GLUETUN_1_ から GLUETUN_20_ | _(空)_ | マルチインスタンス設定(最大20インスタンス) | | GLUETUN_{N}_URL | – | インスタンスNのGluetun HTTPコントロールサーバーURL | | GLUETUN_{N}_NAME | Instance {N} | インスタンスNの表示名 | | GLUETUN_{N}_API_KEY | _(空)_ | インスタンスNのベアラートークン(認証有効時) | | GLUETUN_{N}_USER | _(空)_ | HTTPベーシック認証のユーザー名(インスタンスN) | | GLUETUN_{N}_PASSWORD | _(空)_ | HTTPベーシック認証のパスワード(インスタンスN) | | GLUETUN_CONTROL_URL | http://gluetun:8000 | レガシー – 単一インスタンスのみ(GLUETUN_1_*変数がない場合のフォールバック) | | GLUETUN_API_KEY | _(空)_ | レガシー – 単一インスタンス用ベアラートークン | | GLUETUN_USER | _(空)_ | レガシー – HTTPベーシック認証のユーザー名 | | GLUETUN_PASSWORD | _(空)_ | レガシー – HTTPベーシック認証のパスワード | | PORT | 3000 | Web UIが待ち受けるポート | | TRUST_PROXY | false | リバースプロキシ(nginx、Traefik等)背後で動作させる場合はtrueに設定 |


セキュリティ

リバースプロキシの設定

gluetun-webuiをリバースプロキシ(nginx、Traefik、Caddy等)背後で実行する場合は、環境変数に TRUST_PROXY=true を設定してください:

gluetun-webui:
  image: scuzza/gluetun-webui:latest
  environment:
    
  • GLUETUN_CONTROL_URL=http://gluetun:8000
  • TRUST_PROXY=true # Required for reverse proxies
これにより、アプリは正確なレート制限とIP検出のために X-Forwarded-For および関連ヘッダーを正しく解析できます。注意: 実際にリバースプロキシの背後にいる場合にのみこれを有効にしてください。リバースプロキシからのプロキシヘッダーを信頼するためです。

リバースプロキシ認証

VPNの開始/停止コントロールには組み込みの認証がありません。UIをlocalhost以外に公開する場合は、HTTPベーシック認証付きのリバースプロキシの背後に配置してください。

CaddyCaddyfile):

your.domain.com {
  basicauth {
    user $2a$14$
  }
  reverse_proxy localhost:3000
}
ハッシュを生成するには:caddy hash-password

Nginxnginx.conf):

location / {
  auth_basic "Restricted";
  auth_basic_user_file /etc/nginx/.htpasswd;
  proxy_pass http://localhost:3000;
}
パスワードファイルを生成するには: htpasswd -c /etc/nginx/.htpasswd user

Traefik(Dockerラベル):

labels:
  
  • "traefik.enable=true"
  • "traefik.http.routers.gluetun-webui.rule=Host(your.domain.com)"
  • "traefik.http.routers.gluetun-webui.middlewares=auth"
  • "traefik.http.middlewares.auth.basicauth.users=user:$$apr1$$"
htpasswd -nb user passwordでハッシュを生成


謝辞

---

ライセンス

MIT

--- Tranlated By Open Ai Tx | Last indexed: 2026-05-26 ---