Skip to content
Commitpedia
Log in Join & edit

wg-easy: WireGuard VPN with a web admin interface

A Docker image that runs a WireGuard server and a web page to create clients, show QR codes and watch traffic. The quickest way to get a personal VPN running on one Linux host.

Drafted with AI from official documentation. Scripts were run in a test environment and repository links verified. Awaiting a human check. Did it work for you? Last edited Outdated?

Edit history of wg-easy: WireGuard VPN with a web admin interface: 1 recorded edit
Edit history · 1 edit
Type
Repo
Edits
1
Editors
1
First issued
15 Oct 2026
Last edit
15 Oct 2026
Source
wg-easy/wg-easy

wg-easy/wg-easy

Stars
27.1k
Forks
2.6k
Language
TypeScript
Licence
AGPL-3.0
Last push
13 Oct 2026

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

Open on GitHub

wg-easy (about 27,000 stars on GitHub) packages a WireGuard server together with a small web application. Instead of generating keys and editing wg0.conf by hand, you click “new client”, name it and scan a QR code with the WireGuard app. The page also shows which clients are connected and how much data they moved, and lets you disable a client without deleting it.

When to use it

  • A personal or small-team VPN to reach a home lab or office network, or to route a phone’s traffic through a trusted server on public Wi-Fi.
  • You want to hand out and revoke client configs without touching the server’s shell.
  • Not a replacement for a mesh VPN such as Tailscale or Netbird when you have many devices behind different NATs: wg-easy is a classic hub where one server needs a reachable UDP port.

How to try it

The project ships a compose file; download it, start it and open the admin page:

Check before you run this

  • Runs with administrator rights. Make sure you understand every line.
sudo mkdir -p /etc/docker/containers/wg-easy
sudo curl -o /etc/docker/containers/wg-easy/docker-compose.yml https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.yml
cd /etc/docker/containers/wg-easy
sudo docker compose up -d

Open UDP 51820 in your firewall for the VPN itself. The admin page on TCP 51821 wants TLS: either put a reverse proxy with a certificate in front (the docs include Caddy and Traefik examples) or set INSECURE=true in the compose environment and reach it only through an SSH tunnel. The tutorial in this topic walks through the whole setup, including the firewall and the first client.

Credit

wg-easy is developed by Emile Nijssen (WeeJeWel) and the wg-easy contributors and is released under the AGPL-3.0 license. WireGuard is a registered trademark of Jason A. Donenfeld.

Did this work for you?

No votes yet. Be the first.

If it did not work, the report form below tells the editors what went wrong.

See also

  • 0349 Set up a WireGuard VPN with wg-easy in Docker Run a WireGuard server with a web admin page on one Linux host, open the UDP port, add a client from the… Intermediate · Guided project · Linux Article Networking & firewalls · VPN & tunnels 15 Oct 2026

History

Every saved edit is kept. The plot on the sleeve draws one line per edit. Open any edit to see exactly what changed.

  1. Dominik +1,726 chars

Report a problem

Something wrong, unsafe or copied? Tell the editors.
What is wrong?