- login_required валидирует существование юзера в БД: при устаревшей session (user_id ссылается на удалённую запись после пересоздания БД) чистим session и редиректим на /login вместо 500 на user["is_admin"] - entrypoint.sh чистит /tmp/.X1-lock перед Xvfb — иначе после креша контейнера повторный старт падает с "Server is already active" - CHANGELOG: запись v2.4.0 (Novicam integration) + v2.4.1 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
19 lines
614 B
Bash
19 lines
614 B
Bash
#!/bin/bash
|
||
# Запускает Xvfb на DISPLAY :1 для wine PlayCtrl.dll, потом gunicorn.
|
||
set -e
|
||
|
||
# Очищаем stale lock от предыдущего крешнутого запуска
|
||
rm -f /tmp/.X1-lock /tmp/.X11-unix/X1 2>/dev/null || true
|
||
|
||
# Xvfb в фоне. -nolisten tcp чтобы не ловили извне.
|
||
Xvfb :1 -screen 0 640x480x8 -nolisten tcp &
|
||
XVFB_PID=$!
|
||
|
||
# Xvfb обычно поднимается за <1с
|
||
sleep 1
|
||
|
||
trap "kill $XVFB_PID 2>/dev/null || true" EXIT
|
||
|
||
exec gunicorn --bind 0.0.0.0:8000 --workers 1 --threads 16 \
|
||
--timeout 3600 --worker-class gthread app:app
|