39 lines
993 B
Python
39 lines
993 B
Python
from pydantic_settings import BaseSettings
|
|
from typing import List
|
|
import json
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
# Firebase
|
|
firebase_service_account_path: str = "./firebase-service-account.json"
|
|
firebase_storage_bucket: str = ""
|
|
|
|
# JWT
|
|
jwt_secret_key: str = "change-me-in-production"
|
|
jwt_algorithm: str = "HS256"
|
|
jwt_expiration_minutes: int = 480
|
|
|
|
# MQTT
|
|
mqtt_broker_host: str = "localhost"
|
|
mqtt_broker_port: int = 1883
|
|
mqtt_admin_username: str = "admin"
|
|
mqtt_admin_password: str = ""
|
|
mosquitto_password_file: str = "/etc/mosquitto/passwd"
|
|
|
|
# SQLite (MQTT data storage)
|
|
sqlite_db_path: str = "./mqtt_data.db"
|
|
mqtt_data_retention_days: int = 90
|
|
|
|
# App
|
|
backend_cors_origins: str = '["http://localhost:5173"]'
|
|
debug: bool = True
|
|
|
|
@property
|
|
def cors_origins(self) -> List[str]:
|
|
return json.loads(self.backend_cors_origins)
|
|
|
|
model_config = {"env_file": ".env", "extra": "ignore"}
|
|
|
|
|
|
settings = Settings()
|