Skip to content
This repository was archived by the owner on Apr 5, 2026. It is now read-only.

Repository files navigation

Docker-WGDashboard


Project Update:

I am stopping support for this Docker builder.

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.

Rather than duplicating their efforts, I am choosing to archive this repository.

Big thanks WGDashboard Team for their solution and efforts.


Latest Release
Build and Deploy Docker Images Build and Deploy Docker Images

Secruty report

This is a docker builder for the project WGDashboard

Env vars

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

SCRIPTS

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

script_settings

Tip

Example of scriptd (IPTABLES rules)

  • 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

To use iptables-legacy just select image with the tag prefix debian

  • 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"

About

No description, website, or topics provided.

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages