41 lines
1.1 KiB
Bash
41 lines
1.1 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
# Определяем окружение (по умолчанию production)
|
|
ENVIRONMENT=${ENVIRONMENT:-production}
|
|
|
|
echo "Starting in $ENVIRONMENT mode..."
|
|
|
|
if [ -d "logs" ]; then
|
|
echo "Directory logs already exists."
|
|
else
|
|
echo "Creating logs directory..."
|
|
mkdir -p logs
|
|
fi
|
|
|
|
echo "Waiting for PostgreSQL..."
|
|
until PGPASSWORD=$DB_PASSWORD psql -h "$DB_HOST" -U "$DB_USER" -d "$DB_NAME" -c '\q' 2>/dev/null; do
|
|
echo "PostgreSQL is unavailable - sleeping"
|
|
sleep 1
|
|
done
|
|
echo "PostgreSQL started"
|
|
|
|
echo "Running migrations..."
|
|
uv run python manage.py migrate --noinput
|
|
|
|
if [ "$ENVIRONMENT" = "production" ]; then
|
|
echo "Collecting static files..."
|
|
uv run python manage.py collectstatic --noinput
|
|
fi
|
|
|
|
if [ "$ENVIRONMENT" = "development" ]; then
|
|
echo "Starting Django development server..."
|
|
exec uv run python manage.py runserver 0.0.0.0:8000
|
|
else
|
|
echo "Starting Gunicorn..."
|
|
exec uv run gunicorn --bind 0.0.0.0:8000 \
|
|
--workers ${GUNICORN_WORKERS:-3} \
|
|
--timeout ${GUNICORN_TIMEOUT:-120} \
|
|
dbapp.wsgi:application
|
|
fi
|