Einleitung
In diesem Tutorial lernst du wie du WireGuard UI auf einem Linux Server mit Docker Compose installieren kannst.
WireGuard UI ist ein "web user interface to manage your WireGuard setup".
Voraussetzungen
- Linux Cloud Server (vorzugsweise Ubuntu 22.04 / 24.04)
 - Docker und Docker Compose
 - Öffentliche IPv4 Adresse
 
Um sicher zu gehen das Docker Compose ordnungsgemäß installiert ist, nutze:
docker compose versionSchritt 1 - Aktualisiere deinen Server
sudo apt update && sudo apt upgradeSchritt 2 - Vorbereitung der .YML
Die .yml Datei enthält alle erforderlichen Informationen, um WireGuard UIs Docker Container zu erstellen.
sudo mkdir /opt/wg-ui
sudo nano /opt/wg-ui/docker-compose.ymlFüge folgende Konfiguration ein:
services:
  wireguard:
    image: linuxserver/wireguard:v1.0.20210914-ls7
    container_name: wireguard
    cap_add:
      - NET_ADMIN
    volumes:
      - ./config:/config
    ports:
      - "5000:5000"
      - "51820:51820/udp"
    restart: unless-stopped
  wireguard-ui:
    image: ngoduykhanh/wireguard-ui:latest
    container_name: wireguard-ui
    depends_on:
      - wireguard
    cap_add:
      - NET_ADMIN
    # use the network of the 'wireguard' service. this enables to show active clients in the status page
    network_mode: service:wireguard
    environment:
      - SENDGRID_API_KEY
      - EMAIL_FROM_ADDRESS
      - EMAIL_FROM_NAME
      - SESSION_SECRET
      - WGUI_USERNAME=admin
      - WGUI_PASSWORD=admin
      - WG_CONF_TEMPLATE
      - WGUI_MANAGE_START=true
      - WGUI_MANAGE_RESTART=true
    logging:
      driver: json-file
      options:
        max-size: 50m
    volumes:
      - ./db:/app/db
      - ./config:/etc/wireguard
    restart: unless-stoppedErsetze das Standard-Kennwort WGUI_PASSWORD mit einem sicheren.
Schritt 3 - Starten der Container und Zugriff auf das Webinterface
Um den Container zu starten, nutze:
sudo docker compose -f /opt/wg-ui/docker-compose.yml up -dDas Ergebnis sollte so aussehen:
[+] Running 3/3
 :heavy_check_mark: Network wg-ui_default   Created          0.1s
 :heavy_check_mark: Container wireguard     Started          0.2s
 :heavy_check_mark: Container wireguard-ui  Started          0.3sÖffne http://<203.0.113.1>:5000 mit deinem Browser.
Ersetze <203.0.113.1> mit der IP Adresse deines Servers.
Ich empfehle ab jetzt die Verwendung eines Reverse Proxys (siehe NGINX Proxy Manager).
Wenn du erfolgreich warst, solltest du jetzt die Login Seite von WireGuard UI sehen. Die Standardanmeldedaten sind:
- U: admin
 - PW: admin
 
Ändere dieses Kennwort sofort nach der ersten Anmeldung!
Schritt 4 - Routing-Konfiguration
Füge folgende Skripte unter "WireGuard Server" ein und wähle "Apply Config" aus.
Post Up Script
iptables -A FORWARD -i %1 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADEPost Down Script
iptables -D FORWARD -i %1 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth+ -j MASQUERADESchritt 5 - Erstellen einer Client-Konfiguration
Erstelle jetzt eine Client Konfiguration mit einem beschreibenden Namen:
Schritt 6 - Hinzufügen von Clients
Schritt 6.1 - iOS / Android
Lade die WireGuard App aus dem App Store / Play Store.
Klicke in der WireGuard UI auf "QR Code" und scanne ihn mit dem iOS / Android Client wie in diesem Tutorial erklärt.
Schritt 6.2 - Windows / Mac
Installiere den Windows WireGuard Client / Mac WireGuard Client.
Klicke in der WireGuard UI auf "Download" und importiere die .conf-Datei auf den Windows / Mac Client wie in diesem Tutorial erklärt.
Schritt 6.3 - Linux
Installiere WireGuard auf dem Linux Client:
sudo apt update && sudo apt install wireguardKlicke in der WireGuard UI auf "Download" und lege die Datei auf dem Linux Client in:
/etc/wireguard/wg0.confUnd starte (oder stoppe) WireGuard:
- 
Vorübergehend
wg-quick up wg0 wg-quick down wg0 - 
Dauerhaft
sudo systemctl start wg-quick@wg0 && sudo systemctl enable wg-quick@wg0 sudo systemctl stop wg-quick@wg0 && sudo systemctl disable wg-quick@wg0 
Schritt 6.4 - Prüfen der Verbindung
Um zu prüfen ob alles wie gewünscht funktioniert, rufe eine Seite wie ip.hetzner.com auf und vergleiche die IP mit der deines Servers.
Ergebnis
Glückwunsch! Du hast nun erfolgreich eine WireGuard Instanz installiert.