June 11, 2021

296 words 2 mins read



The easiest way to run WireGuard VPN + Web-based Admin UI.

repo name WeeJeWel/wg-easy
repo link https://github.com/WeeJeWel/wg-easy
language HTML
size (curr.) 1046 kB
stars (curr.) 1105
created 2021-05-22

WireGuard Easy

Build & Publish Docker Image to Docker Hub Lint Docker Docker Sponsor

You have found the easiest way to install & manage WireGuard on any Linux host!


  • All-in-one: WireGuard + Web UI.
  • Easy installation, simple to use.
  • List, create, delete, enable & disable clients.
  • Show a client’s QR code.
  • Download a client’s configuration file.
  • Statistics for which clients are connected.
  • Gravatar support.


1. Install Docker

If you haven’t installed Docker yet, install it by running:

$ curl -sSL https://get.docker.com | sh
$ sudo sh get-docker.sh
$ sudo usermod -aG docker $(whoami)
$ bash

2. Configure WireGuard

Run these commands to prepare and configure WireGuard.

$ mkdir ~/.wg-easy
$ cd ~/.wg-easy
$ wget https://raw.githubusercontent.com/WeeJeWel/wg-easy/master/docker-compose.yml
$ vim docker-compose.yml

Change WG_HOST=raspberrypi.local to your server’s public address, e.g. WG_HOST=vpn.mydomain.com.

Optionally, set a Web UI password by uncommenting PASSWORD=foobar123 and change the password.

By default, any WireGuard client will have access to the Web UI, unless you set a password.

3. Run WireGuard

Finally, run WireGuard. It will automatically start after a reboot.

$ docker-compose up --detach

The Web UI will be available on You can create new clients there.


These options can be configured in docker-compose.yml under environment.

Env Default Example Description
PASSWORD - foobar123 When set, requires a password when logging in to the Web UI.
WG_HOST - vpn.myserver.com The public hostname of your VPN server
WG_PORT 51820 51820 The public UDP port of your VPN server
WG_DEFAULT_ADDRESS 10.8.0.x 10.6.0.x Clients IP address range
WG_DEFAULT_DNS, DNS server clients will use
WG_ALLOWED_IPS, ::/0, Allowed IPs clients will use

If you change WG_PORT, make sure to also change the exposed port.

comments powered by Disqus