"""Настройки веб-приложения из переменных окружения (и опционально ``.env`` в рабочем каталоге). Автор: Сергей Антропов Сайт: https://devops.org.ru """ from __future__ import annotations from pathlib import Path from pydantic import Field from pydantic_settings import BaseSettings, SettingsConfigDict # Каталог пакета app/ — для поиска .env рядом с кодом (в образе: /opt/kind-k8s/app). _APP_DIR = Path(__file__).resolve().parents[1] _REPO_ROOT = _APP_DIR.parent class Settings(BaseSettings): """Параметры HTTP-сервера и поведения UI.""" model_config = SettingsConfigDict( env_file=( str(_REPO_ROOT / ".env"), str(_APP_DIR / ".env"), ), env_file_encoding="utf-8", extra="ignore", case_sensitive=False, ) kind_k8s_web_host: str = Field(default="0.0.0.0", validation_alias="KIND_K8S_WEB_HOST") kind_k8s_web_port: int = Field(default=6000, validation_alias="KIND_K8S_WEB_PORT") # Заголовок в OpenAPI / HTML (без хардкода в шаблонах). app_title: str = Field(default="kind-k8s-develop", validation_alias="KIND_K8S_APP_TITLE") def get_settings() -> Settings: """Экземпляр настроек (для импорта в main и роутерах).""" return Settings()