Web Analytics

gluetun-webui

⭐ 288 stars Persian by Sir-Scuzza

🌐 زبان

رابط کاربری تحت وب گلوئتون

یک رابط کاربری تحت وب سبک برای نظارت و کنترل Gluetun — کلاینت VPN برای کانتینر داکر.

وضعیت: متصل Node 25 Docker


ویژگی‌ها

---

تصاویر

متن جایگزین


پیش‌نیازها

> پشتیبانی از linux/amd64 و linux/arm64 (قابل اجرا بر روی مک اینتل/اپل سیلیکون، لینوکس و ویندوز).


شروع سریع

گزینه A1: نمونه تکی (توصیه‌شده)

اضافه کردن gluetun-webui به فایل کامپوز فعلی در کنار Gluetun:

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: چندین نمونه

مانیتور کردن ۲ یا بیشتر نمونه 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

گزینه ب: ساخت محلی

git clone https://github.com/Sir-Scuzza/gluetun-webui.git
cd gluetun-webui
docker compose up -d --build
سپس اجرا کنید (هر یک از گزینه‌ها):

docker compose up -d

رابط کاربری در http://localhost:3000 در دسترس است


راه‌اندازی شبکه

هر دو Gluetun و gluetun-webui باید در یک شبکه داکر باشند تا http://gluetun:8000 به درستی resolve شود.

همان فایل کامپوز — فقط کافیست هر دو سرویس را به یک شبکه اضافه کنید (رایج‌ترین حالت):

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

فایل‌های کامپوز جداگانه — شبکه موجود 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)

پشتیبانی شده: تا ۲۰ نمونه (از طریق GLUETUN_1_URL تا GLUETUN_20_URL) واکنش‌گرا: ۱ داشبورد با عرض کامل → ۲ داشبورد با نیم‌عرض → ۳ داشبورد با یک‌سوم عرض → ۴ داشبورد با یک‌چهارم عرض → قابل اسکرول از ۵ نمونه به بالا

سازگاری با نسخه‌های قبلی

اگر هیچ متغیر شماره‌گذاری‌شده‌ای پیکربندی نشود، به حالت تک‌نمونه قدیمی بازمی‌گردد:

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_ | _(خالی)_ | پیکربندی چند نمونه‌ای (تا ۲۰ نمونه) | | GLUETUN_{N}_URL | – | آدرس سرور کنترل HTTP Gluetun برای نمونه N | | GLUETUN_{N}_NAME | Instance {N} | نام نمایشی برای نمونه N | | GLUETUN_{N}_API_KEY | _(خالی)_ | توکن Bearer برای نمونه N (در صورت فعال بودن احراز هویت) | | GLUETUN_{N}_USER | _(خالی)_ | نام کاربری برای احراز هویت HTTP Basic (نمونه N) | | GLUETUN_{N}_PASSWORD | _(خالی)_ | رمز عبور برای احراز هویت HTTP Basic (نمونه N) | | GLUETUN_CONTROL_URL | http://gluetun:8000 | قدیمی – فقط یک نمونه (در صورت نبود متغیرهای GLUETUN_1_*) | | GLUETUN_API_KEY | _(خالی)_ | قدیمی – توکن Bearer برای یک نمونه | | GLUETUN_USER | _(خالی)_ | قدیمی – نام کاربری برای احراز هویت HTTP Basic | | GLUETUN_PASSWORD | _(خالی)_ | قدیمی – رمز عبور برای احراز هویت HTTP Basic | | PORT | 3000 | پورتی که رابط کاربری وب روی آن گوش می‌دهد | | 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
این امکان را به برنامه می‌دهد تا هدرهای X-Forwarded-For و هدرهای مرتبط را برای محدودسازی نرخ و شناسایی IP به طور دقیق تجزیه کند. توجه: این گزینه را فقط زمانی فعال کنید که واقعاً پشت یک پروکسی معکوس قرار دارید، زیرا هدرهای پروکسی را از پروکسی معکوس شما اعتماد می‌کند.

احراز هویت پروکسی معکوس

کنترل‌های شروع/توقف VPN احراز هویت داخلی ندارند. اگر رابط کاربری را خارج از localhost در معرض دید قرار می‌دهید، آن را پشت یک پروکسی معکوس با احراز هویت HTTP Basic قرار دهید.

کدی (Caddyfile):

your.domain.com {
  basicauth {
    user $2a$14$
  }
  reverse_proxy localhost:3000
}
یک هش تولید کنید با: caddy hash-password

انجین‌ایکس (nginx.conf):

location / {
  auth_basic "Restricted";
  auth_basic_user_file /etc/nginx/.htpasswd;
  proxy_pass http://localhost:3000;
}
یک فایل رمز عبور ایجاد کنید با: htpasswd -c /etc/nginx/.htpasswd user

ترایفیک (برچسب‌های داکر):

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-29 ---