"""Application Settings""" import os from datetime import timedelta # ===== ENVIRONMENT ===== DEBUG = os.getenv('FLASK_DEBUG', 'False').lower() == 'true' ENV = os.getenv('FLASK_ENV', 'production') # ===== BASE PATHS ===== BASE_DIR = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) INSTANCE_DIR = os.path.join(BASE_DIR, 'instance') UPLOAD_FOLDER = os.path.join(BASE_DIR, 'uploads/certificates') HAPROXY_BACKUP_DIR = os.path.join(BASE_DIR, 'backups') # ===== DATABASE ===== SQLALCHEMY_DATABASE_URI = os.getenv( 'DATABASE_URL', f'sqlite:///{os.path.join(INSTANCE_DIR, "app.db")}' ) SQLALCHEMY_TRACK_MODIFICATIONS = False # ===== FLASK SETTINGS ===== SECRET_KEY = os.getenv('SECRET_KEY', 'dev-secret-key-change-in-production') PERMANENT_SESSION_LIFETIME = timedelta(days=7) SESSION_COOKIE_SECURE = True SESSION_COOKIE_HTTPONLY = True SESSION_COOKIE_SAMESITE = 'Lax' # ===== HAPROXY ===== HAPROXY_CONFIG_PATH = os.getenv('HAPROXY_CONFIG_PATH', '/etc/haproxy/haproxy.cfg') HAPROXY_BACKUP_DIR = os.path.join(BASE_DIR, 'backups') HAPROXY_STATS_PORT = int(os.getenv('HAPROXY_STATS_PORT', '8404')) # ===== SSL ===== SSL_INI = os.path.join(BASE_DIR, 'config', 'ssl.ini') # ===== MAX UPLOAD SIZE ===== MAX_CONTENT_LENGTH = 16 * 1024 * 1024 # 16MB # ===== LOGGING ===== LOG_LEVEL = os.getenv('LOG_LEVEL', 'INFO') LOG_FILE = os.path.join(BASE_DIR, 'logs', 'app.log') os.makedirs(INSTANCE_DIR, exist_ok=True) os.makedirs(UPLOAD_FOLDER, exist_ok=True) os.makedirs(HAPROXY_BACKUP_DIR, exist_ok=True) os.makedirs(os.path.dirname(LOG_FILE), exist_ok=True)