Завершена настройка домена для дева, теста и прода. Соединение через ssh-туннель

This commit is contained in:
2026-06-16 19:15:54 +03:00
parent 56b5d09a4d
commit b04fbb2e17
14 changed files with 356 additions and 26 deletions
+12 -1
View File
@@ -27,6 +27,11 @@ class Settings(BaseSettings):
app_env: str = "development"
log_level: str = "INFO"
# Публикация локального окружения (dev/test) наружу через VPS-туннель.
# Читает ЛАУНЧЕР (run.ps1/run.sh): local — только localhost; vps — плюс SSH-туннель
# на forbidden-stars.ru. Влияет на cookie_secure (vps ⇒ снаружи HTTPS ⇒ Secure-cookie).
local_public: str = "local"
# Часовой пояс приложения (фиксированное смещение, по умолчанию МСК +3).
# Хранение всегда в UTC; смещение применяется к «дате игры» и отображению.
app_tz_offset_hours: int = 3
@@ -45,7 +50,7 @@ class Settings(BaseSettings):
jwt_algorithm: str = "HS256"
jwt_user_ttl_minutes: int = 60 * 24 * 7
jwt_admin_ttl_minutes: int = 60 * 8
cookie_secure: bool = False
# cookie_secure НЕ задаётся вручную — выводится из окружения (см. property ниже).
cookie_domain: str | None = None
# Аутентификация. Методы входа определяются окружением (dev: telegram+stub,
@@ -92,6 +97,12 @@ class Settings(BaseSettings):
def upload_dir(self) -> str:
return self.dev_upload_dir if self.is_development else self.prod_upload_dir
@property
def cookie_secure(self) -> bool:
"""Secure-cookie нужен везде, где снаружи HTTPS (домен). Исключение —
нативный dev на localhost по HTTP (development + local_public=local)."""
return not (self.is_development and self.local_public.lower() == "local")
@property
def cookie_domain_value(self) -> str | None:
return self.cookie_domain or None