Open source installer · latest release v1.2

Install a WireGuard VPN server with one command

A small bash script that detects the OS and network, asks a few questions, shows the plan, then installs WireGuard and your first client.

  • Guided TUI
  • Ubuntu · Debian · CentOS · Fedora
root@vpn — wireguard.sh udp 51820

wireguard.sh:~$ cat install.txt

Run one of the following commands to start the guided installer.

The TUI opens on your server. Nothing changes until you confirm.

bash <(wget -q -O - https://wireguard.sh/wireguard.sh)

or

bash <(curl -s https://wireguard.sh/wireguard.sh)

wireguard.sh:~$

What the TUI does

  • Detects your OS, IPv4 and IPv6 addresses, then explains what it found.
  • Asks for the port, first client name and DNS resolver with sensible defaults.
  • Shows a review screen before installing anything.
  • Installs WireGuard, writes /etc/wireguard/wg0.conf, and configures forwarding, firewall and NAT.
  • Reports each install step and keeps the full log at /var/log/wireguardSH.log.

Before you run it

  • Use a fresh server you control; the installer needs root.
  • Ubuntu 18.04+, Debian 10+, CentOS 7+ or Fedora 31+.
  • Opens one UDP port, 51820 by default.
  • Read the installer before piping it to bash.

After the server is up

Install the WireGuard client on your phone or laptop, then import the generated config or scan the QR code.

Download a client

Guided TUI · v1.2

A terminal UI that shows its working.

Arrow-key menus, clear defaults, and a review screen before anything changes. Re-run the same command later for a status dashboard and client management.

  • Keyboard or number keys
  • Review before install
  • Live install log
  • Client QR codes
wireguard.sh — welcome --preview
01 · Welcome The system is detected before a single change is made.
wireguard.sh — review --preview
02 · Review Every choice is shown together before the install begins.
wireguard.sh — dashboard --preview
03 · Dashboard Re-run the installer any time to add clients or check the service.

Credits

Built on other people's work

wireguard.sh is an independent installer developed by EyUp.io. We take no credit for WireGuard itself. The protocol, the kernel module, and the tools are the work of Jason A. Donenfeld and the WireGuard project.

Our guided flow also builds on Nyr's wireguard-install. Thank you, Nyr, for the careful work and the generous licence that made this project possible.

wireguard.sh is not affiliated with, endorsed by, or supported by the WireGuard project or Nyr. Any mistakes in this installer are ours alone.

Nyr's wireguard-install

The installer foundation this project owes a debt to. A thoughtful, long-maintained piece of open-source work.

Nyr/wireguard-install

EyUp.io

The guided TUI, packaging, and maintenance. Built in West Yorkshire, with no telemetry.

eyup.io

Prefer to read it first?

The installer is a plain bash script. Review the source, check the latest release notes, then run the command when you are ready.