From 00de3a41dfc78287dd2c3be95c1a0e2cb1c033aa Mon Sep 17 00:00:00 2001 From: Egor Date: Sun, 28 Sep 2025 03:27:25 +0300 Subject: [PATCH] Allow optional Remnawave integration settings --- app/config.py | 12 ++++++------ app/services/maintenance_service.py | 4 +++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/config.py b/app/config.py index 5d517fc1..9922f9d7 100644 --- a/app/config.py +++ b/app/config.py @@ -38,7 +38,7 @@ class Settings(BaseSettings): CHANNEL_LINK: Optional[str] = None CHANNEL_IS_REQUIRED_SUB: bool = False - DATABASE_URL: Optional[str] = None + DATABASE_URL: Optional[str] = Field(default=None) POSTGRES_HOST: str = "postgres" POSTGRES_PORT: int = 5432 @@ -53,8 +53,8 @@ class Settings(BaseSettings): REDIS_URL: str = "redis://localhost:6379/0" - REMNAWAVE_API_URL: str = "" - REMNAWAVE_API_KEY: str = "" + REMNAWAVE_API_URL: Optional[str] = Field(default=None) + REMNAWAVE_API_KEY: Optional[str] = Field(default=None) REMNAWAVE_SECRET_KEY: Optional[str] = None REMNAWAVE_USERNAME: Optional[str] = None @@ -68,7 +68,7 @@ class Settings(BaseSettings): TRIAL_DEVICE_LIMIT: int = 2 DEFAULT_TRAFFIC_LIMIT_GB: int = 100 DEFAULT_DEVICE_LIMIT: int = 1 - TRIAL_SQUAD_UUID: str = "" + TRIAL_SQUAD_UUID: Optional[str] = Field(default=None) DEFAULT_TRAFFIC_RESET_STRATEGY: str = "MONTH" MAX_DEVICES_LIMIT: int = 20 @@ -389,8 +389,8 @@ class Settings(BaseSettings): def get_remnawave_auth_params(self) -> Dict[str, Optional[str]]: return { - "base_url": self.REMNAWAVE_API_URL, - "api_key": self.REMNAWAVE_API_KEY, + "base_url": (self.REMNAWAVE_API_URL or "").strip(), + "api_key": (self.REMNAWAVE_API_KEY or "").strip(), "secret_key": self.REMNAWAVE_SECRET_KEY, "username": self.REMNAWAVE_USERNAME, "password": self.REMNAWAVE_PASSWORD, diff --git a/app/services/maintenance_service.py b/app/services/maintenance_service.py index ae8f4fb9..95830dd7 100644 --- a/app/services/maintenance_service.py +++ b/app/services/maintenance_service.py @@ -443,10 +443,12 @@ API снова отвечает на запросы.""", "success") emoji = status_emojis.get(status, "ℹ️") + api_url_display = settings.REMNAWAVE_API_URL or "—" + message = f"""Статус панели Remnawave изменился {emoji} Статус: {status.upper()} -🔗 URL: {settings.REMNAWAVE_API_URL} +🔗 URL: {api_url_display} {details}""" alert_type = "error" if status in ["offline", "error"] else "info"