File size: 966 Bytes
15e3224
 
 
 
 
e60433b
 
15e3224
e60433b
15e3224
 
 
 
e60433b
 
 
 
 
 
 
 
 
 
 
 
 
 
15e3224
 
 
e60433b
 
 
15e3224
 
 
 
54ebea5
e60433b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
"""
server/app.py — OpenEnv required server entry point.
Delegates to the main FastAPI application.
"""
import os
import sys
import uvicorn

# Ensure project root is on path before local imports
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from app.main import app  # noqa: F401 — re-exported for openenv

# Named Constants
DEFAULT_HOST = "0.0.0.0"
DEFAULT_PORT = 7860
DEFAULT_WORKERS = 2


def main() -> None:
    """Entry point for [project.scripts] server = 'server.app:main'"""
    port_str: str = os.environ.get("PORT", str(DEFAULT_PORT))
    
    try:
        port_num: int = int(port_str)
    except ValueError as e:
        raise ValueError(f"Invalid PORT environment variable: '{port_str}'. Must be an integer.") from e

    uvicorn.run(
        "app.main:app",
        host=DEFAULT_HOST,
        port=port_num,
        workers=DEFAULT_WORKERS,
        log_level="info",
    )


if __name__ == '__main__':
    main()