| #!/usr/bin/env python3 | |
| """ | |
| Startup script for Hugging Face Spaces deployment | |
| """ | |
| import os | |
| import sys | |
| import logging | |
| # Set up logging | |
| logging.basicConfig(level=logging.INFO) | |
| logger = logging.getLogger(__name__) | |
| def main(): | |
| """Main startup function for HF Spaces""" | |
| # Log environment information | |
| print("π Starting Audit Checklist API on Hugging Face Spaces") | |
| print(f"Python version: {sys.version}") | |
| print(f"Working directory: {os.getcwd()}") | |
| # Check environment variables | |
| mongodb_uri = os.getenv('MONGODB_URI') | |
| port = os.getenv('PORT', '8000') | |
| print(f"PORT: {port}") | |
| if mongodb_uri: | |
| print(f"MONGODB_URI: {'*' * 50}") | |
| else: | |
| print("β οΈ MONGODB_URI not found in environment variables!") | |
| print("β οΈ Please set MONGODB_URI in your HF Space settings") | |
| print("β οΈ Expected format: mongodb+srv://username:password@cluster.mongodb.net/database") | |
| # Import and run the FastAPI app | |
| try: | |
| import uvicorn | |
| from app import app | |
| print("β FastAPI app imported successfully") | |
| print(f"π Starting server on port {port}") | |
| uvicorn.run( | |
| app, | |
| host="0.0.0.0", | |
| port=int(port), | |
| log_level="info" | |
| ) | |
| except Exception as e: | |
| print(f"β Failed to start application: {e}") | |
| import traceback | |
| traceback.print_exc() | |
| sys.exit(1) | |
| if __name__ == "__main__": | |
| main() | |