#!/usr/bin/env python3 """ Tabble-v3 Restaurant Management System Entry point for Hugging Face Spaces deployment """ import uvicorn import os import sys from pathlib import Path # Add the app directory to the Python path app_dir = Path(__file__).parent / "app" sys.path.insert(0, str(app_dir)) def main(): """Main entry point for the application""" # Create static directories if they don't exist os.makedirs("app/static/images/dishes", exist_ok=True) os.makedirs("templates", exist_ok=True) # Debug: Check current directory and files print(f"🔍 Current working directory: {os.getcwd()}") print(f"🔍 Files in current directory: {os.listdir('.')}") # Check for database file db_files = [f for f in os.listdir('.') if f.endswith('.db')] print(f"🔍 Database files found: {db_files}") # Ensure database file is accessible source_db = "Tabble.db" try: if os.path.exists(source_db): size = os.path.getsize(source_db) print(f"✅ Database found: {source_db} ({size} bytes)") # Check if file is readable with open(source_db, 'rb') as f: f.read(16) # Try to read first 16 bytes print(f"✅ Database file is readable") else: print(f"⚠️ Database not found at {source_db}, will create new one") except Exception as e: print(f"⚠️ Database file check error: {e}") # Set environment variables for Hugging Face Spaces os.environ.setdefault("HUGGINGFACE_SPACES", "1") # Get port from environment (Hugging Face Spaces uses 7860) port = int(os.environ.get("PORT", 7860)) host = os.environ.get("HOST", "0.0.0.0") print(f"🚀 Starting Tabble-v3 Restaurant Management System") print(f"📡 Server: http://{host}:{port}") print(f"📖 API Documentation: http://{host}:{port}/docs") print(f"🏥 Health Check: http://{host}:{port}/health") print("=" * 60) # Start the FastAPI application uvicorn.run( "app.main:app", host=host, port=port, reload=False, # Disable reload in production log_level="info", access_log=True ) if __name__ == "__main__": main()