Web Analytics

gluetun-webui

⭐ 288 stars German by Sir-Scuzza

🌐 Sprache

Gluetun WebUI

Eine leichtgewichtige Web-Benutzeroberfläche zur Überwachung und Steuerung von Gluetun — dem VPN-Client-Container für Docker.

Status: Verbunden Node 25 Docker


Funktionen

---

Screenshots

alt text


Anforderungen

> Unterstützt linux/amd64 und linux/arm64 (funktioniert auf Mac Intel/Apple Silicon, Linux und Windows).


Schnellstart

Option A1: Einzelne Instanz (Empfohlen)

Fügen Sie gluetun-webui zu Ihrer bestehenden Compose-Datei zusammen mit Gluetun hinzu:

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

Option A2: Mehrere Instanzen

Überwachen Sie 2 oder mehr Gluetun-Instanzen mit separaten Dashboards:

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

Option B: Lokal bauen

git clone https://github.com/Sir-Scuzza/gluetun-webui.git
cd gluetun-webui
docker compose up -d --build
Führen Sie dann aus (eine der beiden Optionen):

docker compose up -d

Die Benutzeroberfläche ist verfügbar unter http://localhost:3000


Netzwerkkonfiguration

Sowohl Gluetun als auch gluetun-webui müssen sich im selben Docker-Netzwerk befinden, damit http://gluetun:8000 korrekt aufgelöst wird.

Gleiche Compose-Datei — fügen Sie einfach beide Dienste demselben Netzwerk hinzu (am gebräuchlichsten):

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

Separate Compose-Dateien — verweisen Sie auf das bestehende Netzwerk von Gluetun als extern. Finden Sie Ihren Netzwerknamen mit docker network ls:

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


Unterstützung für mehrere VPNs

Mehrere Instanzen

gluetun-webui unterstützt die Überwachung und Steuerung von mehreren Gluetun-Instanzen gleichzeitig. Jede Instanz wird als separates Dashboard in einem responsiven Raster angezeigt.

Konfiguration: Verwenden Sie durchnummerierte Umgebungsvariablen:

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)

Unterstützt: Bis zu 20 Instanzen (über GLUETUN_1_URL bis GLUETUN_20_URL) Responsiv: 1 volle Breite Dashboard → 2 halbe Breite → 3 Drittel-Breite → 4 Viertel-Breite → ab 5+ scrollbar

Rückwärtskompatibilität

Wenn keine nummerierten Variablen konfiguriert sind, wird auf den Legacy-Einzelinstanzmodus zurückgegriffen:

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

Authentifizierung pro Instanz

Jede Instanz kann eine unterschiedliche Authentifizierung haben:

# 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

---

Konfiguration

| Variable | Standardwert | Beschreibung | |---|---|---| | GLUETUN_1_ bis GLUETUN_20_ | _(leer)_ | Multi-Instanz-Konfiguration (bis zu 20 Instanzen) | | GLUETUN_{N}_URL | – | Gluetun HTTP-Steuerungsserver-URL für Instanz N | | GLUETUN_{N}_NAME | Instance {N} | Anzeigename für Instanz N | | GLUETUN_{N}_API_KEY | _(leer)_ | Bearer-Token für Instanz N (falls Authentifizierung aktiviert) | | GLUETUN_{N}_USER | _(leer)_ | Benutzername für HTTP-Basic-Authentifizierung (Instanz N) | | GLUETUN_{N}_PASSWORD | _(leer)_ | Passwort für HTTP-Basic-Authentifizierung (Instanz N) | | GLUETUN_CONTROL_URL | http://gluetun:8000 | Veraltet – nur Einzelinstanz (Fallback, falls keine GLUETUN_1_*-Variablen gesetzt sind) | | GLUETUN_API_KEY | _(leer)_ | Veraltet – Bearer-Token für Einzelinstanz | | GLUETUN_USER | _(leer)_ | Veraltet – Benutzername für HTTP-Basic-Authentifizierung | | GLUETUN_PASSWORD | _(leer)_ | Veraltet – Passwort für HTTP-Basic-Authentifizierung | | PORT | 3000 | Port, auf dem die Web-Oberfläche lauscht | | TRUST_PROXY | false | Setze auf true, wenn hinter einem Reverse Proxy (nginx, Traefik, etc.) betrieben |


Sicherheit

Reverse-Proxy-Konfiguration

Wenn Sie gluetun-webui hinter einem Reverse Proxy (nginx, Traefik, Caddy, etc.) betreiben, setzen Sie TRUST_PROXY=true in Ihren Umgebungsvariablen:

gluetun-webui:
  image: scuzza/gluetun-webui:latest
  environment:
    
  • GLUETUN_CONTROL_URL=http://gluetun:8000
  • TRUST_PROXY=true # Required for reverse proxies
Dies ermöglicht der App, X-Forwarded-For und verwandte Header korrekt zu parsen, um eine genaue Ratenbegrenzung und IP-Erkennung durchzuführen. Hinweis: Aktiviere dies nur, wenn du tatsächlich hinter einem Reverse Proxy bist, da Proxy-Header von deinem Reverse Proxy vertraut werden.

Reverse-Proxy-Authentifizierung

Die VPN-Start/Stopp-Steuerungen verfügen über keine integrierte Authentifizierung. Wenn du das UI außerhalb von localhost zugänglich machst, platziere es hinter einem Reverse Proxy mit HTTP Basic Auth.

Caddy (Caddyfile):

your.domain.com {
  basicauth {
    user $2a$14$
  }
  reverse_proxy localhost:3000
}
Erzeuge einen Hash mit: caddy hash-password

Nginx (nginx.conf):

location / {
  auth_basic "Restricted";
  auth_basic_user_file /etc/nginx/.htpasswd;
  proxy_pass http://localhost:3000;
}
Erstellen Sie eine Passwortdatei mit: htpasswd -c /etc/nginx/.htpasswd user

Traefik (Docker-Labels):

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$$"
Generiere einen Hash mit: htpasswd -nb benutzer passwort


Danksagungen

---

Lizenz

MIT

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