mirror of
https://github.com/donaldzou/WGDashboard
synced 2025-06-26 18:26:58 +00:00
Reimplemented Automatic Wireguard Configuration Generation Setting global Env Vars via the docker image build is still insecure, better to pass to dashboard before init.
42 lines
1.4 KiB
Bash
42 lines
1.4 KiB
Bash
#!/bin/bash
|
|
echo "Starting the WireGuard Dashboard Docker container."
|
|
|
|
clean_up() {
|
|
# Cleaning out previous data such as the .pid file and starting the WireGuard Dashboard. Making sure to use the python venv.
|
|
echo "Looking for remains of previous instances..."
|
|
if [ -f "/opt/wireguarddashboard/app/src/gunicorn.pid" ]; then
|
|
echo "Found old .pid file, removing."
|
|
rm /opt/wireguarddashboard/app/src/gunicorn.pid
|
|
else
|
|
echo "No remains found, continuing."
|
|
fi
|
|
}
|
|
|
|
|
|
|
|
ensure_blocking() {
|
|
sleep 1s
|
|
echo "Ensuring container continuation."
|
|
|
|
# This function checks if the latest error log is created and tails it for docker logs uses.
|
|
if find "/opt/wireguarddashboard/src/log" -mindepth 1 -maxdepth 1 -type f | read -r; then
|
|
latestErrLog=$(find /opt/wireguarddashboard/src/log -name "error_*.log" | head -n 1)
|
|
latestAccLog=$(find /opt/wireguarddashboard/src/log -name "access_*.log" | head -n 1)
|
|
tail -f "${latestErrLog}" "${latestAccLog}"
|
|
fi
|
|
|
|
# Blocking command in case of erroring. So the container does not quit.
|
|
sleep infinity
|
|
}
|
|
|
|
# Execute functions for the WireGuard Dashboard services, then set the environment variables
|
|
clean_up
|
|
|
|
chmod u+x /opt/wireguarddashboard/src/wgd.sh
|
|
if [ ! -f "/opt/wireguarddashboard/src/wg-dashboard.ini" ]; then
|
|
/opt/wireguarddashboard/src/wgd.sh install
|
|
|
|
fi
|
|
/opt/wireguarddashboard/src/wgd.sh start
|
|
ensure_blocking
|