Skip to content

Repository files navigation

Русский · English

Интерфейс Link-Bot

Link-Bot

Telegram-бот и Mini App для продажи и управления VPN-подписками Remnawave

Попробовать Link-Bot Сообщество Link-Bot

Go 1.25 PostgreSQL 17 Docker Compose

Попробовать бота · Сообщество в Telegram · Remnawave


🧩 Что такое Link-Bot?

Link-Bot — Telegram-бот и Mini App для продажи и управления VPN-подписками Remnawave.

Он объединяет личный кабинет пользователя, оплату, управление подписками, поддержку и администрирование в одном интерфейсе.

🤖 Демонстрация: открыть Link-Bot в Telegram
💬 Сообщество: новости, вопросы и обсуждения


✨ Возможности

📦 Подписки и тарифы 💳 Платежи
• Личный кабинет в Telegram Mini App и браузере
• Создание и продление подписок Remnawave
• Тарифы, триал и выбор внутренних/внешних сквадов
• Привязка и перенос подписок между Telegram-аккаунтами
• YooKassa
• Crypto Pay
• Telegram Stars
• Lava
• WATA
• Platega
• FreeKassa
• Heleket
• Pally
📣 Продвижение и уведомления 🛠️ Администрирование
• Промокоды
• Реферальная система
• Рассылки
• Уведомления об окончании подписки и ошибках
• Поддержка с тикетами и FAQ
• Режим технических работ
• Редактор контента, оформления и функций прямо в админке

🛠️ Админ-панель

Управляйте системой, интерфейсом, тарифами, интеграциями, рассылками, промокодами и другими функциями прямо из Mini App.

Админ-панель Link-Bot

📋 Требования

Компонент Требование
🖥️ Сервер VPS с Ubuntu 22.04/24.04 или Debian 12
🌐 Домен Домен с A-записью на IP сервера
🔌 Порты Открытые порты 22, 80 и 443
🌊 Remnawave Установленная и доступная панель Remnawave
🤖 Telegram Бот, созданный через @BotFather

🚀 Быстрая установка

1. Подготовьте домен

Создайте у DNS-провайдера запись:

Тип: A
Имя: bot
Значение: IP_ВАШЕГО_VPS

В примерах ниже используется домен bot.example.com. Дождитесь обновления DNS перед первым запуском.

2. Установите Docker и Git

apt update && apt install -y git curl
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker

3. Скачайте Link-Bot

cd /opt
git clone https://github.com/bruhxax/Link-Bot.git
cd Link-Bot

4. Создайте .env

cp .env.example .env
nano .env

Минимально заполните:

TELEGRAM_TOKEN=токен_бота_от_BotFather
ADMIN_TELEGRAM_ID=ваш_telegram_id

REMNAWAVE_URL=https://panel.example.com
REMNAWAVE_TOKEN=токен_remnawave
REMNAWAVE_MODE=remote

POSTGRES_USER=linkbot
POSTGRES_PASSWORD=сложный_пароль
POSTGRES_DB=linkbot

PUBLIC_HOST=bot.example.com
PUBLIC_BASE_URL=https://bot.example.com

REFERRAL_DAYS=0

Сгенерировать пароль PostgreSQL:

openssl rand -hex 24

Important

Не добавляйте https:// в PUBLIC_HOST.
В PUBLIC_BASE_URL, наоборот, нужен полный HTTPS-адрес.

5. Запустите бота

docker compose up -d --build

Caddy автоматически получит TLS-сертификат. Проверка:

docker compose ps
curl https://bot.example.com/healthcheck

6. Выполните первый запуск

  1. Откройте бота и отправьте /start.
  2. Откройте Mini App под аккаунтом из ADMIN_TELEGRAM_ID.
  3. Перейдите в раздел Админка.
  4. Настройте интеграции, тарифы, триал, сквады, контент и функции.
  5. В @BotFather выполните /setdomain и укажите bot.example.com.

Note

Платёжные ключи, тарифы, триал, промокоды, ссылки, баннеры и оформление задаются через админку. Хранить их в .env не требуется.


🖼️ Собственные баннеры

Готовые баннеры в репозиторий не включены. Загрузите свои файлы в нужную папку:

assets/telegram/menu/
assets/telegram/verification/
assets/telegram/commerce/
assets/telegram/success/

После загрузки укажите путь в редакторе контента, например:

/assets/telegram/menu/banner.png

Пустое поле означает отправку сообщения без баннера.


🧰 Полезные команды

Все команды выполняются из /opt/Link-Bot.

📊 Статус контейнеров
docker compose ps
📜 Логи бота
docker compose logs -f --tail=200 bot
🔐 Логи HTTPS-прокси
docker compose logs -f --tail=200 caddy
🔄 Перезапуск бота
docker compose restart bot
♻️ Перезапуск всего проекта
docker compose restart
⏯️ Остановка и запуск
docker compose stop
docker compose start
⬆️ Обновление
git pull --ff-only
docker compose up -d --build --force-recreate --remove-orphans

Обновление сохраняет базу данных и настройки из админки. Уже созданные тарифы, оформление и интеграции не сбрасываются на новые значения по умолчанию.

💾 Резервная копия базы
docker compose exec -T db sh -c 'pg_dump -U "$POSTGRES_USER" "$POSTGRES_DB"' > link-bot-backup.sql
📥 Восстановление базы
cat link-bot-backup.sql | docker compose exec -T db sh -c 'psql -U "$POSTGRES_USER" "$POSTGRES_DB"'
🗑️ Удаление контейнеров без удаления базы
docker compose down

[!CAUTION] docker compose down -v удаляет базу данных и настройки без возможности восстановления.


🏗️ Структура проекта

Путь Назначение
cmd/ Запуск приложения
db/migrations/ Миграции PostgreSQL
internal/ Логика бота, Mini App и интеграций
translations/ Тексты Telegram-бота
assets/telegram/ Пользовательские баннеры
docker-compose.yaml Bot, PostgreSQL и Caddy
.env.example Параметры первого запуска

🔒 Безопасность

Рекомендация Описание
🔑 Секреты Не публикуйте .env, токены и резервные копии
🐘 PostgreSQL Используйте отдельный сложный пароль
🛡️ SSH Ограничьте SSH-доступ и используйте ключи вместо пароля
💾 Обновления Перед обновлением создавайте резервную копию базы

💬 Сообщество

Сообщество Link-Bot Попробовать Link-Bot

Вопросы и обсуждения: t.me/REMNALinkBot
Демонстрация бота: t.me/BruhvpnBot

About

Open-source Telegram bot and Mini App for selling and managing Remnawave VPN subscriptions.

Topics

Resources

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Contributors

Languages