ISO-27001-Risk-Management/startserver.sh

47 lines
No EOL
1.6 KiB
Bash
Executable file

#!/usr/bin/env bash
# -----------------------------------------------------------------------------
# Startup script for the Django project
# -----------------------------------------------------------------------------
# This script ensures that the development environment is ready to run.
#
# Features:
# - Runs database migrations
# - Creates a superuser if it does not already exist
# - Starts the Django development server
#
# Note:
# This script is for local development only.
# In production you should use a proper WSGI/ASGI server (e.g., Gunicorn, Daphne).
# -----------------------------------------------------------------------------
set -e # Exit immediately if a command exits with a non-zero status
# Load environment variables from .env if available
if [ -f ".env" ]; then
export $(grep -v '^#' .env | xargs)
fi
# Ensure we are in the project root directory
cd "$(dirname "$0")"
echo ">>> Running migrations..."
python manage.py migrate --noinput
echo ">>> Checking if superuser exists..."
python manage.py shell <<EOF
from django.contrib.auth import get_user_model
User = get_user_model()
username = "${DJANGO_SUPERUSER_USERNAME:-admin}"
if not User.objects.filter(username=username).exists():
print(f"Creating superuser '{username}'...")
User.objects.create_superuser(
username=username,
email="${DJANGO_SUPERUSER_EMAIL:-admin@example.com}",
password="${DJANGO_SUPERUSER_PASSWORD:-changeme}"
)
else:
print(f"Superuser '{username}' already exists.")
EOF
echo ">>> Starting Django development server at http://127.0.0.1:8000 ..."
python manage.py runserver 0.0.0.0:8000