services: wireguard: image:linuxserver/wireguard:latest container_name:wireguard environment: # - PUID=1000 # - PGID=1000 -TZ=Asia/Shangai -SERVERURL=vpn.example.com#optional -SERVERPORT=51820#optional # - PEERS=1 #optional -PEERDNS=auto#optional # - INTERNAL_SUBNET=10.13.13.0 #optional -ALLOWEDIPS=192.168.6.0/24#optional -PERSISTENTKEEPALIVE_PEERS=25#optional -LOG_CONFS=true#optional cap_add: -NET_ADMIN -SYS_MODULE volumes: -./config:/config sysctls: -net.ipv4.conf.all.src_valid_mark=1 ports: # port for wireguard-ui. this must be set here as the `wireguard-ui` container joins the network of this container and hasn't its own network over which it could publish the ports -"5000:5000" # port of the wireguard server -"51820:51820/udp"
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_KEYc -EMAIL_FROM_ADDRESS -EMAIL_FROM_NAME -SESSION_SECRET -WGUI_USERNAME=admin -WGUI_PASSWORD=password -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
需要修改的参数 SERVERURL,WGUI_USERNAME,WGUI_PASSWORD
启动并配置
通过 docker compose up -d 启动,然后通过 http://localhost:5000 访问 Web UI 界面。