From 48481ab9924710e587f203b2fa77a629cdce4a3e Mon Sep 17 00:00:00 2001 From: Donald Zou Date: Sun, 14 Dec 2025 00:24:21 +0800 Subject: [PATCH 1/5] Implement path filter for Docker workflow triggers Added a path filter to restrict Docker workflow triggers to changes in the 'src' directory. --- .github/workflows/docker.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 9962722c..ad0595c9 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -7,6 +7,8 @@ on: - 'main' tags: - '*' + paths: + - 'src/**' release: types: [ published ] From b6f25ac8171545ebba3c31ac1281028a1c818cde Mon Sep 17 00:00:00 2001 From: Donald Zou Date: Sun, 14 Dec 2025 00:25:37 +0800 Subject: [PATCH 2/5] Include docker directory in workflow paths --- .github/workflows/docker.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index ad0595c9..cb220fe5 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -9,6 +9,7 @@ on: - '*' paths: - 'src/**' + - 'docker/**' release: types: [ published ] From 82e10659b6f036e7826d3fc737a06d5bb285a675 Mon Sep 17 00:00:00 2001 From: Donald Zou Date: Sun, 14 Dec 2025 00:28:24 +0800 Subject: [PATCH 3/5] Update Wakatime badge link in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 15e3337f..94f6e7f2 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@

- wakatime + wakatime From d75c7ad418e1993fb05f4cff3e765988a969513c Mon Sep 17 00:00:00 2001 From: DaanSelen <80752476+DaanSelen@users.noreply.github.com> Date: Sun, 14 Dec 2025 17:32:46 +0100 Subject: [PATCH 4/5] feat: add better docker stopping response (#1025) --- docker/entrypoint.sh | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index f28c0cbf..76ba02b4 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -1,6 +1,7 @@ #!/bin/bash config_file="/data/wg-dashboard.ini" +runtime_pid="" trap 'stop_service' SIGTERM @@ -52,10 +53,35 @@ set_ini() { stop_service() { echo "[WGDashboard] Stopping WGDashboard..." - /bin/bash ./wgd.sh stop + kill $runtime_pid exit 0 } +grab_pid() { + max_rounds="10" + round="0" + + while true; do + round=$((round + 1)) + + if [[ -f ${WGDASH}/src/gunicorn.pid ]]; then + runtime_pid=$(cat ${WGDASH}/src/gunicorn.pid) + + echo "Running as PID: ${runtime_pid}" + return 0 + fi + + if [[ $round -eq $max_rounds ]]; then + echo "Reached breaking point!" + return 1 + + fi + + sleep 0.5s + done + +} + echo "------------------------- START ----------------------------" echo "Starting the WGDashboard Docker container." @@ -194,7 +220,7 @@ start_and_monitor() { [[ ! -d ${WGDASH}/src/download ]] && mkdir ${WGDASH}/src/download ${WGDASH}/src/venv/bin/gunicorn --config ${WGDASH}/src/gunicorn.conf.py - resolvconf -u + /usr/sbin/resolvconf -u if [ $? -ne 0 ]; then echo "Loading WGDashboard failed... Look above for details." @@ -235,8 +261,12 @@ start_and_monitor() { else tail -f "$latest_error" & - wait $! + tail_pid=$! + echo "Grabbing PID..." + grab_pid & + + wait $tail_pid fi echo "The blocking command has been broken! Script will exit in 3 minutes... Investigate!" From 306e17eb4d2c22cec38cc51a9cddd28b518901c4 Mon Sep 17 00:00:00 2001 From: Daan Selen Date: Sun, 14 Dec 2025 20:56:18 +0100 Subject: [PATCH 5/5] refac: some exit logic --- docker/entrypoint.sh | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 76ba02b4..7a024505 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -53,13 +53,10 @@ set_ini() { stop_service() { echo "[WGDashboard] Stopping WGDashboard..." - kill $runtime_pid - exit 0 -} -grab_pid() { - max_rounds="10" - round="0" + local max_rounds="10" + local round="0" + local runtime_pid="" while true; do round=$((round + 1)) @@ -80,6 +77,8 @@ grab_pid() { sleep 0.5s done + kill $runtime_pid + exit 0 } echo "------------------------- START ----------------------------" @@ -218,6 +217,7 @@ start_and_monitor() { [[ ! -d ${WGDASH}/src/log ]] && mkdir ${WGDASH}/src/log [[ ! -d ${WGDASH}/src/download ]] && mkdir ${WGDASH}/src/download + ${WGDASH}/src/venv/bin/gunicorn --config ${WGDASH}/src/gunicorn.conf.py /usr/sbin/resolvconf -u @@ -229,13 +229,14 @@ start_and_monitor() { # Wait a second before continuing, to give the python program some time to get ready. echo -e "\nEnsuring container continuation." - max_rounds="10" - round="0" + local max_rounds="10" + local round="0" # Hang in there for 10s for Gunicorn to get ready while true; do round=$((round + 1)) - latest_error=$(ls -t ${WGDASH}/src/log/error_*.log 2> /dev/null | head -n 1) + + local latest_error=$(ls -t ${WGDASH}/src/log/error_*.log 2> /dev/null | head -n 1) if [[ $round -eq $max_rounds ]]; then echo "Reached breaking point!" @@ -263,15 +264,8 @@ start_and_monitor() { tail -f "$latest_error" & tail_pid=$! - echo "Grabbing PID..." - grab_pid & - wait $tail_pid fi - - echo "The blocking command has been broken! Script will exit in 3 minutes... Investigate!" - sleep 180s - exit 1 } # Main execution flow