Release 0.9.0
This commit is contained in:
32
wsgi.py
Normal file
32
wsgi.py
Normal file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env python3
|
||||
# coding=utf-8
|
||||
"""
|
||||
WSGI Entry Point for Gunicorn
|
||||
|
||||
This file is used when running the application with gunicorn.
|
||||
It sets up all modules and exposes the Flask app for the WSGI server.
|
||||
"""
|
||||
import os
|
||||
from bot import setup_modules, start_modules, started_modules_dict
|
||||
|
||||
# Signal to modules that we're running under a WSGI server
|
||||
os.environ['RUNNING_UNDER_WSGI'] = 'true'
|
||||
|
||||
# Initialize all modules
|
||||
setup_modules()
|
||||
start_modules()
|
||||
|
||||
# Get the webserver module and its Flask app
|
||||
webserver_module = started_modules_dict.get('module_webserver')
|
||||
if not webserver_module:
|
||||
raise RuntimeError("Webserver module not found! Make sure it's properly configured.")
|
||||
|
||||
# Expose the Flask WSGI application for gunicorn
|
||||
# With Socket.IO we serve WebSockets via gunicorn's gevent-websocket worker.
|
||||
# Therefore the WSGI callable must be the underlying Flask app, not the SocketIO object.
|
||||
application = webserver_module.app
|
||||
|
||||
# For debugging
|
||||
if __name__ == "__main__":
|
||||
print("This file is meant to be run with gunicorn.")
|
||||
print("Example: gunicorn -c gunicorn.conf.py wsgi:application")
|
||||
Reference in New Issue
Block a user