# SPDX-License-Identifier: GPL-3.0-only """Server configuration, loaded from environment / .env (see .env.example). Everything points at self-hosted services by default: local object storage, a local Ollama, and a local faster-whisper model. Nothing here requires a proprietary cloud. """ from __future__ import annotations from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): model_config = SettingsConfigDict(env_prefix="OPENSCRIBE_", env_file=".env") # API api_token: str = "change-me" # bearer token for write endpoints # Storage: "local" | "s3" | "webdav" storage_backend: str = "local" local_media_dir: str = "./media" # S3-compatible (MinIO) - used when storage_backend == "s3" s3_endpoint: str = "http://localhost:9000" s3_bucket: str = "openscribe" s3_access_key: str = "" s3_secret_key: str = "" # Metadata DB (SQLite to start; Postgres URL later) database_url: str = "sqlite:///./openscribe.db" # Transcription (faster-whisper) whisper_model: str = "base" # tiny|base|small|medium|large-v3 whisper_device: str = "cpu" # cpu|cuda whisper_compute_type: str = "int8" # Summarisation (Ollama, self-hosted) ollama_url: str = "http://localhost:11434" ollama_model: str = "llama3.1" settings = Settings()