Переменные окружения
Задаются в docker-compose.yml. Обязательны только первые две — остальное обычно настраивается в мастере и менять не нужно.
| Переменная | Обяз. | Значение по умолчанию | Описание |
|---|---|---|---|
BOT_TOKEN |
✅ | — | токен бота от @BotFather |
ADMIN_TELEGRAM_ID |
✅ | — | ваш Telegram ID (число) — доступ в админку |
DATA_DIR |
/data |
каталог данных в контейнере (том bot-data) |
|
DB_KIND |
— | sqlite / postgres; обычно задаёт мастер |
|
DATABASE_URL |
— | DSN Postgres, если подключаете свою БД вручную | |
SECRET_KEY |
авто | ключ шифрования настроек; если пуст — генерируется в /data/secret.key |
|
PREMIUM_EMOJI |
— | карта премиум-эмодзи в формате ключ=id,ключ=id |
|
CUSTOM_STATIC_DIR |
/custom |
папка с кастомной статикой мини-аппа/кабинета (см. «Свой дизайн» ниже) | |
CADDY_AUTH_API_TOKEN |
— | X-Api-Key аддона «Caddy with security», если панель закрыта им. Бот добавит этот заголовок ко всем запросам к панели — вдобавок к её собственному API-token. Если переменная задана, мастер про ключ не спрашивает, и её значение главнее сохранённого в БД | |
COMPOSE_FILE_PATH |
/compose/docker-compose.yml |
путь к compose-файлу для самоменеджмента | |
COMPOSE_PROJECT |
remnachillbot |
имя docker-compose проекта | |
COMPOSE_HOST_DIR |
/opt/remnachillbot |
путь к папке бота на хосте | |
PANEL_CONTAINER |
remnawave |
имя контейнера панели (для режима «Локально») | |
PANEL_NETWORK |
remnawave-network |
docker-сеть панели (фолбэк, если контейнер не успел подняться). Официалка и eGames используют это имя — менять обычно не нужно | |
SELF_CONTAINER |
remnabot |
имя контейнера самого бота |
SECRET_KEYкритичен: без него не прочитать зашифрованные настройки. Не теряйте файлsecret.keyиз томаbot-data.
Свой дизайн мини-аппа и веб-кабинета
Заголовок раздела «Свой дизайн мини-аппа и веб-кабинета»Стандартный интерфейс (index.html) вшит в бинарь, но его можно полностью заменить своим — смонтируйте папку с файлами в контейнер (в docker-compose.yml есть готовая закомментированная строка):
volumes: - /opt/remnachillbot/custom:/custom:roПравила простые:
- любой файл из папки перекрывает одноимённый вшитый (
index.html,qrcode.min.js), а новые файлы (css, js, картинки) просто становятся доступны рядом — на них можно ссылаться относительными путями; miniapp.html(если положить) отдаётся только Mini App,cabinet.html— только веб-кабинету; без них оба используют вашindex.html, а если и его нет — вшитый;- файлы читаются с диска на каждый запрос: правки видны сразу, перезапуск не нужен;
- серверные подстановки кабинета (заголовок, описание, favicon, anti-fingerprint из админки) применяются и к вашему HTML.
⚠️ Вся логика (авторизация, покупка, оплата) живёт в JS внутри index.html и ходит в /api/miniapp/* и /api/cabinet/*. Поэтому начинайте с копии стандартного файла (internal/web/miniapp_static/index.html) и меняйте в нём стили/вёрстку — полностью самописная страница потребует реализовать работу с API самостоятельно. После обновлений бота сверяйте свой файл с новой версией стандартного: API может дополняться.