26 lines
846 B
Python
26 lines
846 B
Python
#!/usr/bin/env python3
|
|
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
|
|
# fallback: lascia che il sistema assegni una porta
|
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
|
s.bind(("", 0))
|
|
return s.getsockname()[1]
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import sys
|
|
preferred = int(sys.argv[1]) if len(sys.argv) > 1 and sys.argv[1].isdigit() else 5000
|
|
port = find_free_port(preferred)
|
|
print(f"📚 Bookish avviato su http://0.0.0.0:{port}")
|
|
app.run(host="0.0.0.0", port=port, debug=True)
|