|
4 months ago | |
---|---|---|
.github | 4 months ago | |
.vscode | 4 months ago | |
assets | 9 months ago | |
docs | 4 months ago | |
src | 4 months ago | |
.dockerignore | 4 months ago | |
.editorconfig | 8 months ago | |
.gitignore | 4 months ago | |
CHANGELOG.md | 4 months ago | |
Dockerfile | 4 months ago | |
Dockerfile.dev | 4 months ago | |
LICENSE | 4 months ago | |
README.md | 4 months ago | |
contributing.md | 1 year ago | |
docker-compose.dev.yml | 4 months ago | |
docker-compose.yml | 4 months ago | |
package.json | 4 months ago | |
pnpm-lock.yaml | 4 months ago |
README.md
WireGuard Easy
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.
- Tx/Rx charts for each connected client.
- Gravatar support.
- Automatic Light / Dark Mode
- Multilanguage Support
- Traffic Stats (default off)
- One Time Links (default off)
- Client Expiration (default off)
- Prometheus metrics support (default off)
Requirements
- A host with a kernel that supports WireGuard (all modern kernels).
- A host with Docker installed.
Versions
💡 We follow semantic versioning (semver)
We offer multiple Docker image tags to suit your needs. The table below is in a particular order, with the first tag being the most recommended:
tag | Branch | Example | Description |
---|---|---|---|
15 |
latest minor for that major tag | ghcr.io/wg-easy/wg-easy:15 |
latest features for specific major versions, no breaking changes |
latest |
latest tag | ghcr.io/wg-easy/wg-easy:latest or ghcr.io/wg-easy/wg-easy |
stable as possible get bug fixes quickly when needed, see Releases for more information. |
15.0 |
latest patch for that minor tag | ghcr.io/wg-easy/wg-easy:15.0 |
latest patches for specific minor version |
15.0.0 |
specific tag | ghcr.io/wg-easy/wg-easy:15.0.0 |
specific release, don't use this as this will not get updated |
nightly |
master |
ghcr.io/wg-easy/wg-easy:nightly |
mostly unstable gets frequent package and code updates, deployed against master . |
development |
pull requests | ghcr.io/wg-easy/wg-easy:development |
used for development, testing code from PRs before landing into master . |
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.
2. Run WireGuard Easy
To setup the IPv6 Network, simply run once:
docker network create \
-d bridge --ipv6 \
-d default \
--subnet 10.42.42.0/24 \
--subnet fdcc:ad94:bacf:61a3::/64 wg \
To automatically install & run wg-easy, simply run:
docker run -d \
--net wg \
-e PORT=51821 \
--name wg-easy \
--ip6 fdcc:ad94:bacf:61a3::2a \
--ip 10.42.42.42 \
-v ~/.wg-easy:/etc/wireguard \
-v /lib/modules:/lib/modules:ro \
-p 51820:51820/udp \
-p 51821:51821/tcp \
--cap-add NET_ADMIN \
--cap-add SYS_MODULE \
--sysctl net.ipv4.ip_forward=1 \
--sysctl net.ipv4.conf.all.src_valid_mark=1 \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--sysctl net.ipv6.conf.all.forwarding=1 \
--sysctl net.ipv6.conf.default.forwarding=1 \
--restart unless-stopped \
ghcr.io/wg-easy/wg-easy
The Web UI will now be available on http://0.0.0.0:51821
.
The Prometheus metrics will now be available on http://0.0.0.0:51821/api/metrics
. Grafana dashboard 21733
💡 Your configuration files will be saved in
~/.wg-easy
WireGuard Easy can be launched with Docker Compose as well - just download
docker-compose.yml
, make necessary adjustments and
execute docker compose up -d
.
3. Sponsor
Are you enjoying this project? Buy Emile a beer! 🍻
Options
These options can be configured by setting environment variables using -e KEY="VALUE"
in the docker run
command.
Env | Default | Example | Description |
---|---|---|---|
PORT |
51821 |
6789 |
TCP port for Web UI. |
HOST |
0.0.0.0 |
localhost |
IP address web UI binds to. |
Updating
To update to the latest version, simply run:
docker stop wg-easy
docker rm wg-easy
docker pull ghcr.io/wg-easy/wg-easy
And then run the docker run -d \ ...
command above again.
With Docker Compose WireGuard Easy can be updated with a single command:
docker compose up --detach --pull always
(if an image tag is specified in the
Compose file and it is not latest
, make sure that it is changed to the desired
one; by default it is omitted and
defaults to latest
).
The WireGuard Easy container will be automatically recreated if a newer image
was pulled.
Common Use Cases
For less common or specific edge-case scenarios, please refer to the detailed information provided in the Wiki.
License
This project is licensed under the GPL-3.0-only License - see the LICENSE file for details
This project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Jason A. Donenfeld, ZX2C4 or Edge Security
"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld