37794-vm/entrypoint.sh
2026-01-31 08:09:47 +00:00

41 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
# Exit immediately if a command exits with a non-zero status
set -e
echo "Starting deployment script..."
echo "Environment Verification:"
echo "DB_ENGINE: ${DB_ENGINE:-'Not Set (will default to settings.py)'}"
echo "DB_HOST: ${DB_HOST:-'Not Set'}"
echo "DB_PORT: ${DB_PORT:-'Not Set'}"
echo "DB_NAME: ${DB_NAME:-'Not Set'}"
echo "DB_USER: ${DB_USER:-'Not Set'}"
# Do NOT print DB_PASS
# Detect and print Public IP (Helpful for Whitelisting)
echo "--------------------------------------------------------"
echo "DETECTING PUBLIC IP FOR DATABASE WHITELISTING:"
PUBLIC_IP=$(curl -s --connect-timeout 5 ifconfig.me || echo "Unavailable")
echo "YOUR VPS PUBLIC IP IS: ${PUBLIC_IP}"
echo "Make sure this IP is allowed in Hostinger -> Databases -> Remote MySQL"
echo "--------------------------------------------------------"
# Wait for database to be ready
echo "Checking database connection..."
python manage.py wait_for_db
# Apply database migrations
echo "Applying database migrations..."
python manage.py migrate
# Collect static files
echo "Collecting static files..."
python manage.py collectstatic --noinput
# Ensure Admin User
echo "Ensuring admin user exists..."
python manage.py ensure_admin
# Start Gunicorn
echo "Starting Gunicorn..."
exec gunicorn config.wsgi:application --bind 0.0.0.0:8000 --workers 3