From e29f7234862042c4755283ba1d665263e26ab45f Mon Sep 17 00:00:00 2001 From: kavore <161734431+kavore@users.noreply.github.com> Date: Sun, 8 Feb 2026 21:27:11 +0300 Subject: [PATCH] docs(env): align .env.example and README with security changes --- .env.example | 19 ++++++++----------- README.md | 7 +++++-- config/settings.py | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.env.example b/.env.example index b1b0845..0e59912 100644 --- a/.env.example +++ b/.env.example @@ -30,17 +30,19 @@ REQUIRED_CHANNEL_LINK=https://t.me/your_channel # # Webhook Base URL (used for Telegram and payment providers) WEBHOOK_BASE_URL=https://webhooks.yourdomain.tld +TELEGRAM_WEBHOOK_PATH=/webhook/telegram # Relative path for Telegram updates +TELEGRAM_WEBHOOK_SECRET= # Secret token for Telegram webhook validation header # Payment Method Toggles YOOKASSA_ENABLED=True # Turn on YOOKASSA FREEKASSA_ENABLED=True # Turn on FreeKassa STARS_ENABLED=True # Turn on STARS -TRIBUTE_ENABLED=True # Turn on TRIBUTE +STARS_PROVIDER_TOKEN= # Leave empty for Telegram Stars (XTR) CRYPTOPAY_ENABLED=True # Turn on CRYPTOPAY PLATEGA_ENABLED=False # Turn on PLATEGA SEVERPAY_ENABLED=False # Turn on SeverPay -# Order of payment methods (top to bottom). Supported: severpay, freekassa, platega, yookassa, tribute, stars, cryptopay -PAYMENT_METHODS_ORDER=severpay,yookassa,cryptopay,freekassa,platega,tribute,stars +# Order of payment methods (top to bottom). Supported: severpay, freekassa, platega, yookassa, stars, cryptopay +PAYMENT_METHODS_ORDER=severpay,yookassa,cryptopay,freekassa,platega,stars # YooKassa Payment Gateway Configuration YOOKASSA_SHOP_ID=your_shop_id # Your store ID in YooKassa @@ -85,31 +87,23 @@ SEVERPAY_TOKEN="" # SEVERPAY_RETURN_URL="" # Optional: redirect URL after payment (defaults to bot link) SEVERPAY_LIFETIME_MINUTES="" # Optional: payment link lifetime in minutes (30-4320, leave empty for default) -# Tribute Payment Gateway Configuration -TRIBUTE_API_KEY="" # API key for verifying Tribute webhook signatures -TRIBUTE_SKIP_NOTIFICATIONS=True # Skip renewal notifications for Tribute payments -TRIBUTE_SKIP_CANCELLATION_NOTIFICATIONS=False # Skip cancellation notifications for Tribute payments # Subscription Options. Specify cost parameters or payment links here. 1_MONTH_ENABLED=True RUB_PRICE_1_MONTH=150 STARS_PRICE_1_MONTH=0 -TRIBUTE_LINK_1_MONTH= 3_MONTHS_ENABLED=True RUB_PRICE_3_MONTHS=300 STARS_PRICE_3_MONTHS=0 -TRIBUTE_LINK_3_MONTHS= 6_MONTHS_ENABLED=True RUB_PRICE_6_MONTHS=500 STARS_PRICE_6_MONTHS=0 -TRIBUTE_LINK_6_MONTHS= 12_MONTHS_ENABLED=True RUB_PRICE_12_MONTHS=900 STARS_PRICE_12_MONTHS=0 -TRIBUTE_LINK_12_MONTHS= # Traffic Packages (enables traffic sale mode when set) TRAFFIC_PACKAGES=10:199,50:799 # Format: ":", comma-separated @@ -169,6 +163,9 @@ WEB_SERVER_PORT=8080 # Admin Panel Log Pagination LOGS_PAGE_SIZE=10 # Number of events in the log LOG_LEVEL=INFO # Global log level (DEBUG, INFO, WARNING, ERROR, CRITICAL) +LOG_STORE_MESSAGE_CONTENT=False # Store message/callback content in DB logs +LOG_STORE_RAW_UPDATES=False # Store raw update payload snippets in DB logs +LOG_EXPORT_INCLUDE_SENSITIVE=False # Include content/raw update columns in admin CSV export # Admin Logging Configuration LOG_CHAT_ID=-1001234567890 # Telegram chat/group ID for admin notifications diff --git a/README.md b/README.md index 0d8ea13..5a5abf7 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,9 @@ | Переменная | Описание | | --- | --- | | `WEBHOOK_BASE_URL`| **Обязательно.** Базовый URL для вебхуков, например `https://your.domain.com`. | - | `WEB_SERVER_HOST` | Хост для веб-сервера. | `0.0.0.0` | + | `TELEGRAM_WEBHOOK_PATH` | Относительный путь Telegram вебхука. По умолчанию `/webhook/telegram`. | + | `TELEGRAM_WEBHOOK_SECRET` | (Рекомендуется) Секрет для проверки заголовка `X-Telegram-Bot-Api-Secret-Token`. | + | `WEB_SERVER_HOST` | Хост для веб-сервера. По умолчанию `0.0.0.0`. | `0.0.0.0` | | `WEB_SERVER_PORT` | Порт для веб-сервера. | `8080` | | `PAYMENT_METHODS_ORDER` | (Опционально) Порядок отображения кнопок оплаты через запятую. Поддерживаемые ключи: `severpay`, `freekassa`, `platega`, `yookassa`, `stars`, `cryptopay`. Первый будет сверху. | | `YOOKASSA_ENABLED` | Включить/выключить YooKassa (`true`/`false`). | @@ -100,6 +102,7 @@ | `FREEKASSA_PAYMENT_IP` | Внешний IP вашего сервера, который будет передаваться в запрос оплаты. | | `FREEKASSA_PAYMENT_METHOD_ID` | ID метода оплаты через магазин FreeKassa. По умолчанию `44`. | | `STARS_ENABLED` | Включить/выключить Telegram Stars (`true`/`false`). | +| `STARS_PROVIDER_TOKEN` | Токен провайдера Telegram invoice. Для Stars (XTR) оставить пустым. | | `PLATEGA_ENABLED`| Включить/выключить Platega (`true`/`false`). | | `PLATEGA_MERCHANT_ID`| MerchantId из личного кабинета Platega. | | `PLATEGA_SECRET`| API секрет для запросов Platega. | @@ -168,7 +171,7 @@ - `https://<ваш_домен>/webhook/severpay` → `http://remnawave-tg-shop:/webhook/severpay` - `https://<ваш_домен>/webhook/cryptopay` → `http://remnawave-tg-shop:/webhook/cryptopay` - `https://<ваш_домен>/webhook/panel` → `http://remnawave-tg-shop:/webhook/panel` - - **Для Telegram:** Бот автоматически установит вебхук, если в `.env` указан `WEBHOOK_BASE_URL`. Путь будет `https://<ваш_домен>/`. + - **Для Telegram:** Бот автоматически установит вебхук, если в `.env` указан `WEBHOOK_BASE_URL`. Путь берётся из `TELEGRAM_WEBHOOK_PATH` (по умолчанию `https://<ваш_домен>/webhook/telegram`). Где `remnawave-tg-shop` — это имя сервиса из `docker-compose.yml`, а `` — порт, указанный в `.env`. diff --git a/config/settings.py b/config/settings.py index 304eec1..f6a0be2 100644 --- a/config/settings.py +++ b/config/settings.py @@ -213,7 +213,7 @@ class Settings(BaseSettings): CRYPT4_ENABLED: bool = Field(default=False, description="Enable happ crypt4 encryption for subscription URLs") CRYPT4_REDIRECT_URL: Optional[str] = Field(default=None, description="Base redirect URL used for the connect button when crypt4 is enabled") - WEB_SERVER_HOST: str = Field(default="127.0.0.1") + WEB_SERVER_HOST: str = Field(default="0.0.0.0") WEB_SERVER_PORT: int = Field(default=8080) LOGS_PAGE_SIZE: int = Field(default=10)