48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
"""
|
|
Configuration module for Session Management Service
|
|
|
|
Centralized configuration loading from environment variables with defaults.
|
|
"""
|
|
|
|
import os
|
|
from pathlib import Path
|
|
|
|
|
|
# Session storage configuration
|
|
SESSIONS_DIR = Path("/app/sessions")
|
|
SESSIONS_FILE = Path("/app/sessions/sessions.json")
|
|
|
|
# Container configuration
|
|
CONTAINER_IMAGE = os.getenv("CONTAINER_IMAGE", "lovdata-opencode:latest")
|
|
|
|
# Resource limits - configurable via environment variables with defaults
|
|
CONTAINER_MEMORY_LIMIT = os.getenv(
|
|
"CONTAINER_MEMORY_LIMIT", "4g"
|
|
) # Memory limit per container
|
|
CONTAINER_CPU_QUOTA = int(
|
|
os.getenv("CONTAINER_CPU_QUOTA", "100000")
|
|
) # CPU quota (100000 = 1 core)
|
|
CONTAINER_CPU_PERIOD = int(
|
|
os.getenv("CONTAINER_CPU_PERIOD", "100000")
|
|
) # CPU period (microseconds)
|
|
|
|
# Session management
|
|
MAX_CONCURRENT_SESSIONS = int(
|
|
os.getenv("MAX_CONCURRENT_SESSIONS", "3")
|
|
) # Max concurrent sessions
|
|
SESSION_TIMEOUT_MINUTES = int(
|
|
os.getenv("SESSION_TIMEOUT_MINUTES", "60")
|
|
) # Auto-cleanup timeout
|
|
|
|
# Resource monitoring thresholds
|
|
MEMORY_WARNING_THRESHOLD = float(
|
|
os.getenv("MEMORY_WARNING_THRESHOLD", "0.8")
|
|
) # 80% memory usage
|
|
CPU_WARNING_THRESHOLD = float(
|
|
os.getenv("CPU_WARNING_THRESHOLD", "0.9")
|
|
) # 90% CPU usage
|
|
|
|
# Feature flags
|
|
USE_ASYNC_DOCKER = os.getenv("USE_ASYNC_DOCKER", "true").lower() == "true"
|
|
USE_DATABASE_STORAGE = os.getenv("USE_DATABASE_STORAGE", "true").lower() == "true"
|