Add script to remove client

This commit is contained in:
Paul-Christian Volkmer 2022-11-29 07:24:44 +01:00
parent fbbb26f4cb
commit 074ecc8857
3 changed files with 44 additions and 13 deletions

View File

@ -66,6 +66,16 @@ $ docker-compose run wg add-client
This will create new client configuration and adds peer configuration to server config file. This will create new client configuration and adds peer configuration to server config file.
### Remove client
Stop the service and run
```
$ docker-compose run wg rm-client 1
```
This will remove client with id '1' (or any other client for different id) configuration.
### Remove configuration and create new one from scratch ### Remove configuration and create new one from scratch
Remove existing config files or rename device in `docker-compose.yml`. Run command `docker-compose up` again. Remove existing config files or rename device in `docker-compose.yml`. Run command `docker-compose up` again.

View File

@ -8,19 +8,30 @@ fi
if [ ! -f "/etc/wireguard/$DEVICE.conf" ]; then if [ ! -f "/etc/wireguard/$DEVICE.conf" ]; then
cd /etc/wireguard cd /etc/wireguard
/create-config.sh /scripts/create-config.sh
exit 0 exit 0
fi fi
if [ "add-client" == "$1" ]; then case "$1" in
'add-client')
cd /etc/wireguard cd /etc/wireguard
/add-client.sh /scripts/add-client.sh
exit 0 exit 0
fi ;;
'rm-client')
echo "Starting wg-quick on $DEVICE" if [ -z $2 ]; then
touch "${WG_LOG_FILE}" echo "Usage: rm-client <client id>"
wg-quick up $DEVICE exit 1
echo "done!" fi
cd /etc/wireguard
tail -f "${WG_LOG_FILE}" /scripts/rm-client.sh $2
exit 0
;;
*)
echo "Starting wg-quick on $DEVICE"
touch "${WG_LOG_FILE}"
wg-quick up $DEVICE
echo "done!"
tail -f "${WG_LOG_FILE}"
;;
esac

10
scripts/rm-client.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
CONFIG=$(cat "$DEVICE.conf" | sed "/^\# Client $1/{N;N;N;N;d}")
echo "$CONFIG" > "$DEVICE.conf"
rm "$DEVICE-client_$1.conf" 2>/dev/null
rm "$DEVICE-client_$1.png" 2>/dev/null
echo "Client # $1 removed"