The easiest way to run WireGuard VPN + Web-based Admin UI.
Go to file
Vojta Drbohlav 722bd18999 normalize config file name for download to make it work on Windows
Windows client name is derived from config file name when importing to WireGuard and it only accepts names satisfying /^[a-zA-Z0-9_=+.-]{1,32}$/.
For more information look at af60ab2299/conf/name.go (L24).
2021-10-11 22:02:08 +02:00
.github/workflows dev env 2021-07-18 16:48:09 +02:00
assets wip 2021-05-23 16:54:48 +02:00
docs Create changelog.json 2021-07-13 21:11:45 +02:00
src normalize config file name for download to make it work on Windows 2021-10-11 22:02:08 +02:00
.gitignore allow edit of name + address 2021-07-13 20:51:23 +02:00
docker-compose.dev.yml dev env 2021-07-18 16:48:09 +02:00
docker-compose.yml add WG_ALLOWED_IPS; https://github.com/WeeJeWel/wg-easy/issues/19 2021-06-15 17:58:58 +02:00
Dockerfile Add dumb-init to avoid zombie processes. 2021-09-15 21:35:37 -04:00
LICENSE.md add license 2021-07-13 21:45:52 +02:00
package.json wip 2021-07-13 21:39:45 +02:00
README.md Update README.md 2021-09-29 12:56:09 +02:00

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!

Features

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

Requirements

  • A host with a kernel that supports WireGuard (all modern kernels).
  • A host with Docker installed.

Installation

1. Install Docker

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

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

And log in again.

You might need to install docker-compose separately. For example, on a Raspberry Pi:

sudo apt-get install docker-compose

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 http://0.0.0.0:51821. You can create new clients there.

Options

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_PERSISTENT_KEEPALIVE 0 25 Value in seconds to keep the "connection" open
WG_DEFAULT_ADDRESS 10.8.0.x 10.6.0.x Clients IP address range
WG_DEFAULT_DNS 1.1.1.1 8.8.8.8, 8.8.4.4 DNS server clients will use
WG_ALLOWED_IPS 0.0.0.0/0, ::/0 192.168.15.0/24, 10.0.1.0/24 Allowed IPs clients will use

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

Updating

To update to the latest version, run:

docker-compose down
docker-compose pull
docker-compose up --detach --remove-orphans
docker image prune