A shell script that sets up a WireGuard VPN server on Linux in minutes and manages its clients.
Nyr/openvpn-install
Shell script that installs and manages an OpenVPN road warrior server on Ubuntu, Debian and RHEL-family distros.
- Stars
- 20,655
- Forks
- 5,049
- Open issues
- 0
- Last commit
- 2 months ago
What is it?
openvpn-install is a Bash script that installs and configures an OpenVPN server for remote-access ("road warrior") use. It targets Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS and Fedora, and is aimed at developers or admins who want their own VPN endpoint without configuring OpenVPN by hand.
Running the script starts an interactive assistant that asks for the settings needed to create the server. Once it finishes, the same script can be run again to add new clients, remove existing users, or uninstall OpenVPN completely. No external configuration management or web panel is required—just a single shell script executed on the server.
A separate wireguard-install script is also available for WireGuard-based setups.
Key features
- 01Interactive installer for OpenVPN road warrior servers.
- 02Supports Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS and Fedora.
- 03Re-running the script can add or remove client users.
- 04Re-running the script can uninstall OpenVPN.
- 05Companion wireguard-install script is available for WireGuard setups.
Use cases
- Set up a private VPN endpoint on a VPS or dedicated server.
- Manage VPN users by adding or removing clients after installation.
- Uninstall OpenVPN from a server without manual cleanup.
- Choose WireGuard instead by using the companion installer.
Quick start
- 1
Download and run the installer script with the command from the README
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh - 2
Follow the assistant, then run the script again to add or remove users or uninstall
Things to know
- Supports only Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS and Fedora.
- You need your own server to host the VPN, such as a VPS.
In collections
Topics
FAQ
- What is openvpn-install?
- Shell script that installs and manages an OpenVPN road warrior server on Ubuntu, Debian and RHEL-family distros. openvpn-install is a Bash script that installs and configures an OpenVPN server for remote-access ("road warrior") use. It targets Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS and Fedora, and is aimed at developers or admins who want their own VPN endpoint without configuring OpenVPN by hand.
- Is openvpn-install free to use? What license does it have?
- openvpn-install is open source under the MIT license. Check the license terms before using it in commercial products.
- Is openvpn-install still maintained?
- Updated within 6 months. The last commit to openvpn-install was on Sep 22, 2026.
- What can I use openvpn-install for?
- Set up a private VPN endpoint on a VPS or dedicated server. Manage VPN users by adding or removing clients after installation. Uninstall OpenVPN from a server without manual cleanup. Choose WireGuard instead by using the companion installer.
- How do I install openvpn-install?
- Download and run the installer script with the command from the README: wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh Follow the assistant, then run the script again to add or remove users or uninstall
- Where can I get openvpn-install?
- The source code and installation instructions are on GitHub: https://github.com/Nyr/openvpn-install
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open-source VPN client that deploys and connects to your own self-hosted VPN server over SSH, across desktop and mobile.
A Linux tool with GUI and CLI for turning a WiFi adapter into an access point, including sharing a connection while staying connected to WiFi.
Open-source, self-hostable SASE platform built on WireGuard that combines zero-trust VPN, reverse proxy, privileged access and an AI gateway.
Peer-to-peer, end-to-end encrypted private network that reaches your own LAN machines and services from anywhere, with no port forwarding or public URLs.
A shell script that switches a Linux distribution's package sources to domestic mirrors, plus a separate script for installing Docker and configuring registry mirrors.