A comprehensive bash script that automatically installs and configures WireGuard-UI on various Linux distributions with just one command.
- Multi-Distribution Support: Works on Ubuntu, Debian, CentOS, RHEL, Fedora, Arch Linux, openSUSE, and Alpine Linux
- Two Installation Methods:
- Docker installation (recommended)
- Build from source
- Automatic Service Management: Sets up systemd/OpenRC services with auto-restart functionality
- Firewall Configuration: Automatically configures UFW or Firewalld
- IP Forwarding: Enables kernel IP forwarding for VPN routing
- Web Interface: Easy-to-use web UI for managing WireGuard configurations
- Auto-Restart: Automatically restarts WireGuard when configuration changes
- Comprehensive Logging: All installation steps logged to
/WireGuardInstall.log
- Linux server with root access
- Internet connection
- Supported Linux distributions:
- Ubuntu/Debian (apt)
- CentOS/RHEL/Fedora (yum/dnf)
- Arch Linux (pacman)
- openSUSE (zypper)
- Alpine Linux (apk)
For reliable VPS hosting, we recommend myhbd.net - offering servers in multiple locations worldwide with one-click deployment options. Perfect for setting up your WireGuard VPN server!
- β Multiple server locations globally
- β One-click server deployment
- β Competitive pricing
- β High-performance SSD storage
- β 24/7 technical support
Run this single command as root to install WireGuard-UI:
curl -fsSL https://raw.githubusercontent.com/itsredbull/wireguard-ui-installer/main/install.sh | bash
Or download and run manually:
wget https://raw.githubusercontent.com/itsredbull/wireguard-ui-installer/main/install.sh
chmod +x install.sh
sudo ./install.sh
The script will:
- Detect your OS and package manager
- Install dependencies (WireGuard, curl, wget, git, etc.)
- Enable IP forwarding for VPN routing
- Prompt for installation method:
- Option 1: Docker installation (recommended)
- Option 2: Build from source
- Configure services for auto-start and auto-restart
- Set up firewall rules (ports 51820/udp and 5000/tcp)
- Create initial WireGuard configuration
- Start all services
After successful installation:
Access URL: http://YOUR-SERVER-IP:5000
Default Credentials:
- Username:
admin
- Password:
admin
- Configuration:
/etc/wireguard/wg0.conf
- Web UI Files:
/opt/wireguard-ui/
(source install) or Docker container - Docker Compose:
/etc/wireguard-ui/docker-compose.yml
(Docker install) - Installation Log:
/WireGuardInstall.log
- Service Files:
/etc/systemd/system/wireguard-ui.service
# Start
docker compose -f /etc/wireguard-ui/docker-compose.yml up -d
# Stop
docker compose -f /etc/wireguard-ui/docker-compose.yml down
# View logs
docker logs wireguard-ui
# Start/Stop/Status
sudo systemctl start wireguard-ui
sudo systemctl stop wireguard-ui
sudo systemctl status wireguard-ui
# Enable/Disable auto-start
sudo systemctl enable wireguard-ui
sudo systemctl disable wireguard-ui
# Start/Stop/Status
sudo rc-service wireguard-ui start
sudo rc-service wireguard-ui stop
sudo rc-service wireguard-ui status
The script automatically opens these ports:
- 51820/udp: WireGuard VPN traffic
- 5000/tcp: Web UI access
Edit /etc/systemd/system/wireguard-ui.service
:
Environment=WGUI_SERVER_INTERFACE_ADDRESSES=10.252.1.0/24
Environment=WGUI_SERVER_LISTEN_PORT=51820
Environment=WGUI_CONFIG_FILE_PATH=/etc/wireguard/wg0.conf
Edit /etc/wireguard-ui/docker-compose.yml
:
environment:
- BIND_ADDRESS=0.0.0.0:5000
- WGUI_USERNAME=admin
- WGUI_PASSWORD=admin
- WGUI_CONFIG_FILE_PATH=/etc/wireguard/wg0.conf
- Installation Log:
tail -f /WireGuardInstall.log
- Service Logs (systemd):
journalctl -u wireguard-ui -f
- Docker Logs:
docker logs -f wireguard-ui
- WireGuard Status:
sudo wg show
-
Port 5000 already in use
sudo netstat -tlnp | grep :5000 sudo kill -9 <PID>
-
WireGuard interface not starting
sudo wg-quick up wg0 sudo systemctl status wg-quick@wg0
-
Web UI not accessible
- Check if service is running:
sudo systemctl status wireguard-ui
- Verify firewall:
sudo ufw status
orsudo firewall-cmd --list-ports
- Check logs:
journalctl -u wireguard-ui
- Check if service is running:
-
Permission issues
sudo chown -R root:root /etc/wireguard/ sudo chmod 600 /etc/wireguard/wg0.conf
docker compose -f /etc/wireguard-ui/docker-compose.yml down
docker rmi ngoduykhanh/wireguard-ui:latest
sudo rm -rf /etc/wireguard-ui
sudo systemctl stop wireguard-ui
sudo systemctl disable wireguard-ui
sudo rm /etc/systemd/system/wireguard-ui.service
sudo rm -rf /opt/wireguard-ui
sudo systemctl daemon-reload
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- WireGuard - Fast, modern, secure VPN tunnel
- WireGuard-UI - Web interface for WireGuard
- myhbd.net - Recommended VPS hosting provider
If you encounter any issues:
- Check the installation log:
/WireGuardInstall.log
- Review the troubleshooting section above
- Open an issue on GitHub with detailed error information
β If this script helped you, please consider giving it a star!