Files
serv_benchmark/backend/app/core/config.py
Gilles Soulier c67befc549 addon
2026-01-05 16:08:01 +01:00

62 lines
1.8 KiB
Python
Executable File

"""
Linux BenchTools - Configuration
"""
import os
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
"""Application settings"""
# API Configuration
API_TOKEN: str = os.getenv("API_TOKEN", "CHANGE_ME_INSECURE_DEFAULT")
API_PREFIX: str = "/api"
# Database - Main (Benchmarks)
DATABASE_URL: str = os.getenv("DATABASE_URL", "sqlite:///./backend/data/data.db")
# Database - Peripherals (Separate DB)
PERIPHERALS_DB_URL: str = os.getenv("PERIPHERALS_DB_URL", "sqlite:///./backend/data/peripherals.db")
# Module Peripherals
PERIPHERALS_MODULE_ENABLED: bool = os.getenv("PERIPHERALS_MODULE_ENABLED", "true").lower() == "true"
# Upload configuration
UPLOAD_DIR: str = os.getenv("UPLOAD_DIR", "./uploads")
PERIPHERALS_UPLOAD_DIR: str = os.getenv("PERIPHERALS_UPLOAD_DIR", "./uploads/peripherals")
MAX_UPLOAD_SIZE: int = 50 * 1024 * 1024 # 50 MB
# Image compression
IMAGE_COMPRESSION_ENABLED: bool = True
IMAGE_COMPRESSION_QUALITY: int = 85
IMAGE_MAX_WIDTH: int = 1920
IMAGE_MAX_HEIGHT: int = 1080
THUMBNAIL_SIZE: int = 48
THUMBNAIL_QUALITY: int = 75
THUMBNAIL_FORMAT: str = "webp"
# CORS
CORS_ORIGINS: list = ["*"] # For local network access
# Application info
APP_NAME: str = "Linux BenchTools"
APP_VERSION: str = "1.0.0"
APP_DESCRIPTION: str = "Self-hosted benchmarking and hardware inventory for Linux machines"
# Score weights for global score calculation
# CPU weight is double the base weight (0.40 vs 0.20)
SCORE_WEIGHT_CPU: float = 0.40
SCORE_WEIGHT_MEMORY: float = 0.20
SCORE_WEIGHT_DISK: float = 0.20
SCORE_WEIGHT_NETWORK: float = 0.10
SCORE_WEIGHT_GPU: float = 0.10
class Config:
case_sensitive = True
env_file = ".env"
# Global settings instance
settings = Settings()