File size: 1,187 Bytes
8754765 |
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 |
#!/usr/bin/env python3
import os
import socket
import uvicorn
from blackbox_server import app
try:
from config import SERVER_CONFIG
except Exception:
SERVER_CONFIG = {"host": "0.0.0.0", "port": 8090}
def find_free_port(start_port: int, max_tries: int = 50) -> int:
"""Find an available TCP port starting from start_port."""
for port in range(start_port, start_port + max_tries):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
try:
s.bind(("0.0.0.0", port))
return port
except OSError:
continue
return start_port
if __name__ == "__main__":
host = SERVER_CONFIG.get("host", "0.0.0.0")
base_port = int(os.getenv("PORT") or SERVER_CONFIG.get("port", 8090))
port = find_free_port(base_port)
if port != base_port:
print(f"⚠️ Port {base_port} in use. Switching to free port {port}.")
print(f"🚀 Starting Blackbox Reverse OpenAI API Server on {host}:{port} ...")
uvicorn.run(app, host=host, port=port, reload=False, log_level="info")
|