Files

54 lines
1.8 KiB
Python
Raw Permalink Normal View History

"""Production WSGI entry point — Waitress (Windows) or Gunicorn (Linux)."""
import sys
import os
import config
# Add the setec-web directory to path
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from app import app
def main():
cfg = config.load()
host = "127.0.0.1"
port = cfg.get("flask_port", 5000)
print(f"SETEC LABS Manager starting on http://{host}:{port}")
print(f"Production WSGI server")
if sys.platform == "win32":
try:
import waitress
print("Using Waitress (Windows)")
waitress.serve(app, host=host, port=port, threads=4)
except ImportError:
print("WARNING: waitress not installed, falling back to Flask dev server")
print("Install with: pip install waitress")
app.run(host=host, port=port, debug=False)
else:
try:
import gunicorn # noqa: F401
print("Using Gunicorn (Linux)")
# For gunicorn, use CLI: gunicorn -w 4 -b 127.0.0.1:5000 wsgi:app
# Fallback to waitress if gunicorn imported but we're not in CLI mode
try:
import waitress
waitress.serve(app, host=host, port=port, threads=4)
except ImportError:
app.run(host=host, port=port, debug=False)
except ImportError:
try:
import waitress
print("Using Waitress (Linux)")
waitress.serve(app, host=host, port=port, threads=4)
except ImportError:
print("WARNING: No production server found, falling back to Flask dev server")
print("Install with: pip install waitress OR pip install gunicorn")
app.run(host=host, port=port, debug=False)
if __name__ == "__main__":
main()