Skip to content

Wireguard VPN With GUI

docker-compose.yml

YAML
---
version: "3.7"
services:
  wireguard:
    image: lscr.io/linuxserver/wireguard:latest
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
#      - SERVERURL=wireguard.kafana.dev #optional
      - SERVERPORT=51820 #optional
      - PEERS=1 #optional
      - PEERDNS=auto #optional
      - INTERNAL_SUBNET=10.13.13.0 #optional
      - ALLOWEDIPS=0.0.0.0/0 #optional
      - LOG_CONFS=true #optional
    volumes:
      - ./config:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
      - 0.0.0.0:5002:5000
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

  wg:
#    build: .
    image: ngoduykhanh/wireguard-ui:latest
    container_name: wgui
    cap_add:
      - NET_ADMIN
    network_mode: service:wireguard
    environment:
      - SENDGRID_API_KEY
      - EMAIL_FROM_ADDRESS
      - EMAIL_FROM_NAME
      - SESSION_SECRET
      - SMTP_HOSTNAME=postal.kafana.dev
      - SMTP_PORT=2525
      - SMTP_USERNAME=kafana
      - SMTP_PASSWORD=some-password
      - SMTP_AUTH_TYPE=LOGIN # PLAIN, LOGIN, NONE
      - [email protected]
      - [email protected]
      - WGUI_USERNAME=username
      - WGUI_PASSWORD=password
      - WG_CONF_TEMPLATE
    logging:
      driver: json-file
      options:
        max-size: 50m
    volumes:
      - ./config:/app/db
      - ./config:/etc/wireguard

Links:

EZ Wireguard | all in one

YAML
version: "3.8"
volumes:
  etc_wireguard:

services:
  wg-easy:
    environment:
      # Change Language:
      # (Supports: en, ua, ru, tr, no, pl, fr, de, ca, es, ko, vi, nl, is, pt, chs, cht, it, th)
      - LANG=en
      # ⚠️ Required:
      # Change this to your host's public address
      - WG_HOST=Public_IP_or_DOMAIN
      # Optional:
      - PASSWORD=urpassword
      - WG_PORT=51820
#      - WG_DEFAULT_ADDRESS=
      - WG_DEFAULT_DNS=9.9.9.9
      # - WG_MTU=1420
      # - WG_ALLOWED_IPS=192.168.15.0/24, 10.0.1.0/24
      - WG_PERSISTENT_KEEPALIVE=25
      # - WG_PRE_UP=echo "Pre Up" > /etc/wireguard/pre-up.txt
      # - WG_POST_UP=echo "Post Up" > /etc/wireguard/post-up.txt
      # - WG_PRE_DOWN=echo "Pre Down" > /etc/wireguard/pre-down.txt
      # - WG_POST_DOWN=echo "Post Down" > /etc/wireguard/post-down.txt
      - UI_TRAFFIC_STATS=true
    image: ghcr.io/wg-easy/wg-easy
    container_name: wg-easy
    volumes:
      - ./etc_wireguard:/etc/wireguard
    ports:
      - "51820:51820/udp"
      - "51821:51821/tcp"
    restart: always
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1