WireGuard docker compose
Docker Compose File (docker-compose.yml)
version: '3.8' services: wg-easy: image: ghcr.io/wg-easy/wg-easy # The Docker image to use. container_name: wg-easy # Name of the container. environment: # Environment variables to configure the instance. - LANG=en # Language settings. - WG_HOST=<Your IP/Domain> # Public IP or domain name where WG-Easy is accessible. - PASSWORD_HASH='<🚨YOUR_ADMIN_PASSWORD_HASH>' # Bcrypt hash for Web UI login. - PORT=51821 # Port for the web interface. - WG_PORT=51820 # WireGuard port for VPN traffic. volumes: - ./wg-easy/:/etc/wireguard # Volume mapping for WireGuard configuration files. ports: - "51820:51820/udp" # UDP port used by WireGuard. - "51821:51821/tcp" # TCP port for accessing the web interface. cap_add: # Capabilities required for managing networking features. - NET_ADMIN - SYS_MODULE sysctls: # Kernel parameters that need to be set for WireGuard. - net.ipv4.conf.all.src_valid_mark=1 - net.ipv4.ip_forward=1 restart: unless-stopped # Ensures the container restarts automatically unless manually stopped.
or
networks:
proxy-network: external: true
services: wg-easy: environment: - WG_HOST=wireguard.domain.de - PASSWORD_HASH=$$2a$$12$$DfJ2phN2VE4Z1gyFNsGCluifeQUQzz.m4tF4hcHABqYq7yKXQ5cPW #changeme # - WG_PORT=51820 # - WG_DEFAULT_ADDRESS=10.8.0.x # - WG_DEFAULT_DNS=1.1.1.1 # - WG_MTU=1420 # - WG_ALLOWED_IPS=192.168.0.0/16, 10.0.0.0/8 image: weejewel/wg-easy container_name: wg-easy volumes: - ./data:/etc/wireguard ports: - "51820:51820/udp" # - "51821:51821/tcp" restart: unless-stopped cap_add: - NET_ADMIN - SYS_MODULE sysctls: - net.ipv4.ip_forward=1 - net.ipv4.conf.all.src_valid_mark=1 networks: - proxy-network