Files

40 lines
1.0 KiB
Python

"""WSGI entrypoint for production deployments.
This module is what Gunicorn imports.
We also start background tasks that are normally started in run.py:
- UDP trigger listener
- event expiry monitor
"""
from __future__ import annotations
import os
from app import create_app
from models import db
from sockets import start_event_monitor
from udp_listener import start_udp_listener
app = create_app()
# Ensure DB exists on first boot (SQLite-based default).
with app.app_context():
db.create_all()
def _start_background_tasks() -> None:
start_udp_listener(app)
start_event_monitor(app)
# With Gunicorn the module can be imported multiple times (worker processes).
# This app is designed for LAN/kiosk setups; we intentionally run a single worker
# by default to avoid duplicated UDP listeners.
if os.environ.get("SYNCPLAYER_START_TASKS", "1") in ("1", "true", "yes"):
_start_background_tasks()
# Note: create_app() calls socketio.init_app(app), which wraps app.wsgi_app.
# For Gunicorn, we can export the Flask app directly.