Skip to content
VPN Server with Web Admin Panel product logo
  • AWSAvailable on Amazon Web Services
  • AzureAvailable on Microsoft Azure
  • GCP· nextGoogle Cloud is next on the roadmap
Available

VPN Server with Web Admin Panel

A personal and team VPN server on Ubuntu 24.04 LTS using the modern WireGuard protocol, managed from wg-easy 15.5.0, an open source web admin panel. Create a client in the browser, scan its QR code with the free WireGuard app on a phone or import its config file on a laptop, and the device connects. Use it to protect traffic on public Wi-Fi, give remote staff one fixed exit IP address, or reach private resources in your cloud. The VPN endpoint follows the instance's public IP at every boot.

Version
v15.5.0
Operating system
Ubuntu 24.04 LTS
Architecture
x86_64
Support
Email support

What's installed

Every package and version on the image, identical on every cloud it ships on. Nothing else is installed.

  • wg-easy 15.5.0 (pinned by digest)
  • WireGuard kernel module and tools
  • Docker CE 29.9.2
  • nginx 1.24.0
  • Webmin 2.670

LicensingOpen source (AGPL-3.0 for wg-easy; WireGuard GPL-2.0), no licence key required

Deploy anywhere

VPN Server with Web Admin Panel on AWS and Azure.

Google Cloud is next on the roadmap. One clean-room build, one first-boot credential model, one patch cadence — identical on every cloud you run. Every identifier below is the real one; copy it and launch.

  1. AWS
    Available

    Amazon Web Services

    AMI · v15.5.0

    AWS AMI ID

    Shown for your region on the AWS Marketplace launch page once you subscribe.

    Released
    Root volume
    gp3 · 20 GiB
    Instance types
    • t3a.small
    • t3.small
    • t3a.medium
    • m6a.large
    Regions34 regions· show all
    • us-east-1
    • af-south-1
    • ap-east-1
    • ap-east-2
    • ap-northeast-1
    • ap-northeast-2
    • ap-northeast-3
    • ap-south-1
    • ap-south-2
    • ap-southeast-1
    • ap-southeast-2
    • ap-southeast-3
    • ap-southeast-4
    • ap-southeast-5
    • ap-southeast-6
    • ap-southeast-7
    • ca-central-1
    • ca-west-1
    • eu-central-1
    • eu-central-2
    • eu-north-1
    • eu-south-1
    • eu-south-2
    • eu-west-1
    • eu-west-2
    • eu-west-3
    • il-central-1
    • me-central-1
    • me-south-1
    • mx-central-1
    • sa-east-1
    • us-east-2
    • us-west-1
    • us-west-2

    5-day free trial, then from $0.03/hr software charge (larger instance sizes cost more) plus your own EC2 costs, billed by AWS.

    Subscriptions are open to AWS India (AISPL) accounts. Outside India? Ask us for a private build.

  2. Azure
    Available

    Microsoft Azure

    Compute Gallery image · v15.5

    Azure Compute Gallery image ID

    Selected for you when you create the VM from the Azure Marketplace listing.

    Released
    OS disk
    Premium_LRS · 30 GiB
    VM sizes
    • Standard_D2as_v7
    • Standard_D2as_v5
    • Standard_B2ms
    • Standard_D4as_v7
    Regions50 regions· show all
    • eastus
    • australiacentral
    • australiaeast
    • australiasoutheast
    • austriaeast
    • belgiumcentral
    • brazilsouth
    • canadacentral
    • canadaeast
    • centralindia
    • centralus
    • chilecentral
    • denmarkeast
    • eastasia
    • eastus2
    • francecentral
    • germanywestcentral
    • indiasouthcentral
    • indonesiacentral
    • israelcentral
    • italynorth
    • japaneast
    • japanwest
    • jioindiawest
    • koreacentral
    • koreasouth
    • malaysiawest
    • mexicocentral
    • newzealandnorth
    • northcentralus
    • northeurope
    • norwayeast
    • polandcentral
    • qatarcentral
    • southafricanorth
    • southcentralus
    • southeastasia
    • southindia
    • spaincentral
    • swedencentral
    • switzerlandnorth
    • uaenorth
    • uksouth
    • ukwest
    • westcentralus
    • westeurope
    • westindia
    • westus
    • westus2
    • westus3
