Add headless documentation

This commit is contained in:
randomshell 2020-08-22 20:20:33 +00:00
parent b94cc63601
commit 7d4c11d507

View File

@ -33,6 +33,57 @@ It will install WireGuard (kernel module and tools) on the server, configure it,
Run the script again to add or remove clients!
## Headless install
It's also possible to run the script headless, e.g. without waiting for user input, in an automated manner.
Example usage:
```bash
AUTO_INSTALL=y ./wireguard-install.sh
# or
export AUTO_INSTALL=y
./wireguard-install.sh
```
A default set of variables will then be set, by passing the need for user input.
If you want to customise your installation, you can export them or specify them on the same line, as shown above.
- `APPROVE_INSTALL=y`
- `APPROVE_IP=y`
- `APPROVE_NIC=y`
- `SERVER_WG_NIC=wg0`
- `SERVER_WG_IPV4=10.66.66.1`
- `SERVER_WG_IPV6=fd42:42:42::1`
- `SERVER_PORT=51820`
- `CLIENT_DNS_1=176.103.130.130`
- `CLIENT_DNS_2=176.103.130.131`
- `CLIENT_NAME=client`
- `CLIENT_DOT_IPV4=2`
- `CLIENT_DOT_IPV6=2`
If the server is behind NAT, you can specify its endpoint with the `SERVER_PUB_IP` variable. If the endpoint is the public IP address which it is behind, you can use `SERVER_PUB_IP=$(curl ifconfig.co)` (the script will default to this). The endpoint can be an IP or a domain.
Other variables can be set depending on your choice (`SERVER_NIC`). You can search for them in the `installQuestions()` function of the script.
## Headless User Addition
It's also possible to automate the addition of a new user. Here, the key is to provide the (string) value of the `MENU_OPTION` variable along with the remaining mandatory variables before invoking the script.
The following Bash script adds a new user `foo` to an existing WireGuard configuration
```bash
#!/bin/bash
export MENU_OPTION="1"
export CLIENT_NAME="foo"
export CLIENT_DOT_IPV4="3"
export CLIENT_DOT_IPV6="3"
./wireguard-install.sh
```
## Providers
I recommend these cheap cloud providers for your VPN server: