2024-12-11 22:04:11 +00:00
|
|
|
import sys
|
|
|
|
from pathlib import Path
|
|
|
|
|
2024-01-27 08:48:24 +00:00
|
|
|
from granian.constants import Interfaces
|
2024-08-12 08:00:01 +00:00
|
|
|
from granian.log import LogLevels
|
2025-03-05 20:08:21 +00:00
|
|
|
from granian.server import Server
|
2024-05-06 21:06:31 +00:00
|
|
|
|
2024-02-21 20:14:06 +00:00
|
|
|
from settings import PORT
|
2024-08-09 06:37:06 +00:00
|
|
|
from utils.logger import root_logger as logger
|
2024-02-21 20:14:06 +00:00
|
|
|
|
2024-04-17 15:32:23 +00:00
|
|
|
if __name__ == "__main__":
|
|
|
|
logger.info("started")
|
2024-11-01 21:26:57 +00:00
|
|
|
try:
|
2025-03-12 15:06:09 +00:00
|
|
|
|
2025-03-05 20:08:21 +00:00
|
|
|
granian_instance = Server(
|
2024-11-01 21:26:57 +00:00
|
|
|
"main:app",
|
|
|
|
address="0.0.0.0",
|
|
|
|
port=PORT,
|
|
|
|
interface=Interfaces.ASGI,
|
2025-03-25 17:44:05 +00:00
|
|
|
workers=1,
|
2024-11-01 21:26:57 +00:00
|
|
|
websockets=False,
|
|
|
|
log_level=LogLevels.debug,
|
|
|
|
backlog=2048,
|
|
|
|
)
|
2024-11-02 09:09:24 +00:00
|
|
|
|
2024-12-11 22:04:11 +00:00
|
|
|
if "dev" in sys.argv:
|
|
|
|
logger.info("dev mode, building ssl context")
|
|
|
|
granian_instance.build_ssl_context(cert=Path("localhost.pem"), key=Path("localhost-key.pem"), password=None)
|
2024-11-01 21:26:57 +00:00
|
|
|
granian_instance.serve()
|
|
|
|
except Exception as error:
|
2025-02-10 15:04:08 +00:00
|
|
|
logger.error(error, exc_info=True)
|
2024-11-01 21:26:57 +00:00
|
|
|
raise
|
|
|
|
finally:
|
|
|
|
logger.info("stopped")
|