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

45 lines
1.2 KiB
Bash
Executable File

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