WireGuard VPNWireGuard VPN
A private VPN with the wg-easy web interface.
Your own WireGuard VPN with the wg-easy web interface on Ubuntu 24.04. Add devices, download configs or scan QR codes, with a German IP address.
Opens the Odinex console with WireGuard VPN selected. No licence fee: you pay for the server only.
- Base image
- Ubuntu 24.04 LTS
- Minimum
- 1 GB RAM · 20 GB disk
- Recommended plan
- S1 (1 vCPU · 2 GB RAM · 40 GB NVMe)
- Ready after boot
- 1 to 2 minutes
- Image slug
wireguard
About WireGuard VPN
WireGuard is a modern VPN protocol: fast, simple and built into the Linux kernel. wg-easy adds a web interface to manage it, so you can create a client for each phone or laptop and hand it over as a configuration file or QR code.
This image runs wg-easy 15 with the WireGuard server on UDP port 51820 and its web interface behind Caddy with HTTPS. On first boot it is configured with this server's public IP and your administrator account; there is no open setup page.
What’s included
Software installed on the image and the ports it uses.
| Component | Version |
|---|---|
| Ubuntu | 24.04 LTS |
| WireGuard | Linux kernel module |
| wg-easy | 15 |
| Caddy | 2 (automatic HTTPS) |
| Docker Engine and Compose | From Docker's repository |
| Port | Protocol | Used for |
|---|---|---|
| 22 | TCP | SSH |
| 51820 | UDP | WireGuard VPN |
| 80 | TCP | HTTP (redirects to HTTPS, certificate validation) |
| 443 | TCP + UDP | HTTPS: wg-easy web interface |
Who it’s for
- Remote workers and small teams who need secure access to private servers
- Travellers who want a trusted connection on public Wi-Fi
- Administrators linking offices or cloud networks
Use cases
Remote access to private networks
Attach the VPN server to an Odinex private network and reach servers that have no public IP.
Secure Wi-Fi on the road
Route a laptop or phone through your own server in Frankfurt on hotel and café networks.
Site-to-site links
Connect an office router or another cloud to your Odinex servers over WireGuard.
Resources
WireGuard VPN needs at least 1 GB of RAM and a 20 GB disk. Every plan includes an NVMe disk and 20 TB of traffic.
Smallest plan
S1
- 1 vCPU (shared)
- 2 GB RAM
- 40 GB NVMe disk
The smallest plan that meets the minimum.
Recommended
S1
- 1 vCPU (shared)
- 2 GB RAM
- 40 GB NVMe disk
A comfortable size for regular use.
WireGuard is light: S1 serves a team comfortably. Every plan includes 20 TB of traffic, which VPN traffic counts towards. You can resize the server later. See current prices.
Getting started after deploy
Find your address and password
The address, user name and password are written to
/root/APP-INFO.txtand printed when you log in over SSH as root. If you created the server with a root password and it meets wg-easy's policy (12 or more characters with upper-case, lower-case, a digit and a special character), the app uses that same password, so you can sign in with what the console showed you at creation. If you used an SSH key (or the password does not meet the policy), a strong password is generated for this server and written to/root/APP-INFO.txt.ssh [email protected] cat /root/APP-INFO.txtSign in to wg-easy
Open the web interface and sign in as
admin. Until you add your own domain, the app is served athttps://<your-ip-with-dashes>.sslip.io(for examplehttps://203-0-113-10.sslip.io), a public wildcard DNS name that resolves to your server, with a Let's Encrypt certificate obtained automatically. Opening the bare IP address redirects there.Add a client
Create a client for each device. Download its configuration file, or scan the QR code with the WireGuard app on iOS or Android.
Connect
Import the configuration into the WireGuard app and connect. Clients use 1.1.1.1 and 8.8.8.8 for DNS by default; you can change this in wg-easy.
Use your own domain
Create an A record for your domain that points to the server's IPv4 address and wait until it resolves. Then run the domain helper as root: it switches the app to the new name and obtains a new certificate.
nexoran-app-domain app.example.com
Security notes
- A server without a firewall accepts all inbound traffic. Create an Odinex firewall that allows only SSH (22), WireGuard (51820/UDP) and HTTPS (443, plus 80 for certificates) and apply it to the server. Odinex firewalls filter traffic before it reaches the server, so Docker's own iptables rules cannot bypass them.
- If you only manage clients occasionally, you can also restrict ports 80 and 443 to your own IP addresses; the VPN itself only needs UDP 51820.
- Remove clients you no longer use; a configuration file is a key to your network.
- The VPN carries IPv4 only (IPv6 is disabled in wg-easy on this image).
WireGuard VPN questions
Clear answers about location, infrastructure and billing.
Which IP address do VPN clients get on the internet?
How many devices can I connect?
Can I reach my private servers through the VPN?
What happens if I change the server's IP?
Documentation
More from the marketplace
Deploy WireGuard VPN in Frankfurt
Your own server with full root access, NVMe storage and 20 TB of traffic, billed by the hour.


