video_press/start.sh

60 lines
2.2 KiB
Bash
Executable file

#!/usr/bin/env bash
# =============================================================================
# VideoPress — startup script
# Usage: ./start.sh [--prod] [PORT]
# =============================================================================
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
MODE="dev"
PORT=""
for arg in "$@"; do
case "$arg" in
--prod) MODE="prod" ;;
--help|-h)
echo "Usage: $0 [--prod] [PORT]"
echo " --prod Run via Gunicorn+gevent (production)"
echo " PORT Port number (default: 5000 dev / 8080 prod)"
exit 0 ;;
[0-9]*) PORT="$arg" ;;
esac
done
[[ -z "$PORT" ]] && PORT=$( [[ "$MODE" == "prod" ]] && echo "8080" || echo "5000" )
echo ""
echo "============================================================"
echo " VideoPress | mode: $MODE | port: $PORT"
echo "============================================================"
echo ""
check() { command -v "$1" &>/dev/null || { echo "ERROR: $1 not found. $2"; exit 1; }; }
check python3 "Install Python 3.8+"
check ffmpeg "sudo apt install ffmpeg"
check ffprobe "Bundled with ffmpeg"
python3 -c "import flask" 2>/dev/null || { echo "ERROR: Flask missing — pip install -r requirements.txt"; exit 1; }
echo " ✓ Python $(python3 --version)"
echo " ✓ Flask $(python3 -c 'import flask; print(flask.__version__)')"
echo " ✓ FFmpeg available"
echo " MEDIA_ROOT: ${MEDIA_ROOT:-/media (default)}"
echo ""
cd "$SCRIPT_DIR"
if [[ "$MODE" == "prod" ]]; then
python3 -c "import gunicorn" 2>/dev/null || { echo "ERROR: gunicorn missing — pip install -r requirements.txt"; exit 1; }
python3 -c "import gevent" 2>/dev/null || { echo "ERROR: gevent missing — pip install -r requirements.txt"; exit 1; }
echo " Starting Gunicorn on http://0.0.0.0:${PORT}"
echo " Press Ctrl+C to stop."
echo "============================================================"
echo ""
PORT="$PORT" exec gunicorn -c gunicorn.conf.py wsgi:application
else
echo " WARNING: Dev server only — use --prod or Docker for production."
echo " Starting Flask on http://localhost:${PORT}"
echo "============================================================"
echo ""
exec python3 run.py "$PORT"
fi