mirror of
https://github.com/donaldzou/WGDashboard.git
synced 2024-11-06 16:00:28 +01:00
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
|