35 lines
901 B
Python
35 lines
901 B
Python
import secrets
|
|
import logging
|
|
from pydantic_settings import BaseSettings
|
|
from pathlib import Path
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
database_url: str = "sqlite+aiosqlite:////data/medialore.db"
|
|
media_root: str = "/media"
|
|
thumbnail_dir: str = "/data/thumbnails"
|
|
|
|
secret_key: str = ""
|
|
admin_username: str = "admin"
|
|
admin_password: str = ""
|
|
access_token_expire_days: int = 30
|
|
|
|
model_config = {"env_file": ".env"}
|
|
|
|
|
|
settings = Settings()
|
|
|
|
if not settings.secret_key:
|
|
settings.secret_key = secrets.token_urlsafe(32)
|
|
log.warning(
|
|
"SECRET_KEY not set — generated random key: %s. "
|
|
"All sessions will be invalidated on restart. "
|
|
"Set SECRET_KEY in .env for persistent sessions.",
|
|
settings.secret_key,
|
|
)
|
|
|
|
THUMBNAIL_DIR = Path(settings.thumbnail_dir)
|
|
THUMBNAIL_DIR.mkdir(parents=True, exist_ok=True)
|