#!/usr/bin/env python3 import os import socket from bookish import create_app app = create_app() def find_free_port(preferred=5000): """Trova una porta libera partendo da preferred.""" for port in range(preferred, preferred + 100): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: if s.connect_ex(("127.0.0.1", port)) != 0: return port with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind(("", 0)) return s.getsockname()[1] if __name__ == "__main__": import sys from config import DEBUG preferred = int(os.environ.get("PORT", "5000")) if len(sys.argv) > 1 and sys.argv[1].isdigit(): preferred = int(sys.argv[1]) port = find_free_port(preferred) print(f"Bookish avviato su http://0.0.0.0:{port} (debug={DEBUG})") app.run(host="0.0.0.0", port=port, debug=DEBUG)