Skip to content

Все переменные окружения задаются в .env и передаются в контейнер бота через секцию environment в compose.yaml. Переменные, отмеченные как обязательные, необходимы для запуска бота.

Примечание

Платёжные системы, фичи-флаги, триалы, брендинг и другие настройки управляются через Admin Panel UI и хранятся в базе данных — здесь они не описаны.

Обязательные переменные

ПеременнаяОписаниеПример
TELEGRAM_TOKENТокен Telegram Bot API123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
DATABASE_URLСтрока подключения к PostgreSQLpostgres://user:pass@db:5432/postgres?sslmode=disable
BOT_ADMIN_URLПубличный HTTPS URL админ-панелиhttps://bot.example.com
REMNAWAVE_URLURL API Remnawavehttp://remnawave:3000 или https://panel.example.com
REMNAWAVE_TOKENТокен API RemnawaveeyJhbG...
ADMIN_IDИдентификаторы админов (через запятую)123456789,telegram:987654321,xxxxxxxx-xxxx-...
LICENSE_KEYЛицензионный ключ из личного кабинетаLIC-XXXX-XXXX
JWT_SECRETСекрет для JWT-аутентификации панелиopenssl rand -hex 32

Формат ADMIN_ID

ADMIN_ID поддерживает три формата, которые можно комбинировать через запятую:

ФорматПримерОписание
Число123456789Telegram ID пользователя (обратная совместимость)
Префикс telegram:telegram:123456789Явный Telegram ID
UUID550e8400-e29b-41d4-a716-446655440000UUID клиента из базы данных
bash
# Один админ
ADMIN_ID=123456789

# Несколько админов, разные форматы
ADMIN_ID=123456789,telegram:987654321,550e8400-e29b-41d4-a716-446655440000

Внимание

ADMIN_TELEGRAM_ID устарела. Используйте ADMIN_ID — она поддерживает UUID и формат telegram:ID в дополнение к числовым Telegram ID.

Необязательные переменные

ПеременнаяОписаниеПо умолчанию
BOT_WORKERSКоличество воркеров бота3
DEFAULT_LANGUAGEЯзык интерфейса по умолчаниюru
HEALTH_CHECK_PORTHTTP-порт для проверки здоровья8080
REMNAWAVE_MODEРежим подключения: remote или localremote

Заголовки Remnawave

Пользовательские заголовки, отправляемые с каждым запросом к API Remnawave. Формат: ключ:значение;ключ:значение.

bash
# Один заголовок
REMNAWAVE_HEADERS=X-Api-Key:your_secret_key

# Несколько заголовков
REMNAWAVE_HEADERS=X-Api-Key:secret123;X-Custom-Header:custom_value

# Cookie для Remnawave Reverse-Proxy (egames)
REMNAWAVE_HEADERS=Cookie:rEmnaprx=aBCDefgh

Совет

Пробелы вокруг ключей и значений обрезаются автоматически. Некорректные пары игнорируются.

Логирование

ПеременнаяОписаниеПо умолчанию
LOG_LEVELУровень логирования: debug, info, warn, errorinfo
ACCESS_LOG_ENABLEDВключить HTTP access-логи (true/false)false
ACCESS_LOG_PATHПуть к файлу access-лога; пусто = вывод в консоль
bash
LOG_LEVEL=info
ACCESS_LOG_ENABLED=true
ACCESS_LOG_PATH=/var/log/rwp-shop/access.log

Совет

Настройка ротации логов описана в разделе Access-логи с ротацией.

CORS

ПеременнаяОписаниеПо умолчанию
CORS_ALLOWED_ORIGINSРазрешённые источники через запятуюFallback на BOT_ADMIN_URL
bash
# Один источник
CORS_ALLOWED_ORIGINS=https://bot.example.com

# Несколько источников
CORS_ALLOWED_ORIGINS=https://bot.example.com,https://admin.example.com

Примечание

Если не заданы ни CORS_ALLOWED_ORIGINS, ни BOT_ADMIN_URL, CORS будет отклонять все кросс-доменные запросы.

S3 хранилище

ПеременнаяОписаниеПо умолчанию
S3_ENABLEDВключить S3-совместимое хранилище (true/false)false
S3_ENDPOINTЭндпоинт S3 API
S3_ACCESS_KEYКлюч доступа S3
S3_SECRET_KEYСекретный ключ S3
S3_PUBLIC_URLПубличный HTTPS URL для presigned-ссылок
S3_BUCKETИмя родительского бакета (опционально)
S3_REGIONРегион S3us-east-1

Совет

Подробная настройка S3, примеры провайдеров (RustFS, Cloudflare R2) и режим родительского бакета описаны в разделе Настройка S3 хранилища.

Краткая справка

bash
# === Обязательные ===
TELEGRAM_TOKEN=
DATABASE_URL=postgres://user:pass@db:5432/postgres?sslmode=disable
BOT_ADMIN_URL=https://bot.example.com
REMNAWAVE_URL=http://remnawave:3000
REMNAWAVE_TOKEN=
ADMIN_ID=123456789
LICENSE_KEY=
JWT_SECRET=

# === Необязательные ===
BOT_WORKERS=3
DEFAULT_LANGUAGE=ru
HEALTH_CHECK_PORT=8080
REMNAWAVE_MODE=remote
# REMNAWAVE_HEADERS=
# === Логирование ===
LOG_LEVEL=info
ACCESS_LOG_ENABLED=false
# ACCESS_LOG_PATH=

# === CORS ===
# CORS_ALLOWED_ORIGINS=https://bot.example.com

# === S3 хранилище ===
# S3_ENABLED=false
# S3_ENDPOINT=
# S3_ACCESS_KEY=
# S3_SECRET_KEY=
# S3_PUBLIC_URL=
# S3_BUCKET=
# S3_REGION=us-east-1