video-query/backend/run.py
2025-09-18 14:25:24 -05:00

40 lines
No EOL
1.3 KiB
Python
Executable file

#!/usr/bin/env python
import os
import argparse
from hypercorn.config import Config
from hypercorn.asyncio import serve
import asyncio
from dotenv import load_dotenv
# Load environment variables from .env file
load_dotenv()
from app import app
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Run the Video Query backend server")
parser.add_argument("--host", default="0.0.0.0", help="Host IP address to bind to")
parser.add_argument("--port", type=int, default=5010, help="Port to bind to")
args = parser.parse_args()
config = Config()
config.bind = [f"{args.host}:{args.port}"]
# Set large file upload size limit (5GB)
config.h11_max_incomplete_size = 5 * 1024 * 1024 * 1024
# Increase timeouts for large uploads
config.keep_alive_timeout = 3600 # 60 minutes
# Set configuration values to help with large file uploads
config.websocket_ping_interval = 20 # Send ping frames every 20 seconds to keep connection alive
config.graceful_timeout = 3600 # Allow up to 1 hour for requests to complete during shutdown
# Other helpful settings for large files
config.worker_class = "asyncio"
config.backlog = 100
config.read_timeout = 3600 # 60 minutes
config.write_timeout = 3600 # 60 minutes
# Run with Hypercorn
asyncio.run(serve(app, config))