#!/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