Initial Commit
This commit is contained in:
commit
e2f743e8bc
11 changed files with 3104 additions and 0 deletions
60
start.sh
Normal file
60
start.sh
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
#!/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:app
|
||||
else
|
||||
echo " WARNING: Dev server only — use --prod or Docker for production."
|
||||
echo " Starting Flask on http://localhost:${PORT}"
|
||||
echo "============================================================"
|
||||
echo ""
|
||||
exec python3 app.py "$PORT"
|
||||
fi
|
||||
Loading…
Add table
Add a link
Reference in a new issue