Files
remnawave-minishop/docs/configuration.md
T
2026-05-08 18:14:30 +03:00

10 KiB

Настройка окружения

Конфигурация читается из .env. За основу удобно взять .env.example и заполнить значения под свою панель, домены и платежные провайдеры.

cp .env.example .env
nano .env

Основные настройки

Переменная Назначение
BOT_TOKEN Токен Telegram-бота.
ADMIN_IDS Telegram ID администраторов через запятую.
DEFAULT_LANGUAGE Язык по умолчанию для пользователей: ru или en.
SUPPORT_LINK Ссылка на поддержку.
PRIVACY_POLICY_URL Ссылка на политику конфиденциальности в Web App.
USER_AGREEMENT_URL Ссылка на пользовательское соглашение в Web App.
REQUIRED_CHANNEL_ID ID канала, на который пользователь должен подписаться перед использованием.
REQUIRED_CHANNEL_LINK Ссылка на канал для кнопки проверки подписки.

Если используется проверка подписки на канал, добавьте бота администратором в этот канал. После первой успешной проверки пользователь продолжает работу без повторной блокировки действий.

Remnawave

Переменная Назначение
PANEL_API_URL URL API панели Remnawave, например https://panel.domain.com/api.
PANEL_API_KEY API-ключ панели.
PANEL_WEBHOOK_SECRET Секрет для проверки вебхуков Remnawave.
USER_SQUAD_UUIDS Internal Squads, в которые добавляются пользователи.
USER_EXTERNAL_SQUAD_UUID External Squad для пользователей, если он используется.
USER_TRAFFIC_LIMIT_GB Лимит трафика для режима без JSON-каталога тарифов. 0 означает безлимит.
USER_TRAFFIC_STRATEGY Стратегия лимита трафика для режима без JSON-каталога тарифов.
USER_HWID_DEVICE_LIMIT Лимит HWID-устройств для пользователей. 0 означает безлимит.

При включенном каталоге тарифов значения squad_uuids, monthly_gb, traffic_packages и hwid_device_limit берутся из выбранного тарифа. Подробно это описано в tariffs.md.

Платежи

Переменная Назначение
PAYMENT_METHODS_ORDER Порядок кнопок оплаты через запятую: severpay, freekassa, platega, yookassa, stars, cryptopay.
YOOKASSA_ENABLED Включает YooKassa.
YOOKASSA_SHOP_ID / YOOKASSA_SECRET_KEY Данные магазина YooKassa.
YOOKASSA_AUTOPAYMENTS_ENABLED Включает автопродление через сохраненные способы оплаты YooKassa.
YOOKASSA_AUTOPAYMENTS_REQUIRE_CARD_BINDING Управляет обязательной привязкой карты при оплате.
FREEKASSA_ENABLED Включает FreeKassa.
FREEKASSA_MERCHANT_ID / FREEKASSA_API_KEY / FREEKASSA_SECOND_SECRET Данные FreeKassa и секрет уведомлений.
FREEKASSA_PAYMENT_IP Внешний IP сервера для запроса оплаты FreeKassa.
FREEKASSA_PAYMENT_METHOD_ID ID метода оплаты FreeKassa.
PLATEGA_ENABLED Включает Platega.
PLATEGA_MERCHANT_ID / PLATEGA_SECRET Данные Platega.
PLATEGA_PAYMENT_METHOD ID способа оплаты Platega.
PLATEGA_RETURN_URL / PLATEGA_FAILED_URL URL возврата после оплаты или ошибки.
SEVERPAY_ENABLED Включает SeverPay.
SEVERPAY_MID / SEVERPAY_TOKEN Данные SeverPay.
SEVERPAY_BASE_URL Базовый URL API SeverPay.
SEVERPAY_RETURN_URL URL возврата после оплаты.
SEVERPAY_LIFETIME_MINUTES Время жизни платежной ссылки.
CRYPTOPAY_ENABLED Включает CryptoPay.
CRYPTOPAY_TOKEN Токен CryptoPay App.
STARS_ENABLED Включает Telegram Stars.

Вебхуки платежных систем должны проксироваться на порт WEB_SERVER_PORT. Примеры маршрутов есть в deployment.md.

Тарифы

