OpenVPN Install¶
OpenVPN Install is a single-script solution for deploying and managing an OpenVPN server on Linux.
Features¶
- One-command OpenVPN server installation
- Client management: create, revoke, renew certificates
- Interactive and CLI modes
- Modern cryptography: ECDSA, AES-GCM, ChaCha20, TLS 1.3
- IPv4 and IPv6 support (dual-stack)
- Automatic firewall configuration (firewalld / nftables / iptables)
- DNS provider selection or self-hosted Unbound
- JSON output for automation
- Automated testing across 20+ distributions
Quick Start¶
# Download the script
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
# Interactive installation
sudo ./openvpn-install.sh interactive
# Or automated installation with defaults
sudo ./openvpn-install.sh install
After installation, the client configuration file (*.ovpn) is created in the current user's home directory.
Project Structure¶
openvpn-install/
├── openvpn-install.sh # Main script (installation and management)
├── README.md # Project documentation
├── FAQ.md # Frequently asked questions
├── Makefile # Test automation
├── docker-compose.yml # Test infrastructure
└── test/ # Tests
├── Dockerfile.server
├── Dockerfile.client
├── server-entrypoint.sh
├── client-entrypoint.sh
└── validate-output.sh
Documentation Map¶
| Section | Description |
|---|---|
| Compatibility | Supported OS and requirements |
| Installation | Detailed installation guide |
| Quick Start | Common deployment scenarios |
| Client Management | Add, revoke, renew clients |
| Server Management | Status, certificate renewal, monitoring |
| CLI Reference | Full command-line options reference |
| Network & DNS | Network, port, and DNS settings |
| Security | Encryption, certificates, TLS |
| Firewall | firewalld, nftables, iptables configuration |
| FAQ | Frequently asked questions |