File size: 1,449 Bytes
c02c6ce
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env python
"""
Startup script for Fridge Vision API.
Run: python run_server.py
"""

import os
import sys
import logging
from pathlib import Path

# Add project root to path
PROJECT_ROOT = Path(__file__).parent
sys.path.insert(0, str(PROJECT_ROOT))

from config import get_config, print_config, API_CONFIG, LOG_LEVEL

# Configure logging
logging.basicConfig(
    level=LOG_LEVEL,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)


def main():
    """Start the Fridge Vision API server."""
    try:
        # Print configuration
        print_config()
        
        # Import FastAPI app
        from api.main import app
        import uvicorn
        
        logger.info("Starting Fridge Vision API server...")
        logger.info(f"Host: {API_CONFIG['host']}")
        logger.info(f"Port: {API_CONFIG['port']}")
        logger.info(f"Debug: {API_CONFIG['debug']}")
        logger.info(f"Reload: {API_CONFIG['reload']}")
        
        # Run server
        uvicorn.run(
            app,
            host=API_CONFIG['host'],
            port=API_CONFIG['port'],
            reload=API_CONFIG['reload'],
            log_level=LOG_LEVEL.lower()
        )
    
    except KeyboardInterrupt:
        logger.info("Server stopped by user")
    except Exception as e:
        logger.error(f"Server error: {e}", exc_info=True)
        sys.exit(1)


if __name__ == "__main__":
    main()