From 83902508e8355aeb5f9f481dfe093dab71d78755 Mon Sep 17 00:00:00 2001 From: WindSpiritSR Date: Mon, 15 Jan 2024 16:33:01 +0800 Subject: [PATCH] Add env WGUI_MANAGE_RELOAD for support reload wireguard configuration Signed-off-by: WindSpiritSR --- README.md | 5 +++++ init.sh | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/README.md b/README.md index 74c446e..9faecb2 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,7 @@ These environment variables only apply to the docker container. |-----------------------|---------------------------------------------------------------|---------| | `WGUI_MANAGE_START` | Start/stop WireGuard when the container is started/stopped | `false` | | `WGUI_MANAGE_RESTART` | Auto restart WireGuard when we Apply Config changes in the UI | `false` | +| `WGUI_MANAGE_RELOAD` | Auto reload WireGuard when we Apply Config changes in the UI | `false` | ## Auto restart WireGuard daemon @@ -198,6 +199,10 @@ running the container with `restart: unless-stopped`. These settings can also pi Path, after restarting the container. Please make sure you have `--cap-add=NET_ADMIN` in your container config to make this feature work. +Set `WGUI_MANAGE_RELOAD=true` to manage WireGuard interface reload. +Using `WGUI_MANAGE_RELOAD=true` will use `wg syncconf wg0 /path/to/file` to update the WireGuard running-configuration +without restart. Please make sure you have `--cap-add=NET_ADMIN` in your container config to make this feature work. + ## Build ### Build docker image diff --git a/init.sh b/init.sh index 08b98e8..4abbf69 100755 --- a/init.sh +++ b/init.sh @@ -18,6 +18,13 @@ case $WGUI_MANAGE_RESTART in (1|t|T|true|True|TRUE) done & esac +# manage wireguard reload +case $WGUI_MANAGE_RELOAD in (1|t|T|true|True|TRUE) + [[ -f $conf ]] || touch "$conf" # inotifyd needs file to exist + inotifyd - "$conf":w | while read -r event file; do + wg syncconf wg0 <(wg-quick strip wg0) + done & +esac ./wg-ui & wait $!