Установка Docker
УстановитеDocker, если он ещё не установлен.
Установка 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_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
Теперь вы можете перейти к установке обратного прокси.
Установка обратного прокси
Используйте этот способ, если бот будет работать на другом сервере, отличном от панели Remnawave. Бот подключается к Remnawave через внешний HTTPS URL.
Шаг 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.external.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
# Хост или домен панели Remnawave для подключения через внешний HTTPS.
# !!! Укажите домен БЕЗ HTTP/HTTPS и БЕЗ завершающего слеша.
REMNAWAVE_HOST=panel.domain.com
# 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. Пример: REMNAWAVE_HOST=panel.domain.comREMNAWAVE_TOKEN должен быть установлен API-токен панели. Создать токен можно в “Настройки Remnawave” → “API Токены”.REMNAWAVE_WEBHOOK_SECRET должен совпадать со значением WEBHOOK_SECRET_HEADER из .env панели.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
Теперь вы можете перейти к установке обратного прокси.