Skip to main content

Wireguard + Wireguard UI + CONFIG for PIHOLE

This is docker compose stack for wireguard + Wireguard UI Setup + Configuration for PI HOLE DNS IP

version: "3"
services:
  wireguard:
    image: linuxserver/wireguard:v1.0.20210914-ls7 #lscr.io/linuxserver/wireguard:latest
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE #optional
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Ho_Chi_Minh
      - SERVERURL=WIREGUARD.DOMAIN.COM #optional
      - SERVERPORT=51820 #optional
      - PEERS=1 #optional
      - PEERDNS=auto #optional
      #- INTERNAL_SUBNET=10.13.13.0 #optional
      - ALLOWEDIPS=0.0.0.0/0 #optional
      - PERSISTENTKEEPALIVE_PEERS= #optional
      - LOG_CONFS=true #optional
    volumes:
      - /home/ZZZ/docker/wireguard/config:/config
      - /home/ZZZ/docker/wireguard/lib/modules:/lib/modules #optional
    ports:
      - "1987:5000"
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped
  wireguard-ui:
    image: ngoduykhanh/wireguard-ui:latest
    container_name: wireguard-ui
    depends_on:
      - wireguard
    cap_add:
      - NET_ADMIN
    network_mode: service:wireguard
    environment:
      - PIHOLE_SERVER=PIHOLE_DNS_IP
      - PIHOLE_PASSWORD=PWD_PI_HOLE
      - WIREGUARD_DNS=PI_HOLE_DNS_IP
      - SENDGRID_API_KEY
      - EMAIL_FROM_ADDRESS
      - EMAIL_FROM_NAME
      - SESSION_SECRET
      - WGUI_USERNAME=USER
      - WGUI_PASSWORD=PASS
      - WG_CONF_TEMPLATE
      - WGUI_MANAGE_START=true
      - WGUI_MANAGE_RESTART=true
    logging:
      driver: json-file
      options:
        max-size: 50m
    volumes:
      - /home/ZZZ/docker/wireguard-ui/db:/app/db
      - /home/ZZZ/docker/wireguard/config:/etc/wireguard