https-proxy-with-self-signe.../nginx/entrypoint.sh

40 lines
1012 B
Bash
Executable File

#!/bin/bash
set -e
echo "=== Starting HTTPS Proxy ==="
# Set default for WEBUI_PORT
export WEBUI_PORT="${WEBUI_PORT:-8443}"
# Generate certificates if needed
/certs/generate-certs.sh
# Replace env vars in nginx config template
envsubst '${WEBUI_PORT}' < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf
# 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;"