AWS

Getting started on Amazon Web Services

From launch to signed in, step by step.

  1. Subscribe on AWS Marketplace and launch in your region with UDP 51820 (the VPN tunnel) and TCP 22, 80, 443 and 8000 open; wait about two minutes for first boot.

  2. Open https://<instance-public-ip>/, accept the one-time self-signed certificate warning and sign in with username admin and your EC2 Instance ID, lowercase exactly as the console shows it (for example i-0123456789abcdef0).

  3. Click New client and name it. On a phone, scan its QR code with the WireGuard app; on a computer, download its configuration file and import it. Turn the tunnel on and your traffic leaves from this server's IP.

  4. Webmin is on port 8000 with the same username and password. SSH as ubuntu with your key pair. Change passwords with sudo bash /home/ubuntu/iscripts/pass_vpnadmin.sh or pass_webmin.sh; see connected clients with sudo bash /home/ubuntu/iscripts/vpn_status.sh.

  5. A stop/start changes the public IP: the server follows it, but re-download client configs, or attach an Elastic IP so they never change.

Security posture

What this AWS image does and does not ship with, one fact per line.

  • Clean-room build on Canonical's official Ubuntu 24.04 LTS image: every component comes from its own official source, and nothing is copied from any third-party image. wg-easy is the unmodified upstream release, pinned by image digest.

  • No key or password ships in the image: on first boot every instance generates its own VPN server key pair, admin password, HTTPS certificate and Webmin password from EC2 instance metadata (IMDSv2).

  • The admin panel listens only on the server itself behind nginx and is served over HTTPS only (port 80 redirects).

  • SSH is key-only, and build-time SSH keys, host keys, machine ID, shell history and logs were removed before imaging.

  • The bundled password tools enforce at least 10 characters with upper- and lower-case letters, a number and a symbol.

  • Restrict ports 22 and 8000 to trusted IP ranges in your security group. wg-easy's source code: github.com/wg-easy/wg-easy.

  • WireGuard is a registered trademark of Jason A.

  • Donenfeld.

Azure

Getting started on Microsoft Azure

From launch to signed in, step by step.

  1. Create the VM from the Azure Marketplace listing with UDP 51820 and TCP 22, 80, 443 and 8000 open in your network security group. Choose ubuntu as the administrator username so SSH and the script paths match, and wait a few minutes for first boot to finish.

  2. Open https://<vm-public-ip>/ and sign in as admin. The password is your VM ID (Azure portal > the virtual machine > Properties > VM ID, for example 02aab8a4-74ef-476e-8182-f6d2ba4166a6). Add a client, then scan its QR code with the WireGuard app or download its config file. Webmin (port 8000, user admin) uses the same password.

  3. For production, limit admin ports to your own IP address.

Security posture

What this Azure image does and does not ship with, one fact per line.

  • Clean-room build on Canonical's official Ubuntu 24.04 LTS image from the Azure Marketplace: every component comes from its own official source and no third-party image was launched or copied.

  • No two VMs share a login: first boot sets every password and secret key from the new VM's own vmId (read from Azure IMDS) or from fresh random values, and creates new SSH host keys.

  • The ubuntu login account ships password-locked with an empty authorized_keys, and Azure installs your own SSH key at deploy time.

  • Shell history, logs and cloud-init state are cleared before capture, and the image carries every Ubuntu 24.04 LTS security update with nothing pending.

  • Each gallery version is deployed as a Trusted Launch VM and checked against Microsoft's documented Linux certification test cases, the product's own end-to-end login tests and a stop/start cycle before it is published.

  • Restrict port 22 and the admin consoles to trusted IP ranges, and put public web consoles behind HTTPS with your own certificate.