import os from dotenv import load_dotenv # 載入 .env 檔案中的環境變數 load_dotenv() class Config: SECRET_KEY = os.getenv('SECRET_KEY', 'a_default_secret_key_for_development') SQLALCHEMY_DATABASE_URI = os.getenv('DATABASE_URL') SQLALCHEMY_TRACK_MODIFICATIONS = False UPLOAD_FOLDER = 'uploads' GENERATED_FOLDER = 'generated' MAX_CONTENT_LENGTH = 16 * 1024 * 1024 ONLYOFFICE_URL = os.getenv('ONLYOFFICE_URL') ONLYOFFICE_INTERNAL_URL = os.getenv('ONLYOFFICE_INTERNAL_URL', os.getenv('ONLYOFFICE_URL')) ONLYOFFICE_JWT_SECRET = os.getenv('ONLYOFFICE_JWT_SECRET') # Redis 快取配置 CACHE_TYPE = "redis" CACHE_REDIS_URL = os.getenv('REDIS_URL', 'redis://redis:6379/0') CACHE_DEFAULT_TIMEOUT = 300 # 5分鐘 # 會話快取配置 SESSION_TYPE = 'redis' SESSION_REDIS = None # 將在 app 初始化時設定 SESSION_PERMANENT = False SESSION_USE_SIGNER = True SESSION_KEY_PREFIX = 'tempspec:' # CDN 配置 CDN_DOMAIN = os.getenv('CDN_DOMAIN', '') STATIC_URL_PATH = '/static' # LDAP Configuration LDAP_SERVER = os.getenv('LDAP_SERVER') LDAP_PORT = int(os.getenv('LDAP_PORT', 389)) LDAP_USE_SSL = os.getenv('LDAP_USE_SSL', 'false').lower() in ['true', '1', 't'] LDAP_BIND_USER_DN = os.getenv('LDAP_BIND_USER_DN') LDAP_BIND_USER_PASSWORD = os.getenv('LDAP_BIND_USER_PASSWORD') LDAP_SEARCH_BASE = os.getenv('LDAP_SEARCH_BASE') # e.g., 'ou=users,dc=panjit,dc=com,dc=tw' LDAP_USER_LOGIN_ATTR = os.getenv('LDAP_USER_LOGIN_ATTR', 'userPrincipalName') # AD attribute for user login (e.g., user@panjit.com.tw) # SMTP Configuration SMTP_SERVER = os.getenv('SMTP_SERVER', 'mail.panjit.com.tw') SMTP_PORT = int(os.getenv('SMTP_PORT', 25)) SMTP_USE_TLS = os.getenv('SMTP_USE_TLS', 'false').lower() in ['true', '1', 't'] SMTP_USE_SSL = os.getenv('SMTP_USE_SSL', 'false').lower() in ['true', '1', 't'] SMTP_SENDER_EMAIL = os.getenv('SMTP_SENDER_EMAIL', 'temp-spec-system@panjit.com.tw') SMTP_SENDER_PASSWORD = os.getenv('SMTP_SENDER_PASSWORD', '') # Port 25 不需要密碼 SMTP_AUTH_REQUIRED = os.getenv('SMTP_AUTH_REQUIRED', 'false').lower() in ['true', '1', 't']