docs: update readme
This commit is contained in:
@@ -89,6 +89,8 @@
|
|||||||
| `BRUTE_FORCE_WINDOW_SECONDS` | Длительность окна, в котором считаются неудачные попытки. | `900` |
|
| `BRUTE_FORCE_WINDOW_SECONDS` | Длительность окна, в котором считаются неудачные попытки. | `900` |
|
||||||
| `BRUTE_FORCE_LOCK_SECONDS` | Время временной блокировки после превышения лимита. | `1800` |
|
| `BRUTE_FORCE_LOCK_SECONDS` | Время временной блокировки после превышения лимита. | `1800` |
|
||||||
| `MY_DEVICES_SECTION_ENABLED` | Включить раздел «Мои устройства» в меню подписки (`true`/`false`). | `false` |
|
| `MY_DEVICES_SECTION_ENABLED` | Включить раздел «Мои устройства» в меню подписки (`true`/`false`). | `false` |
|
||||||
|
| `WEBAPP_SESSION_SECRET` | (Опционально) HMAC-секрет для подписи сессий Web App. Если пусто — генерируется при старте, но тогда сессии станут невалидными после перезапуска контейнера. Для прода задайте явно. | `см. раздел «Генерация секретов»` |
|
||||||
|
| `WEBHOOK_SECRET_TOKEN` | (Опционально) Secret token для проверки подлинности вебхуков Telegram. Если пусто — генерируется при старте. Для прода задайте явно, чтобы значение пережило рестарт. | `см. раздел «Генерация секретов»` |
|
||||||
| `REQUIRED_CHANNEL_ID` | (Опционально) ID канала, на который пользователь должен подписаться перед использованием. Оставьте пустым, если проверка не нужна. | `-1001234567890` |
|
| `REQUIRED_CHANNEL_ID` | (Опционально) ID канала, на который пользователь должен подписаться перед использованием. Оставьте пустым, если проверка не нужна. | `-1001234567890` |
|
||||||
| `REQUIRED_CHANNEL_LINK` | (Опционально) Публичная ссылка или invite на канал для кнопки «Проверить подписку». | `https://t.me/your_channel` |
|
| `REQUIRED_CHANNEL_LINK` | (Опционально) Публичная ссылка или invite на канал для кнопки «Проверить подписку». | `https://t.me/your_channel` |
|
||||||
</details>
|
</details>
|
||||||
@@ -171,13 +173,39 @@
|
|||||||
| `TRIAL_TRAFFIC_LIMIT_GB`| Лимит трафика для пробного периода в ГБ. |
|
| `TRIAL_TRAFFIC_LIMIT_GB`| Лимит трафика для пробного периода в ГБ. |
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
3. **Запустите контейнеры:**
|
3. **Сгенерируйте секреты (рекомендуется):**
|
||||||
|
|
||||||
|
Переменные `WEBAPP_SESSION_SECRET` и `WEBHOOK_SECRET_TOKEN` могут быть пустыми — тогда они автоматически сгенерируются при каждом старте контейнера. Однако в проде это означает, что после рестарта все сессии Web App станут невалидными, а Telegram придётся перерегистрировать webhook. Поэтому для боевого окружения задайте оба значения вручную.
|
||||||
|
|
||||||
|
Сгенерировать криптостойкие значения можно одной из команд:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# вариант 1 — Python (есть в любом окружении с Python 3)
|
||||||
|
python -c "import secrets; print(secrets.token_urlsafe(32))"
|
||||||
|
|
||||||
|
# вариант 2 — openssl
|
||||||
|
openssl rand -base64 32 | tr -d '=+/' | cut -c1-43
|
||||||
|
|
||||||
|
# вариант 3 — /dev/urandom (Linux/macOS)
|
||||||
|
head -c 32 /dev/urandom | base64 | tr -d '=+/' | cut -c1-43
|
||||||
|
```
|
||||||
|
|
||||||
|
Запустите команду дважды и подставьте полученные значения в `.env`:
|
||||||
|
|
||||||
|
```env
|
||||||
|
WEBAPP_SESSION_SECRET=<первое_значение>
|
||||||
|
WEBHOOK_SECRET_TOKEN=<второе_значение>
|
||||||
|
```
|
||||||
|
|
||||||
|
> ⚠️ Не используйте одно и то же значение для обеих переменных и не коммитьте `.env` в git.
|
||||||
|
|
||||||
|
4. **Запустите контейнеры:**
|
||||||
```bash
|
```bash
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
Эта команда скачает образ и запустит сервис в фоновом режиме.
|
Эта команда скачает образ и запустит сервис в фоновом режиме.
|
||||||
|
|
||||||
4. **Настройка вебхуков (Обязательно):**
|
5. **Настройка вебхуков (Обязательно):**
|
||||||
Вебхуки являются **обязательным** компонентом для работы бота, так как они используются для получения уведомлений от платежных систем (YooKassa, FreeKassa, CryptoPay, Platega, SeverPay) и панели Remnawave.
|
Вебхуки являются **обязательным** компонентом для работы бота, так как они используются для получения уведомлений от платежных систем (YooKassa, FreeKassa, CryptoPay, Platega, SeverPay) и панели Remnawave.
|
||||||
|
|
||||||
Вам понадобится обратный прокси (например, Nginx) для обработки HTTPS-трафика и перенаправления запросов на контейнер с ботом.
|
Вам понадобится обратный прокси (например, Nginx) для обработки HTTPS-трафика и перенаправления запросов на контейнер с ботом.
|
||||||
@@ -198,7 +226,7 @@
|
|||||||
|
|
||||||
Web App не должен проксироваться на `WEB_SERVER_PORT`: этот порт оставьте для Telegram, платежных и Remnawave webhooks.
|
Web App не должен проксироваться на `WEB_SERVER_PORT`: этот порт оставьте для Telegram, платежных и Remnawave webhooks.
|
||||||
|
|
||||||
5. **Просмотр логов:**
|
6. **Просмотр логов:**
|
||||||
```bash
|
```bash
|
||||||
docker compose logs -f remnawave-tg-shop
|
docker compose logs -f remnawave-tg-shop
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user