mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-30 18:22:37 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| import signal
 | |
| import subprocess
 | |
| from ipaddress import ip_address
 | |
| from pathlib import Path
 | |
| 
 | |
| from .config import log, non_prefixed_settings, settings
 | |
| 
 | |
| if source_ref := os.getenv("IMMICH_SOURCE_REF"):
 | |
|     log.info(f"Initializing Immich ML [{source_ref}]")
 | |
| else:
 | |
|     log.info("Initializing Immich ML")
 | |
| 
 | |
| module_dir = Path(__file__).parent
 | |
| 
 | |
| 
 | |
| def is_ipv6(host: str) -> bool:
 | |
|     try:
 | |
|         return ip_address(host).version == 6
 | |
|     except ValueError:
 | |
|         return False
 | |
| 
 | |
| 
 | |
| bind_host = non_prefixed_settings.immich_host
 | |
| if is_ipv6(bind_host):
 | |
|     bind_host = f"[{bind_host}]"
 | |
| bind_address = f"{bind_host}:{non_prefixed_settings.immich_port}"
 | |
| 
 | |
| try:
 | |
|     with subprocess.Popen(
 | |
|         [
 | |
|             "python",
 | |
|             "-m",
 | |
|             "gunicorn",
 | |
|             "immich_ml.main:app",
 | |
|             "-k",
 | |
|             "immich_ml.config.CustomUvicornWorker",
 | |
|             "-c",
 | |
|             module_dir / "gunicorn_conf.py",
 | |
|             "-b",
 | |
|             bind_address,
 | |
|             "-w",
 | |
|             str(settings.workers),
 | |
|             "-t",
 | |
|             str(settings.worker_timeout),
 | |
|             "--log-config-json",
 | |
|             module_dir / "log_conf.json",
 | |
|             "--keep-alive",
 | |
|             str(settings.http_keepalive_timeout_s),
 | |
|             "--graceful-timeout",
 | |
|             "10",
 | |
|         ],
 | |
|     ) as cmd:
 | |
|         cmd.wait()
 | |
| except KeyboardInterrupt:
 | |
|     cmd.send_signal(signal.SIGINT)
 | |
| exit(cmd.returncode)
 |