config.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import os
  2. from dotenv import load_dotenv
  3. load_dotenv()
  4. class Settings:
  5. PROJECT_NAME: str = "Data Nexus"
  6. VERSION: str = "0.1.0"
  7. # Database
  8. DB_USER: str = os.getenv("DB_USER", "root")
  9. DB_PASSWORD: str = os.getenv("DB_PASSWORD", "")
  10. DB_HOST: str = os.getenv("DB_HOST", "localhost")
  11. DB_PORT: str = os.getenv("DB_PORT", "3306")
  12. DB_NAME: str = os.getenv("DB_NAME", "data_nexus")
  13. DATABASE_URL: str = f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}"
  14. # Gogs
  15. GOGS_URL: str = os.getenv("GOGS_URL", "http://localhost:3000")
  16. GOGS_TOKEN: str = os.getenv("GOGS_TOKEN", "")
  17. GOGS_SECRET: str = os.getenv("GOGS_SECRET", "") # Webhook secret
  18. GOGS_WEBHOOK_URL: str = os.getenv("GOGS_WEBHOOK_URL", "") # Webhook callback URL for auto-config
  19. GOGS_WEBHOOK_SECRET: str = os.getenv("GOGS_WEBHOOK_SECRET", "") # Webhook signature secret
  20. # Storage
  21. STORAGE_ROOT: str = os.getenv("STORAGE_ROOT", "/data/storage")
  22. # OSS
  23. OSS_ACCESS_KEY_ID: str = os.getenv("OSS_ACCESS_KEY_ID", "")
  24. OSS_ACCESS_KEY_SECRET: str = os.getenv("OSS_ACCESS_KEY_SECRET", "")
  25. OSS_ENDPOINT: str = os.getenv("OSS_ENDPOINT", "") # e.g., oss-cn-hangzhou.aliyuncs.com
  26. OSS_BUCKET_NAME: str = os.getenv("OSS_BUCKET_NAME", "")
  27. OSS_PREFIX: str = os.getenv("OSS_PREFIX", "data_nexus") # 存储前缀
  28. OSS_CDN_URL: str = os.getenv("OSS_CDN_URL", "https://res-bj.cybertogether.net") # CDN 域名
  29. settings = Settings()