|
7 months ago | |
---|---|---|
.github | 7 months ago | |
.vscode | 7 months ago | |
assets | 9 months ago | |
docs | 7 months ago | |
src | 5 months ago | |
.dockerignore | 7 months ago | |
.editorconfig | 8 months ago | |
.gitignore | 7 months ago | |
CHANGELOG.md | 5 months ago | |
Dockerfile | 7 months ago | |
Dockerfile.dev | 7 months ago | |
LICENSE | 1 year ago | |
README.md | 5 months ago | |
contributing.md | 1 year ago | |
docker-compose.dev.yml | 7 months ago | |
docker-compose.yml | 7 months ago | |
package.json | 7 months ago | |
pnpm-lock.yaml | 7 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 provide more then 1 docker image to get, this will help you decide which one is best for you.
For stable versions instead of nightly or development please read README from the production branch!
tag | Branch | Example | Description |
---|---|---|---|
latest |
production | ghcr.io/wg-easy/wg-easy:latest or ghcr.io/wg-easy/wg-easy |
stable as possible get bug fixes quickly when needed, deployed against production . |
13 |
production | ghcr.io/wg-easy/wg-easy:13 |
same as latest, stick to a version tag. |
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.