import os from datetime import timedelta from pathlib import Path # Project root: backend/app/config.py -> backend/app -> backend -> project_root basedir = Path(__file__).resolve().parent.parent.parent class Config: SECRET_KEY = os.environ.get('SECRET_KEY', 'dev-secret-key-change-me') # Database - always resolve relative to project root _db_default = str(basedir / 'data' / 'minicloud.db') _db_env = os.environ.get('DATABASE_PATH', '') _db_path = str(basedir / _db_env) if _db_env and not os.path.isabs(_db_env) else (_db_env or _db_default) SQLALCHEMY_DATABASE_URI = f'sqlite:///{_db_path}' SQLALCHEMY_TRACK_MODIFICATIONS = False # File uploads - always resolve relative to project root _upload_env = os.environ.get('UPLOAD_PATH', '') UPLOAD_PATH = str(basedir / _upload_env) if _upload_env and not os.path.isabs(_upload_env) else (_upload_env or str(basedir / 'data' / 'files')) MAX_CONTENT_LENGTH = int(os.environ.get('MAX_UPLOAD_SIZE_MB', 500)) * 1024 * 1024 # JWT JWT_SECRET_KEY = os.environ.get('JWT_SECRET_KEY', 'dev-jwt-secret-change-me') JWT_ACCESS_TOKEN_EXPIRES = timedelta( seconds=int(os.environ.get('JWT_ACCESS_TOKEN_EXPIRES', 900)) ) JWT_REFRESH_TOKEN_EXPIRES = timedelta( seconds=int(os.environ.get('JWT_REFRESH_TOKEN_EXPIRES', 604800)) ) # CORS FRONTEND_URL = os.environ.get('FRONTEND_URL', 'http://localhost:3000')