Переменная Назначение
TARIFFS_CONFIG_PATH Путь к JSON-каталогу тарифов. По умолчанию config/tariffs.json.
TARIFF_TRAFFIC_WARNING_LEVELS Проценты предупреждений по трафику, например 85,90,95.
RUB_PRICE_1_MONTH, RUB_PRICE_3_MONTHS, RUB_PRICE_6_MONTHS, RUB_PRICE_12_MONTHS Цены подписок в рублях для режима без JSON-каталога.
STARS_PRICE_1_MONTH, STARS_PRICE_3_MONTHS, STARS_PRICE_6_MONTHS, STARS_PRICE_12_MONTHS Цены подписок в Telegram Stars для режима без JSON-каталога.
1_MONTH_ENABLED, 3_MONTHS_ENABLED, 6_MONTHS_ENABLED, 12_MONTHS_ENABLED Доступность периодов подписки для режима без JSON-каталога.
TRAFFIC_PACKAGES Пакеты трафика в рублях для режима без JSON-каталога, например 10:199,50:799.
STARS_TRAFFIC_PACKAGES Пакеты трафика в Telegram Stars для режима без JSON-каталога.

Если файл из TARIFFS_CONFIG_PATH существует, бот использует каталог тарифов. Если файла нет, применяется конфигурация из переменных .env.

Web App и email-вход

Переменная Назначение
WEBAPP_ENABLED Включает Web App в том же контейнере.
WEBAPP_SERVER_HOST / WEBAPP_SERVER_PORT Хост и порт Web App. По умолчанию порт 8081.
SUBSCRIPTION_MINI_APP_URL Публичный URL Web App.
WEBAPP_TITLE Заголовок Web App.
WEBAPP_PRIMARY_COLOR Основной цвет интерфейса.
WEBAPP_LOGO_URL URL логотипа Web App.
WEBAPP_SESSION_SECRET HMAC-секрет сессий Web App.
TELEGRAM_OAUTH_CLIENT_ID / TELEGRAM_OAUTH_CLIENT_SECRET Данные Telegram OAuth / OpenID Connect из BotFather.
TELEGRAM_OAUTH_REQUEST_ACCESS Дополнительные разрешения Telegram Login, например write.
SMTP_HOST, SMTP_PORT, SMTP_FALLBACK_PORTS SMTP-подключение для email-кодов.
SMTP_USERNAME / SMTP_PASSWORD Логин и пароль или SMTP key.
SMTP_FROM_EMAIL / SMTP_FROM_NAME Отправитель писем с кодом.
EMAIL_CODE_TTL_SECONDS Срок действия email-кода.
EMAIL_CODE_RESEND_SECONDS Пауза перед повторной отправкой кода.
EMAIL_CODE_MAX_ATTEMPTS Максимум попыток ввода одного кода.
BRUTE_FORCE_MAX_FAILURES Количество неудачных попыток до временной блокировки.
BRUTE_FORCE_WINDOW_SECONDS Окно учета неудачных попыток.
BRUTE_FORCE_LOCK_SECONDS Длительность временной блокировки.
MY_DEVICES_SECTION_ENABLED Показывает раздел "Мои устройства" и включает API устройств.

Настройка домена, BotFather и callback URL описана в webapp.md.

Пробный период

Переменная Назначение
TRIAL_ENABLED Включает пробный период.
TRIAL_DURATION_DAYS Длительность пробного периода в днях.
TRIAL_TRAFFIC_LIMIT_GB Лимит трафика пробного периода. 0 означает безлимит.
TRIAL_TRAFFIC_STRATEGY Стратегия лимита трафика пробного периода.

Реферальная программа

Переменная Назначение
REFERRAL_WELCOME_BONUS_DAYS Бонус пользователю, который пришел по реферальной ссылке.
REFERRAL_ONE_BONUS_PER_REFEREE Ограничивает бонусы одним успешным платежом приглашенного пользователя.
REFERRAL_BONUS_DAYS_* Бонусные дни пригласившему по периодам подписки.
REFEREE_BONUS_DAYS_* Бонусные дни приглашенному по периодам подписки.
LEGACY_REFS Разрешает ссылки формата ref_<telegram_id>.

В режиме продажи трафика без JSON-каталога бонусы по периодам не отображаются, потому что покупка не привязана к сроку подписки.

Секреты

WEBAPP_SESSION_SECRET и WEBHOOK_SECRET_TOKEN могут генерироваться при старте, но для рабочего окружения их лучше задать явно. Иначе после рестарта сессии Web App станут невалидными, а Telegram webhook будет установлен с другим secret token.

openssl rand -hex 32