config.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from pydantic_settings import BaseSettings
  2. from functools import lru_cache
  3. class Settings(BaseSettings):
  4. # Database
  5. DB_HOST: str = "47.99.164.66"
  6. DB_PORT: int = 3306
  7. DB_USER: str = "root"
  8. DB_PASSWORD: str = ""
  9. DB_NAME: str = "sx"
  10. # Redis
  11. REDIS_HOST: str = "47.99.164.66"
  12. REDIS_PORT: int = 16379
  13. REDIS_PASSWORD: str = ""
  14. REDIS_DB: int = 12
  15. # MinIO
  16. MINIO_ENDPOINT: str = "47.99.164.66:20004"
  17. MINIO_ACCESS_KEY: str = "minioadmin"
  18. MINIO_SECRET_KEY: str = "minioadmin"
  19. MINIO_BUCKET: str = "ruoyi"
  20. MINIO_SECURE: bool = False
  21. # JWT
  22. JWT_SECRET_KEY: str = "bx-system-jwt-secret-key-2026"
  23. JWT_ALGORITHM: str = "HS256"
  24. JWT_ACCESS_TOKEN_EXPIRE_MINUTES: int = 1440
  25. # App
  26. APP_HOST: str = "0.0.0.0"
  27. APP_PORT: int = 8011
  28. DEBUG: bool = True
  29. @property
  30. def DATABASE_URL(self) -> str:
  31. return (
  32. f"mysql+pymysql://{self.DB_USER}:{self.DB_PASSWORD}"
  33. f"@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}?charset=utf8mb4"
  34. )
  35. @property
  36. def REDIS_URL(self) -> str:
  37. return f"redis://:{self.REDIS_PASSWORD}@{self.REDIS_HOST}:{self.REDIS_PORT}/{self.REDIS_DB}"
  38. model_config = {"env_file": ".env", "env_file_encoding": "utf-8"}
  39. @lru_cache
  40. def get_settings() -> Settings:
  41. return Settings()