import uvicorn import os import socket def get_ip_address(): """Get the local IP address of the machine.""" try: # Create a socket connection to an external server s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # Doesn't need to be reachable s.connect(("8.8.8.8", 80)) ip_address = s.getsockname()[0] s.close() return ip_address except Exception as e: print(f"Error getting IP address: {e}") return "127.0.0.1" # Return localhost if there's an error if __name__ == "__main__": # Create static/images directory if it doesn't exist os.makedirs("app/static/images", exist_ok=True) # Get host and port from environment variables (for Hugging Face Spaces) host = os.getenv("HOST", "0.0.0.0") port = int(os.getenv("PORT", "8000")) # Get the IP address for local development ip_address = get_ip_address() # Display access information print("\n" + "=" * 50) print(f"Access from other devices at: http://{ip_address}:{port}") print("=" * 50 + "\n") # Run the application uvicorn.run( "app.main:app", host=host, port=port, reload=os.getenv("ENVIRONMENT") == "development" )