diff --git a/.env.example b/.env.example index 77f05953..c20a8d65 100644 --- a/.env.example +++ b/.env.example @@ -161,6 +161,7 @@ TRIBUTE_ENABLED=false TRIBUTE_API_KEY= TRIBUTE_DONATE_LINK= TRIBUTE_WEBHOOK_PATH=/tribute-webhook +TRIBUTE_WEBHOOK_HOST=0.0.0.0 TRIBUTE_WEBHOOK_PORT=8081 # YooKassa (https://yookassa.ru) @@ -211,6 +212,7 @@ YOOKASSA_PAYMENT_SUBJECT=service # Webhook настройки YOOKASSA_WEBHOOK_PATH=/yookassa-webhook +YOOKASSA_WEBHOOK_HOST=0.0.0.0 YOOKASSA_WEBHOOK_PORT=8082 YOOKASSA_WEBHOOK_SECRET=your_webhook_secret diff --git a/README.md b/README.md index 71c70984..d3ec0cc4 100644 --- a/README.md +++ b/README.md @@ -710,6 +710,7 @@ TRIBUTE_ENABLED=false TRIBUTE_API_KEY= TRIBUTE_DONATE_LINK= TRIBUTE_WEBHOOK_PATH=/tribute-webhook +TRIBUTE_WEBHOOK_HOST=0.0.0.0 TRIBUTE_WEBHOOK_PORT=8081 # YooKassa (https://yookassa.ru) @@ -760,6 +761,7 @@ YOOKASSA_PAYMENT_SUBJECT=service # Webhook настройки YOOKASSA_WEBHOOK_PATH=/yookassa-webhook +YOOKASSA_WEBHOOK_HOST=0.0.0.0 YOOKASSA_WEBHOOK_PORT=8082 YOOKASSA_WEBHOOK_SECRET=your_webhook_secret diff --git a/app/config.py b/app/config.py index 2af377a7..4d2f184a 100644 --- a/app/config.py +++ b/app/config.py @@ -149,6 +149,7 @@ class Settings(BaseSettings): TRIBUTE_API_KEY: Optional[str] = None TRIBUTE_DONATE_LINK: Optional[str] = None TRIBUTE_WEBHOOK_PATH: str = "/tribute-webhook" + TRIBUTE_WEBHOOK_HOST: str = "0.0.0.0" TRIBUTE_WEBHOOK_PORT: int = 8081 YOOKASSA_ENABLED: bool = False @@ -158,9 +159,10 @@ class Settings(BaseSettings): YOOKASSA_DEFAULT_RECEIPT_EMAIL: Optional[str] = None YOOKASSA_VAT_CODE: int = 1 YOOKASSA_SBP_ENABLED: bool = False - YOOKASSA_PAYMENT_MODE: str = "full_payment" + YOOKASSA_PAYMENT_MODE: str = "full_payment" YOOKASSA_PAYMENT_SUBJECT: str = "service" YOOKASSA_WEBHOOK_PATH: str = "/yookassa-webhook" + YOOKASSA_WEBHOOK_HOST: str = "0.0.0.0" YOOKASSA_WEBHOOK_PORT: int = 8082 YOOKASSA_WEBHOOK_SECRET: Optional[str] = None YOOKASSA_MIN_AMOUNT_KOPEKS: int = 5000 diff --git a/app/external/webhook_server.py b/app/external/webhook_server.py index d11f75da..99531c59 100644 --- a/app/external/webhook_server.py +++ b/app/external/webhook_server.py @@ -66,20 +66,37 @@ class WebhookServer: self.site = web.TCPSite( self.runner, - host='0.0.0.0', + host=settings.TRIBUTE_WEBHOOK_HOST, port=settings.TRIBUTE_WEBHOOK_PORT ) - + await self.site.start() - - logger.info(f"Webhook сервер запущен на порту {settings.TRIBUTE_WEBHOOK_PORT}") - logger.info(f"Tribute webhook URL: http://0.0.0.0:{settings.TRIBUTE_WEBHOOK_PORT}{settings.TRIBUTE_WEBHOOK_PATH}") + + logger.info( + "Webhook сервер запущен на %s:%s", + settings.TRIBUTE_WEBHOOK_HOST, + settings.TRIBUTE_WEBHOOK_PORT, + ) + logger.info( + "Tribute webhook URL: http://%s:%s%s", + settings.TRIBUTE_WEBHOOK_HOST, + settings.TRIBUTE_WEBHOOK_PORT, + settings.TRIBUTE_WEBHOOK_PATH, + ) if settings.is_mulenpay_enabled(): logger.info( - f"Mulen Pay webhook URL: http://0.0.0.0:{settings.TRIBUTE_WEBHOOK_PORT}{settings.MULENPAY_WEBHOOK_PATH}" + "Mulen Pay webhook URL: http://%s:%s%s", + settings.TRIBUTE_WEBHOOK_HOST, + settings.TRIBUTE_WEBHOOK_PORT, + settings.MULENPAY_WEBHOOK_PATH, ) if settings.is_cryptobot_enabled(): - logger.info(f"CryptoBot webhook URL: http://0.0.0.0:{settings.TRIBUTE_WEBHOOK_PORT}{settings.CRYPTOBOT_WEBHOOK_PATH}") + logger.info( + "CryptoBot webhook URL: http://%s:%s%s", + settings.TRIBUTE_WEBHOOK_HOST, + settings.TRIBUTE_WEBHOOK_PORT, + settings.CRYPTOBOT_WEBHOOK_PATH, + ) except Exception as e: logger.error(f"Ошибка запуска webhook сервера: {e}") diff --git a/app/external/yookassa_webhook.py b/app/external/yookassa_webhook.py index 1ad9bee8..dac8b269 100644 --- a/app/external/yookassa_webhook.py +++ b/app/external/yookassa_webhook.py @@ -218,15 +218,24 @@ async def start_yookassa_webhook_server(payment_service: PaymentService) -> None await runner.setup() site = web.TCPSite( - runner, - host='0.0.0.0', + runner, + host=settings.YOOKASSA_WEBHOOK_HOST, port=settings.YOOKASSA_WEBHOOK_PORT ) await site.start() - logger.info(f"✅ YooKassa webhook сервер запущен на порту {settings.YOOKASSA_WEBHOOK_PORT}") - logger.info(f"🎯 YooKassa webhook URL: http://0.0.0.0:{settings.YOOKASSA_WEBHOOK_PORT}{settings.YOOKASSA_WEBHOOK_PATH}") + logger.info( + "✅ YooKassa webhook сервер запущен на %s:%s", + settings.YOOKASSA_WEBHOOK_HOST, + settings.YOOKASSA_WEBHOOK_PORT, + ) + logger.info( + "🎯 YooKassa webhook URL: http://%s:%s%s", + settings.YOOKASSA_WEBHOOK_HOST, + settings.YOOKASSA_WEBHOOK_PORT, + settings.YOOKASSA_WEBHOOK_PATH, + ) try: while True: