Source: https://hamster-bot.com/ru/bot

# Инструкции hamster-bot

#### Выберите удобный способ запуска бота

Бесплатно

##### Self-Hosted версия

Скачайте бота и запустите **на своём сервере или компьютере**. Полный контроль, без ежемесячной платы.

---

**Сборки доступны для:**

Windows Linux ARM64 macOS

[Скачать бота и инструкции →](https://hamster-bot.com/ru/bot)

Online сервис

##### Готовый Online бот

Не нужно заниматься хостингом — **бот уже запущен** и работает на нашем сервере. Получите персональную ссылку сразу после оплаты.

- Изолированный инстанс бота
- Поддержка от разработчика

19 USDT / месяц

[Купить подписку →](https://t.me/new_hamster_bot?start=pay)

#### Аренда VPS

[Аренда Linux VPS на примере ZOMRO для торгового бота | Подключение по SSH](https://www.youtube-nocookie.com/embed/zmiTOxyXWeQ)

VPS (VDS) - виртуальный выделенный сервер.
Для нас VPS это полноценный компьютер. Находится он в датацентре провайдера. И провайдер отвечает за бесперебойную работу сервера и стабильное интернет соединение. Это важно для трейдинга!

Будем использовать VPS для запуска программы бота. Это самый правильный самый надежный способ для работы программ торгующих на бирже.

Какую конфигурацию сервера выбрать: При аренде своего первого VPS сервера можно выбрать просто самый дешевый. Его производительности будет достаточно. Софт оптимизирован и не требовательный к ресурсам.

Провайдеры для примера: [zomro.com](https://zomro.com/vps?from=413202), [contabo.com](https://contabo.com/?show=vps), [melbicom.ru](https://bill-eu.melbicom.net/login)
По возможности воспользуйтесь моей реферальной ссылкой: [zomro.com/vps?from=413202](https://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](https://termius.com/download/windows) (или [putty](https://putty.org.ru/download))
**Termius** можно установить даже на смартфон. Будет достаточно бесплатной версии этой программы. (все предложения купить можно просто игнорировать)

#### Linux (CLI) | УСТАНОВКА

Вы выбрали путь с арендой личного VPS и Self-Hosted бот

Для начала нужно подключится к своему VPS по SSH используя приложение [termius](https://termius.com/download/windows) (Это бесплатный софт который настойчиво просит вас купить платную версию)
После оплаты сервера вам выдают IP адрес, логин (Обычно `root`) и пароль для подключения по SSH.

Инструкция по установке бота на линукс сервере очень простые из-за наличия готовых скриптов.
Достаточно скопировать -> вставить -> выполнить команды в интерфейсе командной строки.

[Инструкция по установке дополнительного бота на сервер](https://www.youtube-nocookie.com/embed/U4Lozzf4zbg)

- **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
```

- После запуска бота по этим инструкциям он работает как сервис (в фоне и автоматически будет запускаться при запуске сервера + авторестарт если выключится). Для управления сервисом:

#### 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. Остановить сервис **hb2**:
   ```
   systemctl stop hb2.service
   ```
2. Отключить сервис **hb2**:
   ```
   systemctl disable hb2.service
   ```
3. Удаление сервис файла **hb2.service**:
   ```
   rm -rf /usr/lib/systemd/system/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](https://youtu.be/jxb6aZQwtN4)

Для начала нужно подключится к своему VPS по SSH используя приложение [termius](https://termius.com/download/windows) (или [putty](https://putty.org.ru/download))

- Создать папку для бота (в примере имя папки "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`
- Выполнить команды:
- Для открытия порта на котором вы запускаете бота чтобы web интерфейс был доступен из любого браузера по IP адресу вашего сервера (в примере порт 80):
- Для запуска сервиса выполните команду:
  ```
  systemctl start hamster-bot_1.service
  ```
- Готово! На этом этапе сервис уже доступен и автоматически будет запускаться при запуске сервера (+ авторестарт если выключится). Для управления сервисом:
- После запуска чтобы читать лог бота в реальном времени нужно:

#### Linux (CLI) | Ручное обновление пошагово

Ссылка на видеоинструкцию [youtu.be/FJgu7OfgUWU](https://youtu.be/FJgu7OfgUWU)

Для начала нужно подключится к своему VPS по SSH используя приложение termius (или putty)

В примере название сервиса: "**hamster-bot_1.service**".
Папка в которой находятся файлы бота: "**/opt/hb**"

1. Закрыть бота (остановить сервис)
   ```
   systemctl stop hamster-bot_1.service
   ```
2. Перейти в папку с ботом
   ```
   cd /opt/hb
   ```
3. Скачать zip архив
   ```
   wget https://github.com/ksandric/hamster-bot/blob/master/hb_linux-x64.zip?raw=true
   ```
4. Распаковать архив с заменой файлов (файл settings_program.json проигнорируется)
   ```
   unzip -u hb_linux-x64.zip?raw=true -x settings_program.json
   ```
5. Удалить архив zip
   ```
   rm -rf hb_linux-x64.zip?raw=true
   ```
6. Снова выдать файлу права на запуск
   ```
   chmod +x ./hb_c
   ```
7. Запустить бота
   ```
   systemctl restart hamster-bot_1.service
   ```
8. Готово! Бот продолжит работу по вашим настройкам. Всё делается налету без закрытия позиций и ордеров

#### Рекомендация по администрированию

Если на вашем 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](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](http://127.0.0.1:80).**

#### Запуск на Windows

Для каждого бота создайте отдельную папку (например `C:\bots\bot_1`, `C:\bots\bot_2` ...). Установить бота можно одним из трёх способов:

**Способ 1. Скачать архив вручную**

- Скачать архив [https://github.com/ksandric/hamster-bot/blob/master/hb.zip?raw=true](https://github.com/ksandric/hamster-bot/blob/master/hb.zip?raw=true)
- Распаковать архив в папку бота
- Запустить `hb_c.exe`

**Способ 2. Скрипт установки manage_local.bat**

- Скачать скрипт [manage_local.bat](https://raw.githubusercontent.com/ksandric/hamster-bot/refs/heads/master/manage_local.bat) (правый клик по ссылке → «Сохранить ссылку как...») и положить его в пустую папку бота
- Запустить двойным кликом. Скрипт сам запросит права администратора и покажет меню
- Бот устанавливается в ту папку, где лежит `manage_local.bat`. Поэтому не запускайте его из папки с другими файлами

Что умеет скрипт:

- **Install** — скачать бота, дальше запускать `hb_c.exe` вручную
- **Install as service** — скачать бота, задать порт, добавить в автозапуск (планировщик задач Windows), открыть порт в брандмауэре и запустить. Бот перезапускается сам, если упал
- **Update** — обновить бота (`settings_program.json` сохраняется)
- **Stop / Start**, **Disable / Enable** автозапуск, **Remove** — удалить сервис
- **Show log** — смотреть лог бота в реальном времени
- **Open port** — открыть порт в брандмауэре Windows

Потом этот же `manage_local.bat` можно запускать двойным кликом для обновления и управления ботом.

Когда выходит новая версия, обновить бота на Windows можно и кнопкой «Обновить бота» в веб-интерфейсе: бот сам скачает свежий `manage_local.bat` и запустит обновление в фоне (если бот установлен как сервис — через разовую задачу планировщика). Ход обновления пишется в файл `update.log` в папке бота.

**Способ 3. Командой в cmd или PowerShell**

Через обычную командную строку **cmd** (c правами администратора):

```
mkdir C:\bots\bot_1 && cd /d C:\bots\bot_1
```

```
curl -sLo manage_local.bat https://raw.githubusercontent.com/ksandric/hamster-bot/refs/heads/master/manage_local.bat && manage_local.bat
```

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

Через **PowerShell, запущенный от имени администратора** (Win+X → «Терминал (администратор)»):

```
mkdir C:\bots\bot_1; cd C:\bots\bot_1
```

```
irm https://raw.githubusercontent.com/ksandric/hamster-bot/refs/heads/master/manage_local.bat | iex
```

- Сначала обязательно перейдите в папку бота. PowerShell администратора открывается в `C:\Windows\System32`, и там скрипт откажется работать
- PowerShell должен быть уже запущен от администратора. В этом режиме скрипт не может сам запросить права и выведет `Run PowerShell as administrator`

**После запуска исполняемого файла WEB интерфейс бота доступен в браузере локальн по адресу [http://127.0.0.1:80](http://127.0.0.1:80).** Если бот запущен на сервере то интерфейс будет доступен по IP адресу вашего сервера на порту из конфиг файла.

Рекомендуется установить Dimension 4 или nettime для синхронизации времени на windows

#### Подключение telegram:

- После нажатия кнопки "Get token" - Токен отправляется сообщением от telegram бота [@new_hamster_bot](https://t.me/new_hamster_bot)
- Чтобы бот мог отправить вам личное сообщение нужно начать с ботом диалог нажав кнопку `/start`
- Однаразовый токен на вход выглядит примерно вот так: `re0hcc4rIE6cYUI`
- Время действия токена = 24 часа с момента создания
- ⚠️ Сообщение отправляется по вашему telegram id. Этот id должен быть прописан в файле `settings_program.json` параметр `"telegram_id"` (для применения изменений нужно перезапустить приложение ⚠️)
- Получите свой `"telegram_id"` используя бота [@fetch_id_bot](https://t.me/fetch_id_bot)

- Id чата в который нужно отправить уведомление должен быть прописан в файле `settings_program.json` параметр `"id_chat"`
- Получите `"id_chat"` нужного чата используя бота [@fetch_id_bot](https://t.me/fetch_id_bot). Если нужно получить `id_chat` конкретного чата - нужно добавить бота @fetch_id_bot в чат и он сразу пришлет id (для чата это отрицательное число). Для получения `id_chat` у telegram канала - перешлите любой пост с канала боту @fetch_id_bot
- (опционально) Вы можете прописать в файле настроек `settings_program.json` токен от своего телеграм бота. `"bot_token": "",`. Но токен на вход в WEB интерфейс отправляет только бот [@new_hamster_bot](https://t.me/new_hamster_bot)
- Для более гибкой настройки уведомлений вы можете прописать отдельно для каждой настройки стратегии индивидуальный чат. Раздел в настройках `"tg_notification"` параметр `"id_chat"`

#### API и MCP — управление ботом из скриптов и ИИ-ассистентов

У бота есть HTTP API на том же адресе и порту, что и веб-интерфейс. Через него можно читать состояние ботов, позиции, ордера и логи, менять стратегии и API-ключи, торговать, запускать тестер и забирать его отчёты. Доступ — по токену `api_token` (заголовок `Authorization: Bearer`), его можно скопировать в веб-интерфейсе бота: «Глобальная конфигурация» → «Токен API и MCP».

Бот также работает как MCP-сервер: ИИ-ассистент (Claude и другие клиенты MCP) может сам смотреть состояние бота, вести исследования стратегий в тестере и управлять стратегиями. MCP включается параметром `"use_mcp": true` в `settings_program.json` и доступен по адресу `http://127.0.0.1:<порт>/mcp`.

Полное описание эндпоинтов, доступа и подключения MCP: [API и MCP](https://hamster-bot.com/ru/api)
