services: wg-easy: image: ghcr.io/wg-easy/wg-easy:15 container_name: wg-easy hostname: wireguard-easy restart: unless-stopped cap_add: - NET_ADMIN - SYS_MODULE environment: - INIT_ENABLED=true - INIT_USERNAME=admin # adjust - INIT_PASSWORD=VerySecureInitPassword123 # adjust - INIT_HOST=vpn.example.com # your hostname or ip address - INIT_DNS=1.1.1.1,8.8.8.8 # add your local dns like pihole ports: - 51820:51820/udp # wireguard vpn - 51821:51821/tcp # admin web ui expose: - 51820/udp # wireguard vpn - 51821/tcp # admin web ui volumes: - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/wg-easy:/etc/wireguard #networks: # - proxy #labels: # - traefik.enable=true # - traefik.docker.network=proxy # - traefik.http.routers.wireguard.rule=Host(`vpn.example.com`) # - traefik.http.services.wireguard.loadbalancer.server.port=51821 # # Part for local lan services only # - traefik.http.routers.wireguard.middlewares=local-ipwhitelist@file #networks: # proxy: # external: true