It made sense at the beginning, but now the upstream project has native Docker support and has integrated advanced features like AmneziaWG that surpass this implementation.
Big thanks WGDashboard Team for their solution and efforts.
| Latest | Release |
|---|---|
- Reprot is inside the build job.
- Regular checks here Docker Image Vulnerability Scan
This is a docker builder for the project WGDashboard
| Var name | Example of usage | Description |
|---|---|---|
| TZ | TZ=Europe/Dublin | Time zone of server |
| APP_PREFIX | APP_PREFIX=/wgdashboard | The prefix of the web base URL is usually used when accessing a host with a custom path or using reverse proxy based on Nginx or Traefik. Additionally, need to add /static path as well. URL: http(s)://domain_name/app_prefix |
| GLOBAL_DNS | GLOBAL_DNS=8.8.8.8 | IP of DNS server used in config files |
| ENABLE | ENABLE=wg0,wg1,wg2 | The interface names that will start automatically after docker starts. This is duplication of WGDashboard functionality - now it's available as additional setting in the WGDashboard app. |
| PUBLIC_IP | PUBLIC_IP=192.168.88.88 | The public IP address of server which clients use to connect |
Tip
Wireguard can run scripts for each interface base on next events: PreUp, PreDown, PostUp, PostDown Now it can be easily set up in web app
Tip
- wg0 rules [ ./scripts/wg0_*.sh ] - trafik is allowded beetween peers and outside the docker
- wg1 rules [ ./scripts/wg1_*.sh ] - trafik is blocked beetween peers but allowed outside the docker
- wg2 rules [ ./scripts/wg2_*.sh ] - trafik is allowded beetween peers but blocked outside the docker
Tip
- shuricksumy/wgdashboard:debian-latest
- shuricksumy/wgdashboard:debian-[release version]
docker-compose.yaml
networks:
default:
driver: bridge
npm_proxy:
name: npm_proxy
driver: bridge
ipam:
config:
- subnet: 172.50.0.0/24
services:
wireguard-dashboard:
image: shuricksumy/wgdashboard:latest
# image: shuricksumy/wgdashboard:debian-latest
# build:
# context: .
# dockerfile: Dockerfile
restart: unless-stopped
container_name: wire-dash
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.forwarding=1
- net.ipv4.conf.all.src_valid_mark=1
environment:
# - APP_PREFIX=/wgdashboard
- TZ=Europe/Dublin
- GLOBAL_DNS=8.8.8.8
# - ENABLE=wg0,wg1,wg2
- PUBLIC_IP=192.168.88.88
networks:
npm_proxy:
ipv4_address: 172.50.0.10
ports:
- 10086:10086/tcp
- 51820-51830:51820-51830/udp
volumes:
volumes:
- ./scripts:/scripts
- ./conf:/etc/wireguard
- ./app_conf:/opt/wireguarddashboard/app/src/app_conf
- ./db:/opt/wireguarddashboard/app/src/db
- ./log:/opt/wireguarddashboard/app/src/log
cap_add:
- NET_ADMIN
# labels:
# - "traefik.enable=true"
# - "traefik.docker.network=npm_proxy"
# - "traefik.http.routers.wireguard-dashboard.rule=Host(`your_public_host`) && PathPrefix(`/wgdashboard`, `/static`)"
# - "traefik.http.routers.wireguard-dashboard.entrypoints=websecure"
# - "traefik.http.routers.wireguard-dashboard.tls=true"
# - "traefik.http.services.wireguard-dashboard.loadbalancer.server.port=10086"