32 lines
850 B
Bash
32 lines
850 B
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
APP_DIR="$1"
|
|
PORT="$2"
|
|
DB_PATH="${DJANGO_DB_PATH:-$APP_DIR/db/db.sqlite3}"
|
|
|
|
cd "$APP_DIR"
|
|
|
|
mkdir -p logs static "$(dirname "$DB_PATH")"
|
|
|
|
if [ ! -f "$DB_PATH" ] && [ "${LOAD_FIXTURE_ON_EMPTY_DB:-true}" = "true" ]; then
|
|
TMP_DUMP="$(mktemp)"
|
|
python /app/scripts/rewrite_dumps.py dumps/example.json "$TMP_DUMP"
|
|
python manage.py migrate
|
|
python manage.py loaddata "$TMP_DUMP"
|
|
rm -f "$TMP_DUMP"
|
|
else
|
|
python manage.py migrate
|
|
fi
|
|
|
|
# With DEBUG disabled Django no longer serves app static assets implicitly.
|
|
# Collect them into STATIC_ROOT so the explicit /static/ URL can serve them.
|
|
python manage.py collectstatic --noinput
|
|
|
|
if grep -aEq '127\.0\.0\.1|provider:8002' "$DB_PATH"; then
|
|
echo "Refusing to start: bootstrap data still contains internal/local URLs" >&2
|
|
exit 1
|
|
fi
|
|
|
|
exec python manage.py runserver 0.0.0.0:"$PORT"
|