Монорепозиторий с двумя независимыми приложениями для copy trading на бирже MEXC:
- Telegram Bot - управление через Telegram
- Web App - веб-интерфейс с аутентификацией
tg-mexc/
├── cmd/
│ ├── tg-bot/ # Telegram бот
│ └── web-app/ # Веб-приложение
├── pkg/ # Shared пакеты
│ ├── models/ # Модели данных
│ ├── storage/ # Работа с БД
│ ├── config/ # Конфигурация
│ └── services/ # Сервисы (mexc, copytrading, websocket, telegram)
├── internal/ # Internal пакеты
│ ├── api/ # REST API handlers (для web-app)
│ ├── auth/ # JWT аутентификация
│ ├── handlers/ # Telegram handlers
│ └── middleware/ # HTTP middleware
├── web/ # Frontend файлы
├── migrations/ # SQL миграции
└── data/ # Базы данных
go mod downloadУстановите переменные окружения:
export TELEGRAM_BOT_TOKEN="your_bot_token_here"
export DRY_RUN=true # true = тестовый режим, false = реальные сделкиcd cmd/tg-bot
go build
./tg-bot- Откройте бот в Telegram
- Команда
/startдля просмотра всех команд - Команда
/scriptдля получения JS скрипта для извлечения cookies - Добавьте аккаунты через
/add_browser - Установите мастер аккаунт:
/set_master <name> - Запустите copy trading:
/start_copy
База данных: ./accounts_browser.db
Логи: ./bot_browser.log
Установите переменные окружения:
export PORT=8080 # Порт (опционально, по умолчанию 8080)
export JWT_SECRET="your-secret-key-here" # JWT секрет (обязательно в продакшене!)
export DB_PATH="./web_app.db" # Путь к БД (опционально)
export DRY_RUN=true # true = тестовый режим, false = реальные сделкиcd cmd/web-app
go build
./web-appВеб-интерфейс будет доступен по адресу: http://localhost:8080
- Откройте http://localhost:8080 в браузере
- Нажмите "Зарегистрироваться"
- Создайте аккаунт (username + password)
- Войдите в систему
База данных: ./web_app.db
Логи: ./web_app.log
По умолчанию включен режим DRY_RUN - все действия логируются, но реальные сделки НЕ открываются.
Что делается в DRY_RUN:
- ✅ WebSocket подключение к мастер аккаунту
- ✅ Получение событий ордеров
- ✅ Получение leverage дочерних аккаунтов
- ✅ Полное логирование всех действий
Что НЕ делается:
- ❌ Реальные ордера не открываются
Для активации реальной торговли:
export DRY_RUN=false
./tg-bot # или ./web-app- ✅ Добавление аккаунтов через browser cookies
- ✅ Просмотр балансов всех аккаунтов
- ✅ Проверка комиссий
- ✅ Copy trading с мастер → slave аккаунтов
- ✅ Автоматическая синхронизация leverage
- ✅ Игнорирование аккаунтов с комиссией
- ✅ Открытие/закрытие позиций на всех аккаунтах
- ✅ Просмотр открытых позиций и ордеров
- ✅ Аутентификация с JWT токенами
- ✅ Управление аккаунтами (добавление, удаление, просмотр)
- ✅ Отображение балансов и комиссий
- ✅ Установка мастер аккаунта
- ✅ Включение/выключение аккаунтов
- ✅ Copy trading управление
- ✅ История сделок с timestamps
- ✅ Activity logs
- ✅ Polling обновления (каждые 3 секунды)
POST /api/auth/login- ВходPOST /api/auth/register- РегистрацияGET /health- Health check
Аккаунты:
GET /api/accounts- Список аккаунтовGET /api/accounts/details- Аккаунты с балансами и комиссиямиPOST /api/accounts- Добавить аккаунтDELETE /api/accounts/:id- Удалить аккаунтPUT /api/accounts/:id/master- Установить как мастерPUT /api/accounts/:id/disabled- Включить/выключить аккаунтGET /api/accounts/script- Получить JS скрипт
Copy Trading:
POST /api/copy-trading/start- ЗапуститьPOST /api/copy-trading/stop- ОстановитьGET /api/copy-trading/status- Статус
История:
GET /api/trades?limit=50&offset=0- История сделокGET /api/logs?limit=100&offset=0- Логи активности
# Telegram Bot
cd cmd/tg-bot && go build
# Web App
cd cmd/web-app && go build# Проверка health endpoint
curl http://localhost:8080/health
# Регистрация
curl -X POST http://localhost:8080/api/auth/register \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"123456"}'
# Вход
curl -X POST http://localhost:8080/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"123456"}'-
Получить JS скрипт:
- Telegram:
/script - Web: Кнопка "Добавить аккаунт" → скопировать скрипт
- Telegram:
-
Открыть MEXC:
- Перейти на https://www.mexc.com/futures
- Войти в аккаунт
-
Выполнить скрипт:
- Открыть DevTools (F12) → Console
- Написать:
allow pasting - Вставить скрипт и нажать Enter
- Файл
mexc-data.jsonавтоматически скачается
-
Добавить в приложение:
- Telegram: Прикрепить файл с Caption
/add_browser <name> - Web: Вставить JSON в форму добавления аккаунта
- Telegram: Прикрепить файл с Caption
Функция автоматического отключения аккаунтов с комиссией (только в Web App):
- Включена по умолчанию для всех новых аккаунтов
- Если обнаружена комиссия > 0, аккаунт автоматически disabled
- Можно настроить для каждого аккаунта отдельно
- Проверьте
TELEGRAM_BOT_TOKEN - Проверьте доступ к интернету
- Проверьте логи в
bot_browser.log
- Проверьте порт 8080 (или установите другой через
PORT) - Проверьте логи в
web_app.log - Убедитесь что директория
web/существует
- Убедитесь что установлен мастер аккаунт
- Проверьте что есть активные slave аккаунты
- Проверьте логи
- Токен истек (24 часа), войдите заново
- Проверьте что токен передается в заголовке
Authorization: Bearer <token>
github.com/gorilla/mux- HTTP routergithub.com/golang-jwt/jwt/v5- JWT токеныgolang.org/x/crypto/bcrypt- Хеширование паролейgithub.com/go-telegram-bot-api/telegram-bot-api/v5- Telegram Bot APImodernc.org/sqlite- SQLite база данныхgithub.com/lmittmann/tint- Pretty logging
Private project
- Интеграция copy trading сервиса с Web App
- WebSocket для real-time обновлений в Web App
- Дашборд с графиками и статистикой
- Уведомления в Telegram из Web App
- Multi-user поддержка в Telegram Bot
Создано с ❤️ для автоматизации copy trading на MEXC