54 lines
1.5 KiB
Bash
Executable File
54 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
|
APP_DIR="${APP_DIR:-$SCRIPT_DIR}"
|
|
INSTANCE_DIR="${INSTANCE_DIR:-$APP_DIR/instance}"
|
|
ENV_FILE="${ENV_FILE:-$APP_DIR/.env}"
|
|
DB_FILE="${DB_FILE:-$INSTANCE_DIR/fueltrack.db}"
|
|
|
|
# Uruchamiaj aplikację zawsze z jej właściwego katalogu.
|
|
cd "$APP_DIR"
|
|
|
|
# Wczytaj .env niezależnie od katalogu wywołania skryptu.
|
|
if [[ -f "$ENV_FILE" ]]; then
|
|
set -a
|
|
# shellcheck disable=SC1090
|
|
source "$ENV_FILE"
|
|
set +a
|
|
fi
|
|
|
|
mkdir -p "$INSTANCE_DIR"
|
|
mkdir -p "$(dirname -- "$DB_FILE")"
|
|
|
|
export FLASK_ENV="${FLASK_ENV:-development}"
|
|
export APP_HOST="${APP_HOST:-0.0.0.0}"
|
|
export APP_PORT="${APP_PORT:-8000}"
|
|
export GUNICORN_WORKERS="${GUNICORN_WORKERS:-1}"
|
|
export GUNICORN_THREADS="${GUNICORN_THREADS:-8}"
|
|
export GUNICORN_TIMEOUT="${GUNICORN_TIMEOUT:-0}"
|
|
export GUNICORN_APP="${GUNICORN_APP:-wsgi:app}"
|
|
|
|
# Jeśli DATABASE_URL nie jest ustawione w .env, użyj bezwzględnej
|
|
# ścieżki do pliku SQLite.
|
|
if [[ -z "${DATABASE_URL:-}" ]]; then
|
|
export DATABASE_URL="sqlite:///$DB_FILE"
|
|
fi
|
|
|
|
echo "FuelTrack DEV"
|
|
echo "Katalog aplikacji: $APP_DIR"
|
|
echo "Adres: http://localhost:${APP_PORT}"
|
|
echo "Baza: $DATABASE_URL"
|
|
|
|
exec gunicorn \
|
|
--chdir "$APP_DIR" \
|
|
--reload \
|
|
--access-logfile - \
|
|
--error-logfile - \
|
|
--worker-class gthread \
|
|
--workers "$GUNICORN_WORKERS" \
|
|
--threads "$GUNICORN_THREADS" \
|
|
--timeout "$GUNICORN_TIMEOUT" \
|
|
--bind "$APP_HOST:$APP_PORT" \
|
|
"$GUNICORN_APP"
|