This project is a web graphical implementation of wireguard installation script.
Implementation relative to commit: 39caf2f (compare to master)
WireGuard is a point-to-point VPN that can be used in different ways. Here, we mean a VPN as in: the client will forward all its traffic through an encrypted tunnel to the server. The server will apply NAT to the client's traffic so it will appear as if the client is browsing the web with the server's IP.
- Listing wireguard clients
- Adding/removing clients specifying both IPv4 and IPv6 addresses
- Downloading client configuration file
- Generate client configuration QR code
Install Node.js first if it is not already installed. Follow the official instructions for your operating system: link.
Clone repository, install dependencies:
cd ~
git clone https://github.com/loolzaaa/wireguard-web-gui.git && cd wireguard-web-gui
npm install
sudo npm run start
By default, the application is launched in production mode - this affects the Vue build type. If you need to load the development version of the Vue, then you should change the mode in file public/env.js
:
export default {
mode: 'production' // 'production' or 'development'
}
You can use systemd to run this application as a service.
First, make a local copy of the service/ubuntu/wg-gui.service
file:
cd /path/to/app/root/directory/
cp service/ubuntu/wg-gui.service service/ubuntu/wg-gui.service.local
Next, in service/ubuntu/wg-gui.service.local
change User and username:
nano service/ubuntu/wg-gui.service.local
User=root
WorkingDirectory=/home/username/wireguard-web-gui
ExecStart=/usr/bin/node /home/username/wireguard-web-gui/src/app.js
Note: wireguard needs root rights to work.
After that, copy the modified file to system services, run, wait a couple of moments and check:
sudo cp service/ubuntu/wg-gui.service.local /etc/systemd/system/wg-gui.service
sudo systemctl enable wg-gui.service
sudo systemctl start wg-gui.service
sudo systemctl status wg-gui.service
curl -v http://localhost:8622/clients && echo