Skip to content

Install ​

Requirements ​

  • A server with Debian 11+, Ubuntu 20.04+ or AlmaLinux / Rocky 8+, amd64 or arm64
  • Root access and a public IPv4 address
  • 512 MB of RAM is enough for a few hundred clients

One command ​

bash
bash <(curl -fsSL https://raw.githubusercontent.com/Erfan-XRay/Burrow/main/install.sh)

The installer asks four things; press Enter to keep a default:

QuestionDefaultNotes
Panel port2053Any free TCP port
OpenVPN UDP port1194The main OpenVPN server
Also run OpenVPN over TCP?noFor networks that block UDP; asks for the port (default 443)
HTTPS for the panelserver IPDomain, server IP or none, see HTTPS

At the end it prints the panel address, user name and password:

Panel      https://203.0.113.10:2053/k3x9qa7bd1/
Username   admin
Password   Zp8...
OpenVPN    udp/1194

Keep the panel path secret

Everything on the panel port except that path answers 404, so scanners do not even see a login page.

Without questions ​

Every answer can be passed as an option, which is handy for scripts:

bash
bash install.sh --yes --port 8443 --udp-port 1194 --tcp --tcp-port 443 \
  --ssl domain --domain panel.example.com --email you@example.com
OptionMeaning
--port NPanel port
--udp-port NOpenVPN UDP port
--tcp / --tcp-port NStart the TCP server too, on this port
--ssl domain|ip|noneHow the panel gets HTTPS
--domain, --emailFor --ssl domain
--betaInstall the newest beta instead of the stable release
--binary FILEUse a downloaded binary instead of fetching one
--yesNever ask

What the installer does ​

  1. Installs OpenVPN (2.5 or newer), iptables and curl.
  2. Downloads the release, checks it against SHA256SUMS and the release signature, and refuses anything that does not match.
  3. Creates the burrow service and one burrow-ovpn@NAME service per OpenVPN server.
  4. Turns on IPv4 forwarding and NAT, opens the ports in ufw or firewalld when they are active.
  5. Gets a Let's Encrypt certificate when you chose HTTPS.

If GitHub is slow or blocked from your server, downloads fall back to the Burrow mirror automatically.

Update ​

Run the same command again, or use Updates inside the panel. See Updates.

Uninstall ​

bash
bash install.sh --uninstall           # keeps /var/lib/burrow and /etc/burrow
bash install.sh --uninstall --purge   # removes everything

Proprietary software · documentation free to share