Выберите удобный способ запуска бота
Self-Hosted версия
Скачайте бота и запустите на своём сервере или компьютере. Полный контроль, без ежемесячной платы.
Сборки доступны для:
Готовый Online бот
Не нужно заниматься хостингом — бот уже запущен и работает на нашем сервере. Получите персональную ссылку сразу после оплаты.
- Изолированный инстанс бота
- Поддержка от разработчика
Аренда VPS
VPS (VDS) - виртуальный выделенный сервер.
Для нас VPS это полноценный компьютер. Находится он в датацентре провайдера. И провайдер отвечает за
бесперебойную работу сервера и стабильное интернет соединение. Это важно для трейдинга!
Будем использовать VPS для запуска программы бота. Это самый правильный самый надежный способ для работы
программ торгующих на бирже.
Какую конфигурацию сервера выбрать: При аренде своего первого VPS сервера можно выбрать просто самый
дешевый.
Его производительности будет достаточно. Софт оптимизирован и не требовательный к ресурсам.
Провайдеры для примера: zomro.com, contabo.com, melbicom.ru
По возможности воспользуйтесь моей
реферальной ссылкой: zomro.com/vps?from=413202 Промокод:
zomro_413202
Бот может работать на любой ОС Linux, macOS и Windows.
Рекомендуемые версии ОС
Ubuntu: 20.04 , 22.04 ,
24.04
❗️Нужно выбирать локацию сервера не в США. (Обычно все биржи блокируют запросы из США). Регионы Europe и
Asia -
ОК
Нам предоставляется удаленный доступ к этому арендованному компьтеру. (IP адрес, логин (Обычно
root) и пароль)
Подключатся к своему VPS с ОС Linux будем по SSH используя приложение termius (или putty)
Termius можно установить даже на смартфон. Будет достаточно бесплатной версии этой программы.
(все
предложения купить можно просто игнорировать)
Linux (CLI) | УСТАНОВКА
Вы выбрали путь с арендой личного VPS и Self-Hosted бот
Для начала нужно подключится к своему VPS по SSH используя приложение
termius (Это бесплатный софт который
настойчиво просит вас купить платную версию)
После оплаты сервера вам выдают IP адрес, логин (Обычно root) и пароль для подключения по
SSH.
Инструкция по установке бота на линукс сервере очень простые из-за
наличия готовых скриптов.
Достаточно скопировать -> вставить -> выполнить команды в интерфейсе
командной
строки.
- 1. Cоздать новую папку для бота (в примере папка
hb1) Таким образом можно установить множество ботов в разные папки hb1, hb2 ...
:
mkdir -p /opt/hb1 - 2. Перейти в созданную
папку:
cd /opt/hb1 - 3. Скачать и запустить скрипт
install_local.sh:
wget -qO- https://raw.githubusercontent.com/ksandric/hamster-bot/refs/heads/master/install_local.sh | bash
Данная команда скачивайет файл скрипта install_local.sh и запускает его исполнение. (скрипт скачивает -> распаковывает zip архив и создает .service в systemd) - 4. В процессе скрипт запросит ввод порта с клавиатуры и сам проверит свободен ли введенный порт. Так как нельзя запустить более одного бота на одном порту. Рекомендую выбирать порты по порядку начиная с 81 и далее.
Готово! Бот установлен в папку hb1 и будет запущен сервис
с таким же названием hb1.serviece.
В терминале пойдет вывод информации от бота (лог работы) в реальном времени. Можете закрывать termius и
переходить
к
добавлению API ключей и настройке стратегий.
Если вы заменяете файлый бота на сервере вручную по SFTP протоколу -
не забывайте команду выдачи исполняемому файлу прав на запуск: chmod +x ./hb_c
- После запуска бота по этим инструкциям он работает как сервис (в фоне и автоматически будет запускаться при запуске сервера + авторестарт если выключится). Для управления сервисом:
- Смотреть вывод в консоль в реальном времени (лог
работы):
journalctl --follow -u hamster-bot_1.service - Посмотреть текущее состояние:
systemctl status hamster-bot_1.service - Остановить:
systemctl stop hamster-bot_1.service - Выключить:
systemctl disable hamster-bot_1.service(Нужно делать при удалении бота) - Перезапуск:
systemctl restart hamster-bot_1.service
Linux (CLI) | ОБНОВЛЕНИЕ
Когда на вашем VPS работает 2 и более
ботов:/opt/hb1
/opt/hb2
/opt/hb3
Для обновления бота в каталоге /opt/hb2 вам нужно выполнить последовательно следующие команды:
- 1. Перейти в нужный каталог (в примере папка
hb2):
cd /opt/hb2 - 2. Скачать и выполнить скрипт
update_local.sh:
wget -qO- https://raw.githubusercontent.com/ksandric/hamster-bot/refs/heads/master/update_local.sh | bash
Готово! Обновится и перезапустится бот только в папке /hb2. Скрипт сам находит сервис связаный с выбранной папкой.
Linux (CLI) | Поиск ботов на сервере
Если на вашем VPS с ОС Linux было установлено много разных ботов
и вы не можете понять какой .service к какой папке бота относится - рекомендую воспользоваться
командой:
grep -rl "hb_c" /usr/lib/systemd/system/
Эта команда выведет список всех сервисов в которых есть
исполняемый файл hb_c (это исполняемый файл бота). Таким образом вы сможете найти
нужный вам
сервис и узнать к какой папке он относится.
На картинке видим 5 сервисов, а в папке всего (2) бота - значит есть уже лишние.
Если в качестве искомой подстроки ввести имя каталога то будет
выведен список сервисов которые ссылаются на эту папку:
grep -rl "/hb/" /usr/lib/systemd/system/
Если вы хотите удалить сервис бота то нужно выполнить
команды:
1. systemctl stop hb2.service - остановить сервис hb2
2. systemctl disable hb2.service - отключить сервис hb2
3. rm -rf /usr/lib/systemd/system/hb2.service - удаление сервис файла
hb2.service
Linux (CLI) | Рестарт всех активных ботов на сервере
wget -qO- https://raw.githubusercontent.com/ksandric/hamster-bot/refs/heads/master/restart_all.sh | bash
1. Этот скрипт находит все сервисы связанные с ботом. И отдельно выводит список какие из-них
сейчас включены.
2. Перезапускает только включенные с паузой между сервисами в 15 секунд.
Linux (CLI) | Обновление всех активных ботов на сервере
wget -qO- https://raw.githubusercontent.com/ksandric/hamster-bot/refs/heads/master/update_all.sh | bash
1. Этот скрипт находит все сервисы связанные с ботом. И отдельно выводит список какие из-них
сейчас включены.
2. Обновляет только активных ботов.
Linux (CLI) | Ручная установка пошагово
Ссылка на видеоинструкцию youtu.be/jxb6aZQwtN4
Для начала нужно подключится к своему VPS по SSH используя приложение termius (или putty)
- Создать папку для бота (в примере имя папки
"hb")
mkdir -p /opt/hb - Перейти в каталог
cd /opt/hb - Скачать zip
архив
wget https://github.com/ksandric/hamster-bot/blob/master/hb_linux-x64.zip?raw=true - Если не установлен unzip -
установить
sudo apt install unzip - Распаковать
архив
unzip hb_linux-x64.zip?raw=true - Удалить архив
zip
rm -rf hb_linux-x64.zip?raw=true - Дать файлу права на запуск командной (исполняемым файлом
является - hb_c)
chmod +x ./hb_c
После этого файл можно запускать вот так ./hb_c но
для бота это не годится. нужно создавать сервис - чтобы бот работал в фоне и не закрывался при
завершении
сеанса в консоли.
- Перейти в
каталог
cd /usr/lib/systemd/system/ - Создаем файл hamster-bot_1.service. Создать файл
можно командой:
nano hamster-bot_1.service
(имя может быть любое, формат всегда.service. Таким образом можно создать Множество сервисов но только смотрите чтобы в конфиг файле у ботов были разные порты указаны)
Контент файла: hamster-bot_1.service
[Unit]
Description=hamster-bot_1
After=multi-user.target
[Service]
Environment="DOTNET_BUNDLE_EXTRACT_BASE_DIR=%h/.net"
Type=simple
ExecStart=/opt/hb/hb_c
WorkingDirectory=/opt/hb
RestartSec=61
Restart=always
[Install]
WantedBy=multi-user.target
- Cохранить изменения и закрыть файл
Ctrl+xдалее нажимаем клавишуYи затем клавишуEnter - Выполнить команды:
systemctl daemon-reloadsystemctl enable hamster-bot_1.serviceapt-get updateapt-get install -y libfreetype6apt-get install -y libfontconfig1apt-get install -y fontconfigsudo timedatectl set-timezone UTC- Дополнительно можно установить
fail2ban:
apt-get install fail2ban - Для открытия порта на котором вы запускаете бота чтобы web интерфейс был доступен из любого браузера по IP адресу вашего сервера (в примере порт 80):
-
iptables -I INPUT -p tcp --dport 80 -j ACCEPT ufw allow 80- Для запуска сервиса выполните
команду:
systemctl start hamster-bot_1.service - Готово! На этом этапе сервис уже доступен и автоматически будет запускаться при запуске сервера (+ авторестарт если выключится). Для управления сервисом:
- Смотреть вывод в консоль в реальном времени (лог
работы):
journalctl --follow -u hamster-bot_1.service - Посмотреть текущее состояние:
systemctl status hamster-bot_1.service - Остановить:
systemctl stop hamster-bot_1.service - Выключить:
systemctl disable hamster-bot_1.service - Перезапуск:
systemctl restart hamster-bot_1.service - После запуска чтобы читать лог бота в реальном времени нужно:
- Перейти в папку
cd /opt/hb/logs - Открыть лог
tail -f log_тут_дата_лога.log(это общий файл лога + бот пишет логи еще отдельно по каждой стратегии)
Linux (CLI) | Ручное обновление пошагово
Ссылка на видеоинструкцию youtu.be/FJgu7OfgUWU
Для начала нужно подключится к своему VPS по SSH используя приложение termius (или putty)
В примере название сервиса: "hamster-bot_1.service".
Папка в которой находятся файлы бота: "/opt/hb"
- Закрыть бота (остановить
сервис)
systemctl stop hamster-bot_1.service - Перейти в папку с ботом
cd /opt/hb - Скачать zip
архив
wget https://github.com/ksandric/hamster-bot/blob/master/hb_linux-x64.zip?raw=true - Распаковать архив с заменой файлов (файл
settings_program.json
проигнорируется)
unzip -u hb_linux-x64.zip?raw=true -x settings_program.json - Удалить архив
zip
rm -rf hb_linux-x64.zip?raw=true - Снова выдать файлу права на
запуск
chmod +x ./hb_c - Запустить
бота
systemctl restart hamster-bot_1.service - Готово! Бот продолжит работу по вашим настройкам. Всё делается налету без закрытия позиций и ордеров
Рекомендация по администрированию
Если на вашем VPS с ОС Linux мало памяти:
(1) Просмотр доступной и занятой памяти:
df -h
(2) Утилита с визуализацией занимаемой памяти. Для удобного
поиска тяжелых папок:
ncdu /
Часто замечаю что в системах на Ubuntu с малым объемом памяти
системные логи могут занимать много места. Эти две команды освободят место:
journalctl --vacuum-size=100M
rm /var/log/*.[0-9]
Но лучше поправить конфиг чтобы такие ситуации не наступали.
Логи бота тоже в некоторых ситуациях могут занимать много места.
они лежат в папке /logs
и так выглядят параметры лога в конфиге:
"log": {
"log_months": 2, -сколько месяцев хранить логи
"debug_mode": false,
"log_size_mb": 50, -ограничение размера фала лога
"log_files_count": 5 -ротация файла N раз при достижении лимита размера },
В логах бот выводит загрузку CPU RAM и диска. И отправляет алерт в telegram при критических
значениях.
WatchDog — уведомление об офлайне бота
WatchDog — это отдельный независимый сервис (работает на внешнем сервере), который следит за тем,
что ваш бот жив и работает.
Если бот перестаёт выходить на связь — вы получаете уведомление в Telegram:
WARNING! Bot is offline.
Настраивается в файле settings_program.json:
- Вкл/выкл — параметр
"watchdog": true/false - Интервал срабатывания в минутах — параметр
"watchdog_timer_minutes"
Рекомендуемое значение:60минут
Причины срабатывания:
- Компьютер/сервер, на котором запущен бот, перестал работать или потеряно интернет-соединение;
- Программный сбой в работе ОС или зависание системы;
- Закончился срок действия API ключа или бан от биржи;
- Сбой в работе биржи;
- Изменение настроек бота или обновление версии — меняет уникальный ключ-идентификатор, что вызовет однократное уведомление об офлайне.
Запуск на MacOS
- Скачать архив https://github.com/ksandric/hamster-bot/blob/master/hb_osx-x64.zip?raw=true
- Распаковать архив в папку
hbна рабочем столе - Открыть командную строку (terminal)
- Перейти в папку с программой. Выполнить команду в терминале
cd Desktop/hb - Дать права на запуск
chmod a+x hb_c - После распаковки один раз выполнить:
xattr -dr com.apple.quarantine .— снять карантин после скачиванияcodesign --force --sign - ./hb_c— локальная подпись
- Запустить бота
./hb_c
В архиве уже есть скрипты: mac_sign.sh — для подписи, run_tester_mac.sh — для запуска тестера.
После запуска исполняемого файла WEB интерфейс бота доступен в браузере локальн по адресу http://127.0.0.1:80.
Запуск на Windows
Инструкция как открыть порт в ОС Windows
После запуска исполняемого файла WEB интерфейс бота доступен в браузере локальн по адресу http://127.0.0.1:80. Если бот запущен на сервере то интерфейс будет доступен по IP адресу вашего сервера на порту из конфиг файла.
Рекомендуется установить Dimension 4 или nettime для синхронизации времени на windows
Подключение telegram:
-
Получение токена для входа в WEB интерфейс
- После нажатия кнопки "Get token" - Токен отправляется сообщением от telegram бота @new_hamster_bot
- Чтобы бот мог отправить вам личное сообщение нужно начать с ботом диалог нажав кнопку
/start - Однаразовый токен на вход выглядит примерно вот так:
re0hcc4rIE6cYUI - Время действия токена = 24 часа с момента создания
- ⚠️ Сообщение отправляется по вашему telegram id. Этот id должен быть
прописан в файле
settings_program.jsonпараметр"telegram_id"(для применения изменений нужно перезапустить приложение ⚠️) - Получите свой
"telegram_id"используя бота @fetch_id_bot
-
Получение уведомлений от бота в
telegram
- Id чата в который нужно отправить уведомление должен быть прописан в файле
settings_program.jsonпараметр"id_chat" - Получите
"id_chat"нужного чата используя бота @fetch_id_bot. Если нужно получитьid_chatконкретного чата - нужно добавить бота @fetch_id_bot в чат и он сразу пришлет id (для чата это отрицательное число). Для полученияid_chatу telegram канала - перешлите любой пост с канала боту @fetch_id_bot - (опционально) Вы можете прописать в файле настроек
settings_program.jsonтокен от своего телеграм бота."bot_token": "",. Но токен на вход в WEB интерфейс отправляет только бот @new_hamster_bot - Для более гибкой настройки уведомлений вы можете прописать отдельно для каждой настройки стратегии
индивидуальный чат. Раздел в настройках
"tg_notification"параметр"id_chat"