LibrePortal
Sponsor
Install

wg-easy

Standalone VPN Server

wg-easy runs a WireGuard VPN server with a simple web page for adding devices and showing their QR codes. It's separate from LibrePortal's own VPN, for when you want a VPN for other reasons.

On this page
  1. At a glance
  2. What it's good for
  3. Signing in
  4. Adding a device
  5. Making it reachable from outside
  6. Good to know
  7. Addresses and ports
  8. Settings
  9. In its config file
  10. Tools
  11. Works with
  12. Privacy and security
  13. What leaves this server
  14. What LibrePortal turns off
  15. Sources
  16. Under the hood

Good to know before you install

This is a separate VPN from LibrePortal's built-in private network and is not used for LibrePortal's own access control. Its admin panel accepts logins over plain HTTP, so reach it only over your LAN or a VPN, or behind HTTPS.

At a glance#

What it is
Standalone VPN Server Networking
Where it opens
Admin Panel On its own port at http://your-server:port, or wireguard.your-domain once you have a domain
Updates
When you choose New versions wait for you to press Update
Backups
Included Part of the daily backup when that's switched on
Copies
One per server

What it's good for#

Most people don't need this app. LibrePortal already has a built-in VPN for reaching your apps from outside, and that's the one LibrePortal trusts: its devices count as trusted places, and it decides which apps each device can open. Devices on wg-easy don't count as trusted places, however they connect.

wg-easy is for the other jobs a VPN does. Giving the whole family a way to route their phone's traffic through home when they're on cafรฉ Wi-Fi, for instance, or giving friends access to your network without giving them anything in LibrePortal. It's a plain WireGuard server with a friendly admin page, and you manage its devices there rather than in LibrePortal.

That's also why it only appears in the App Center when the WebUI is in Advanced mode.

Signing in#

Open it with the Admin Panel button. The username is admin, and the password is in the Login Details shown when the install finishes; press Welcome on the app's page to see it again. LibrePortal hands both to wg-easy for its very first start, so its setup wizard never appears and there's no moment when someone else could claim it.

The admin panel starts private, so only your trusted places and LibrePortal VPN devices can open it. Leave it that way: whoever gets into it can add themselves a device.

To change the password, use Reset Admin Password on the Tools tab, which keeps LibrePortal's copy in step. Leave the box empty to have a strong one made for you.

Adding a device#

  1. Install the WireGuard app on the phone or computer, from its app store or wireguard.com.
  2. Add a client in wg-easy. Give it a name you'll recognise, like anna-phone.
  3. Give the device its config. On a phone, add a tunnel in the WireGuard app and scan the QR code wg-easy shows. On a computer, download the config file from wg-easy and import it into the WireGuard app.
  4. Turn the tunnel on.

Android: 15 characters at most

The WireGuard app on Android refuses a tunnel whose name is longer than 15 characters, and when you import a file it takes the name from the file name. Keep client names short (anna-phone, not annas-new-phone-2026), or rename the tunnel as you import it.

List VPN Clients on the Tools tab lists every device wg-easy knows, with whether it's enabled, which is handy for checking without opening the admin panel. To switch a device off or remove it, use wg-easy's own page.

Making it reachable from outside#

Devices connect to the VPN on UDP port 51820, which is public. LibrePortal writes your server's address into each device's config when wg-easy is first installed: its public internet address when it knows one, or its home network address if not.

  • On a VPS, that just works.
  • At home behind a router, forward UDP port 51820 on your router to your server. If your home internet address changes now and then, a dynamic DNS name is better than the bare address: change the Host in wg-easy's admin panel, then give each device a fresh config.

It won't clash with LibrePortal's VPN

LibrePortal's built-in VPN uses a different port (51830) and a different address range (10.87.0.x), and wg-easy uses 51820 and 10.8.0.x. The install stops if the two would share a port, warns you if they'd share an address range, and also refuses to go ahead if there's already a WireGuard server installed directly on the machine.

Good to know#

  • wg-easy owns its settings after the first start. The address, port and address range are only read from LibrePortal the first time. After that, change them in wg-easy's admin panel; changing LibrePortal's copy does nothing.
  • Updates wait for you. wg-easy is pinned to an exact version (15.4.0), because a VPN you rely on to get home isn't something to change while you're away. Update only brings rebuilds of that version; the Updates tab may offer a newer one, but Upgrade can't move wg-easy to it yet.
  • Backups include it, with every device's keys. Treat the backup as you would the VPN itself.
  • Uninstalling removes the network forwarding setting the install switched on for it.
  • Metrics. With Prometheus and Grafana installed, Export metrics to Grafana in its settings adds a Grafana dashboard of connected devices and traffic.

Addresses and ports#

wg-easy has 3 ports. LibrePortal picks a free port number for each when you install, so yours will differ from anyone else's. The Config tab's Network section shows them, and the app's Open button uses the right one. "Anyone" means it's reachable from wherever your server is reachable; you can make it private later.

What it isWho can reach itWith a domain
Admin Panel Trusted places only wireguard.your-domain
VPN Server (devices connect here) UDP Anyone Port only
Metrics Exporter (shares wireguard-service netns) TCP Off until you turn it on Port only

Settings#

In its config file#

wg-easy's own settings aren't on the Config tab yet. They live in the app's config file, described here so you know they exist. How to change them.

SettingWhat it doesStarts as
Name
CFG_WIREGUARD_DISPLAY_NAME
What this app is called on your dashboards. Leave empty to use its usual name Empty
Show on the LibrePortal Dashboard
CFG_WIREGUARD_SHOW_ON_DASHBOARD
Whether this app gets a shortcut on the front page of the LibrePortal WebUI, separate from any Dashy dashboard
Choices: true, false
false

Tools#

wg-easy's Tools tab has 2 buttons for jobs you'd otherwise need a terminal for. Each one runs as a task, so you can watch it on the Tasks page and read what it did. More about Tools.

Reset Admin PasswordTested on 15.4.0

Set a new password for the wg-easy admin account. Leave blank to generate one.

Asks for: New password (optional)
List VPN ClientsTested on 15.4.0

Show every device (client) wg-easy knows, with its public key and whether it is enabled.

Works with#

These are the other apps wg-easy knows how to work with. Once it's installed, its page shows the same list with whether each one is connected. How this works.

  • Grafana: Shows dashboards for the apps that have one. works with every app
  • Prometheus: Collects metrics from the apps that can export them. works with every app
  • Uptime Kuma: Watches your apps and shows when one goes down. works with every app

Privacy and security#

All clear The VPN manager does not report on you, and LibrePortal has turned off its update check. Its login runs over plain HTTP, so reach it only over your LAN or a VPN.

What leaves this server#

Nothing leaves this server on its own.

What LibrePortal turns off#

  • Update check against GitHub

Licence: AGPL-3.0. Audited: 21 October 2026. See the privacy of every app and the Promise.

Sources#

Under the hood#

  • It runs this image: ghcr.io/wg-easy/wg-easy:15.4.0@sha256:0e7bc9d34e86ddcaa92bc700d4d7dc9b33291dbc07ac8d13382f7c2095f949ec. The version is pinned, and moves only when you update it.
  • It only shows in the App Center when the WebUI is in Advanced mode.
  • It can sit behind Authelia's sign-in once Authelia is installed.
  • Its own project and documentation: github.com/wg-easy/wg-easy

Ports, settings, tools and connections on this page are read from LibrePortal v0.10.97's app catalogue each time the guide is built.

Next steps