Files
Dinger 05f07ee544 refactor deployment config and exchange integrations
Simplify runtime configuration and remove legacy database and settings surface so new installs are easier to operate.
Refresh deployment assets, docs, and order execution behavior to keep the packaged app aligned with the current backend.

Made-with: Cursor
2026-03-21 18:32:04 +08:00

85 lines
2.9 KiB
Bash

#!/bin/sh
# QuantDinger Docker Entrypoint Script
# Checks and validates SECRET_KEY before starting the application
set -e
echo "============================================"
echo " QuantDinger Backend - Starting..."
echo "============================================"
# Check if .env file exists
if [ ! -f /app/.env ]; then
echo "[WARNING] .env file not found at /app/.env"
echo "Creating .env from env.example..."
if [ -f /app/env.example ]; then
cp /app/env.example /app/.env
echo "[INFO] Created .env from env.example"
echo "[IMPORTANT] Please edit /app/.env and set a secure SECRET_KEY before restarting!"
else
echo "[ERROR] env.example not found. Cannot create .env automatically."
exit 1
fi
fi
# Check SECRET_KEY configuration
DEFAULT_SECRET="quantdinger-secret-key-change-me"
CURRENT_SECRET=$(grep -E "^SECRET_KEY=" /app/.env 2>/dev/null | cut -d'=' -f2- | tr -d '"' | tr -d "'" | xargs || echo "")
if [ -z "$CURRENT_SECRET" ]; then
echo ""
echo "============================================"
echo " [SECURITY WARNING]"
echo "============================================"
echo "SECRET_KEY is not set in /app/.env"
echo ""
echo "Please set a secure SECRET_KEY before starting:"
echo ""
echo " Option 1: Generate a random key:"
echo " docker exec -it quantdinger-backend python -c \"import secrets; print(secrets.token_hex(32))\""
echo ""
echo " Option 2: Edit .env file:"
echo " SECRET_KEY=your-generated-secret-key-here"
echo ""
echo "Then restart the container:"
echo " docker-compose restart backend"
echo ""
echo "============================================"
exit 1
fi
# Check if using default secret key
if [ "$CURRENT_SECRET" = "$DEFAULT_SECRET" ]; then
echo ""
echo "============================================"
echo " [SECURITY ERROR]"
echo "============================================"
echo "SECRET_KEY is using the default example value!"
echo "This is INSECURE and MUST be changed before running in production."
echo ""
echo "Current value: $CURRENT_SECRET"
echo ""
echo "To fix this:"
echo ""
echo " 1. Generate a secure random key:"
echo " docker exec -it quantdinger-backend python -c \"import secrets; print(secrets.token_hex(32))\""
echo ""
echo " 2. Edit backend_api_python/.env and replace SECRET_KEY:"
echo " SECRET_KEY=<generated-key-here>"
echo ""
echo " 3. Restart the container:"
echo " docker-compose restart backend"
echo ""
echo "Or use this one-liner (Linux/Mac):"
echo " sed -i 's|SECRET_KEY=.*|SECRET_KEY='\$(python3 -c \"import secrets; print(secrets.token_hex(32))\")\'|' backend_api_python/.env"
echo ""
echo "============================================"
exit 1
fi
echo "[OK] SECRET_KEY is configured"
echo ""
# Start the application
exec "$@"