WireGuard UI

Get a friendly web interface to manage your WireGuard setup. Add users, manage client info, and distribute configs via QR code, file, email, or Telegram.

Add a user-friendly web interface to your WireGuard VPN server. This tool provides a straightforward way to manage your setup without needing to edit configuration files manually. It's designed for anyone who wants a visual method for controlling their WireGuard instance, from adding clients to viewing their status.

The interface offers a range of features to simplify VPN administration:

  • User Authentication: Secure your management panel with a username and password.
  • Client Management: Easily add, remove, and manage clients, including extra information like names and email addresses.
  • Flexible Config Distribution: Share client configuration files in multiple convenient ways, including as a downloadable file, a scannable QR code, or sent directly via email or Telegram.
  • Easy Deployment: Run the tool as a simple binary file or deploy it quickly using the provided Docker Compose examples.

It is highly configurable through environment variables, allowing you to set up default settings for the server and new clients, integrate with email services, and customize its behavior to fit your specific needs.

Directory Structure

wireguard-ui
db
wireguard
.env
docker-compose.yml

docker-compose.yml

services:
  wireguard:
    image: linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - ./wireguard:/config
      - /lib/modules:/lib/modules
    ports:
      - "51820:51820/udp"
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: always

  wireguard-ui:
    image: ngoduykhanh/wireguard-ui:latest
    container_name: wireguard-ui
    depends_on:
      - wireguard
    cap_add:
      - NET_ADMIN
    environment:
      - SESSION_SECRET=${SESSION_SECRET}
      - WGUI_USERNAME=${WGUI_USERNAME}
      - WGUI_PASSWORD=${WGUI_PASSWORD}
      - WGUI_MANAGE_START=true
      - WGUI_MANAGE_RESTART=true
    logging:
      driver: json-file
      options:
        max-size: 50m
    volumes:
      - ./db:/app/db
      - ./wireguard:/etc/wireguard
    ports:
      - "5000:5000"
    restart: always

.env

WGUI_USERNAME=admin
WGUI_PASSWORD=your_super_secret_password
SESSION_SECRET=your_random_session_secret_string
Categories:

Share:

Ad
Favicon

 

  
 

Similar to WireGuard UI

Favicon

 

  
  
Favicon

 

  
  
Favicon