wg-easy
Описание
The easiest way to run WireGuard VPN + Web-based Admin UI.
Языки
- JavaScript50,6%
- HTML28,9%
- CSS19,5%
- Dockerfile0,9%
- Остальные0,1%
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 Expiry (default off)
- Prometheus metrics support
Requirements
- A host with a kernel that supports WireGuard (all modern kernels).
- A host with Docker installed.
Versions
💡 For the stable version please read instructions on the production branch!
We provide more than 1 docker image tag, the following will help you decide which one suites the best for you.
| tag | Branch | Example | Description |
|---|---|---|---|
| | or | stable as possbile get bug fixes quickly when needed, deployed against . |
| | | same as latest, stick to a version tag. |
| | | mostly unstable gets frequent package and code updates, deployed against . |
| pull requests | | used for development, testing code from PRs before landing into . |
Installation
1. Install Docker
If you haven't installed Docker yet, install it by running:
And log in again.
2. Run WireGuard Easy
To automatically install & run wg-easy, simply run:
💡 Replace
with your WAN IP, or a Dynamic DNS hostname.<🚨YOUR_SERVER_IP>💡 Replace
with a bcrypt password hash to log in on the Web UI. See How_to_generate_an_bcrypt_hash.md for instructions on how to generate a hashed password.<🚨YOUR_ADMIN_PASSWORD_HASH>
The Web UI will now be available on .
The Prometheus metrics will now be available on . Grafana dashboard 21733
💡 Your configuration files will be saved in
~/.wg-easy
WireGuard Easy can be launched with Docker Compose as well - just download
, make necessary adjustments and
execute .
3. Sponsor
Are you enjoying this project? Buy Emile a beer! 🍻
Donation to core component: WireGuard
Options
These options can be configured by setting environment variables using in the command.
| Env | Default | Example | Description |
|---|---|---|---|
| | | TCP port for Web UI. |
| | | IP address web UI binds to. |
| - | | When set, requires a password when logging in to the Web UI. See How to generate an bcrypt hash.md for know how generate the hash. |
| - | | The public hostname of your VPN server. |
| | | Ethernet device the wireguard traffic should be forwarded through. |
| | | The public UDP port of your VPN server. WireGuard will listen on that (othwise default) inside the Docker container. |
| | | The UDP port used on Home Assistant Plugin |
| | | The MTU the clients will use. Server uses default WG MTU. |
| | | Value in seconds to keep the "connection" open. If this value is 0, then connections won't be kept alive. |
| | | Clients IP address range. |
| | | DNS server clients will use. If set to blank value, clients will not use any DNS. |
| | | Allowed IPs clients will use. |
| | - | See config.js for the default value. |
| | | See config.js for the default value. |
| | - | See config.js for the default value. |
| | | See config.js for the default value. |
| | | Enable expire time for clients |
| | | Web UI language (Supports: en, ua, ru, tr, no, pl, fr, de, ca, es, ko, vi, nl, is, pt, chs, cht, it, th, hi, ja, si). |
| | | Enable detailed RX / TX client stats in Web UI |
| | | UI_CHART_TYPE=0 # Charts disabled, UI_CHART_TYPE=1 # Line chart, UI_CHART_TYPE=2 # Area chart, UI_CHART_TYPE=3 # Bar chart |
| | | Enable display and generation of short one time download links (expire after 5 minutes) |
| | | The maximum age of Web UI sessions in minutes. means that the session will exist until the browser is closed. |
| | | Enable UI sort clients by name |
| | | Enable Prometheus metrics and |
| - | | If set, Basic Auth is required when requesting metrics. See How to generate an bcrypt hash.md for know how generate the hash. |
If you change
, make sure to also change the exposed port.WG_PORT
Updating
To update to the latest version, simply run:
And then run the command above again.
With Docker Compose WireGuard Easy can be updated with a single command:
(if an image tag is specified in the
Compose file and it is not , make sure that it is changed to the desired
one; by default it is omitted and
defaults to ).
The WireGuared 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.