#!/bin/bash set -e echo "=== Starting HTTPS Proxy ===" # Set defaults export WEBUI_PORT="${WEBUI_PORT:-8443}" export WEBUI_PORT_HTTP="${WEBUI_PORT_HTTP:-8080}" # Generate certificates if needed /certs/generate-certs.sh # Replace env vars in nginx config template envsubst '${WEBUI_PORT} ${WEBUI_PORT_HTTP}' < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf # Remove default symlinks to stdout/stderr and create real log files rm -f /var/log/nginx/access.log /var/log/nginx/error.log touch /var/log/nginx/access.log /var/log/nginx/error.log # Ensure conf.d directory exists with empty config mkdir -p /etc/nginx/conf.d touch /etc/nginx/conf.d/proxy-targets.conf # Load existing config and generate nginx config if [ -f /data/proxy_config.json ]; then echo "Loading existing proxy configuration..." python3 -c " import sys sys.path.insert(0, '/app') from app import load_config, generate_nginx_config config = load_config() generate_nginx_config(config) print('Nginx config generated from saved configuration.') " fi # Start gunicorn in background echo "Starting WebUI..." cd /app gunicorn --bind 127.0.0.1:5000 --workers 2 --timeout 120 app:app & # Start nginx in foreground echo "Starting Nginx..." exec nginx -g "daemon off;"