Перейти к основному содержанию
Перед началом ознакомьтесь со страницей требований

Установка Docker

Установите Docker, если он ещё не установлен.
sudo curl -fsSL https://get.docker.com | sh

Варианты установки

Выберите способ установки в зависимости от вашей конфигурации:

Используйте этот способ, если бот будет работать на том же сервере, что и панель Remnawave. Бот подключается к Remnawave через внутреннюю Docker-сеть.

Шаг 1: Создание директории проекта

mkdir /opt/remnashop && cd /opt/remnashop

Шаг 2: Загрузка необходимых файлов

Загрузите файл docker-compose.yml и .env, выполнив следующие команды:

curl -o .env https://raw.githubusercontent.com/snoups/remnashop/refs/heads/main/.env.example
curl -o docker-compose.yml https://raw.githubusercontent.com/snoups/remnashop/refs/heads/main/docker-compose.prod.internal.yml

Шаг 3: Генерация секретов

Сгенерируйте секретные ключи, выполнив следующие команды:

sed -i "s|^APP_CRYPT_KEY=.*|APP_CRYPT_KEY=$(openssl rand -base64 32 | tr -d '\n')|" .env && sed -i "s|^BOT_SECRET_TOKEN=.*|BOT_SECRET_TOKEN=$(openssl rand -hex 64 | tr -d '\n')|" .env
sed -i "s|^DATABASE_PASSWORD=.*|DATABASE_PASSWORD=$(openssl rand -hex 24 | tr -d '\n')|" .env && sed -i "s|^REDIS_PASSWORD=.*|REDIS_PASSWORD=$(openssl rand -hex 24 | tr -d '\n')|" .env

Шаг 4: Настройка файла .env

Дополнительную информацию о переменных окружения можно найти на странице Переменные окружения.

Откройте файл .env:

cd /opt/remnashop && nano .env
# Домен, через который ваш бот доступен публично.
# Используется для получения вебхуков от сервисов (например, Telegram, платёжные системы).
# !!! ВНИМАНИЕ: Указывайте домен БЕЗ HTTP/HTTPS и БЕЗ завершающего слеша.
APP_DOMAIN=change_me

# Ключ шифрования для защиты конфиденциальных данных (например, платёжных токенов) в базе данных.
# !!! КРИТИЧЕСКИ ВАЖНО: Никогда не передавайте этот токен третьим лицам.
APP_CRYPT_KEY=change_me # УЖЕ ДОЛЖЕН БЫТЬ ЗАДАН В 3 ШАГЕ

# Токен Telegram Bot API. Получите его на https://t.me/BotFather/
# !!! КРИТИЧЕСКИ ВАЖНО: Никогда не передавайте этот токен третьим лицам. Он даёт полный контроль над вашим ботом.
BOT_TOKEN=change_me

# Секретный токен для верификации вебхуков. Гарантирует, что запросы вебхука поступают от Telegram.
BOT_SECRET_TOKEN=change_me # УЖЕ ДОЛЖЕН БЫТЬ ЗАДАН В 3 ШАГЕ

# Telegram ID владельца бота. Предоставляет расширенные права.
BOT_OWNER_ID=change_me

# Telegram username аккаунта поддержки, используемый для deep-link (без @).
BOT_SUPPORT_USERNAME=change_me

# Управляет поведением кнопки "подключить":
# - пусто или false  -> открывает страницу подписки в браузере
# - true             -> открывает страницу подписки в WebApp
# - URL (например, https://example.com/) -> открывает указанный URL в WebApp
BOT_MINI_APP=false

# Хост или имя Docker-сервиса для подключения к API Remnawave.
REMNAWAVE_HOST=remnawave

# API-токен для аутентификации в сервисе Remnawave.
REMNAWAVE_TOKEN=change_me

# Секретный токен для верификации входящих вебхуков от Remnawave.
# В панели Remnawave соответствует переменной WEBHOOK_SECRET_HEADER (env).
REMNAWAVE_WEBHOOK_SECRET=change_me

# Пароль от базы данных.
DATABASE_PASSWORD=change_me # УЖЕ ДОЛЖЕН БЫТЬ ЗАДАН В 3 ШАГЕ
REMNAWAVE_HOST=remnawave использует имя контейнера из Docker-сети Remnawave.
В переменной REMNAWAVE_TOKEN должен быть установлен API-токен панели. Создать токен можно в “Настройки Remnawave” → “API Токены”.
REMNAWAVE_WEBHOOK_SECRET должен совпадать со значением WEBHOOK_SECRET_HEADER из .env панели.
Если вы используете Remnawave Reverse-Proxy от eGames, добавьте cookie для авторизации. Пример: REMNAWAVE_COOKIE=rEmnaprx=aBCDefgh1. Как получить cookie: инструкция.

Шаг 5: Настройка вебхука от панели к боту

Этот шаг критически важен для корректной работы бота.

Откройте файл .env панели Remnawave:

cd /opt/remnawave && nano .env

Задайте WEBHOOK_ENABLED=true и установите WEBHOOK_URL на ваш реальный домен бота:

WEBHOOK_ENABLED=true
WEBHOOK_URL=https://bot.domain.com/api/v1/remnawave
Замените bot.domain.com на ваш реальный домен.

Найдите переменную WEBHOOK_SECRET_HEADER в этом же файле и скопируйте её значение:

WEBHOOK_SECRET_HEADER=ey1234567890qwertyuiopasdfghjklzxcvbnm
Значение ey1234567890qwertyuiopasdfghjklzxcvbnm приведено в качестве примера.

Перезапустите контейнер панели Remnawave для применения изменений:

cd /opt/remnawave && docker compose up -d

Вернитесь к файлу .env бота и вставьте скопированное значение в REMNAWAVE_WEBHOOK_SECRET:

cd /opt/remnashop && nano .env
REMNAWAVE_WEBHOOK_SECRET=ey1234567890qwertyuiopasdfghjklzxcvbnm
REMNAWAVE_WEBHOOK_SECRET должен совпадать со значением WEBHOOK_SECRET_HEADER из файла .env панели.

Шаг 6: Запуск бота

docker compose up -d && docker compose logs -f -t
Если всё настроено правильно, бот отправит приветственное сообщение.
ВНИМАНИЕ!Для корректной работы Remnashop необходим обратный прокси.Не открывайте сервисы в публичный интернет напрямую. Используйте только 127.0.0.1 для сервисов Remnashop.

Теперь вы можете перейти к установке обратного прокси.

Установка обратного прокси

Установка и настройка обратного прокси