Escolha uma forma conveniente de rodar o bot
Versão Self-Hosted
Baixe o bot e rode-o no seu próprio servidor ou computador. Controle total, sem mensalidade.
Builds disponíveis para:
Bot Online pronto para uso
Sem necessidade de hospedagem — o bot já está rodando no nosso servidor. Receba seu link pessoal logo após o pagamento.
- Instância isolada do bot
- Suporte do desenvolvedor
Aluguel de VPS
VPS (VDS) é um servidor dedicado virtual.
Para nós, um VPS é um computador completo, localizado no data center do provedor. E o provedor é responsável pelo
funcionamento ininterrupto do servidor e por uma conexão de internet estável. Isso é importante para o trading!
Vamos usar o VPS para rodar o programa do bot. Essa é a forma mais correta e confiável de rodar
programas que operam em uma exchange.
Qual configuração de servidor escolher: ao alugar seu primeiro servidor VPS, você pode simplesmente escolher o
mais barato.
O desempenho dele será suficiente. O software é otimizado e não exige muitos recursos.
Provedores de exemplo: zomro.com, contabo.com, melbicom.ru
Se possível, use meu
link de indicação: zomro.com/vps?from=413202 Código promocional:
zomro_413202
O bot pode rodar em qualquer SO: Linux, macOS e Windows.
Versões de SO recomendadas
Ubuntu: 20.04 , 22.04 ,
24.04
❗️Escolha uma localização de servidor fora dos EUA. (As exchanges costumam bloquear requisições vindas dos EUA). As regiões Europa e
Ásia estão
OK
Você recebe acesso remoto a esse computador alugado. (endereço IP, login (geralmente
root) e senha)
Para conectar ao seu VPS com Linux, vamos usar SSH através do app termius (ou putty)
O Termius pode até ser instalado em um smartphone. A versão gratuita desse programa já é suficiente.
(todas
as ofertas de compra podem simplesmente ser ignoradas)
Linux (CLI) | INSTALAÇÃO
Você escolheu o caminho de alugar seu próprio VPS e rodar um bot self-hosted
Primeiro você precisa se conectar ao seu VPS via SSH usando o app
termius (é um software gratuito que
insiste bastante para você comprar a versão paga)
Depois de pagar pelo servidor, você recebe o endereço IP, o login (geralmente root) e a senha para conexão via
SSH.
A instalação do bot em um servidor Linux é bem simples graças
a scripts prontos.
Basta copiar -> colar -> executar os comandos na interface de linha
de
comando.
- 1. Crie uma nova pasta para o bot (no exemplo, a pasta
hb1). Assim você pode instalar vários bots em pastas diferentes, hb1, hb2 ...
:
mkdir -p /opt/hb1 - 2. Entre na pasta
criada:
cd /opt/hb1 - 3. Baixe e execute o script
install_local.sh:
wget -qO- https://raw.githubusercontent.com/ksandric/hamster-bot/refs/heads/master/install_local.sh | bash
Esse comando baixa o arquivo do script install_local.sh e executa a instalação. (o script baixa -> descompacta o arquivo zip e cria um .service no systemd) - 4. Durante o processo, o script vai pedir para você digitar uma porta e vai verificar sozinho se a porta informada está livre. Já que não é possível rodar mais de um bot na mesma porta. Recomendo escolher as portas em ordem, começando pela 81 em diante.
Pronto! O bot é instalado na pasta hb1 e um serviço
com o mesmo nome, hb1.serviece, será iniciado.
No terminal vão aparecer, em tempo real, as informações do bot (log de funcionamento). Você pode fechar o termius e
seguir
para
adicionar as chaves de API e configurar as estratégias.
Se você substituir os arquivos do bot no servidor manualmente via SFTP -
não esqueça o comando para dar permissão de execução ao arquivo executável: chmod +x ./hb_c
- Depois de iniciar o bot seguindo essas instruções, ele roda como um serviço (em segundo plano, iniciando automaticamente com o servidor + reinício automático se parar). Para gerenciar o serviço:
- Ver a saída no console em tempo real (log
de funcionamento):
journalctl --follow -u hamster-bot_1.service - Ver o status atual:
systemctl status hamster-bot_1.service - Parar:
systemctl stop hamster-bot_1.service - Desativar:
systemctl disable hamster-bot_1.service(necessário ao remover o bot) - Reiniciar:
systemctl restart hamster-bot_1.service
Linux (CLI) | ATUALIZAÇÃO
Quando você tem 2 ou mais bots rodando no seu
VPS:/opt/hb1
/opt/hb2
/opt/hb3
Para atualizar o bot na pasta /opt/hb2, você precisa executar os seguintes comandos em sequência:
- 1. Vá até a pasta desejada (no
exemplo, a pasta hb2):
cd /opt/hb2 - 2. Baixe e execute o script
update_local.sh:
wget -qO- https://raw.githubusercontent.com/ksandric/hamster-bot/refs/heads/master/update_local.sh | bash
Pronto! Apenas o bot da pasta /hb2 será atualizado e reiniciado. O script encontra sozinho o serviço associado à pasta escolhida.
Linux (CLI) | Encontrando bots no servidor
Se você instalou vários bots diferentes no seu VPS com Linux
e não consegue identificar qual .service corresponde a qual pasta de bot - recomendo usar
o comando:
grep -rl "hb_c" /usr/lib/systemd/system/
Esse comando exibe a lista de todos os serviços que contêm
o executável hb_c (esse é o arquivo executável do bot). Assim você consegue encontrar
o serviço que precisa e descobrir a qual pasta ele pertence.
Na imagem vemos 5 serviços, enquanto há apenas (2) bots nas pastas - ou seja, já existem serviços extras.
Se você usar o nome de uma pasta como termo de busca, será
exibida a lista de serviços que fazem referência a essa pasta:
grep -rl "/hb/" /usr/lib/systemd/system/
Se você quiser remover um serviço de bot, é preciso executar os
comandos:
1. systemctl stop hb2.service - parar o serviço hb2
2. systemctl disable hb2.service - desativar o serviço hb2
3. rm -rf /usr/lib/systemd/system/hb2.service - remover o arquivo de serviço
hb2.service
Linux (CLI) | Reiniciar todos os bots ativos no servidor
wget -qO- https://raw.githubusercontent.com/ksandric/hamster-bot/refs/heads/master/restart_all.sh | bash
1. Esse script encontra todos os serviços associados ao bot. E lista separadamente quais deles
estão ativados no momento.
2. Reinicia apenas os ativados, com uma pausa de 15 segundos entre os serviços.
Linux (CLI) | Atualizar todos os bots ativos no servidor
wget -qO- https://raw.githubusercontent.com/ksandric/hamster-bot/refs/heads/master/update_all.sh | bash
1. Esse script encontra todos os serviços associados ao bot. E lista separadamente quais deles
estão ativados no momento.
2. Atualiza apenas os bots ativos.
Linux (CLI) | Instalação manual passo a passo
Link do vídeo tutorial youtu.be/jxb6aZQwtN4
Primeiro você precisa se conectar ao seu VPS via SSH usando o app termius (ou putty)
- Crie uma pasta para o bot (no exemplo, o nome da pasta é
"hb")
mkdir -p /opt/hb - Entre na pasta
cd /opt/hb - Baixe o arquivo
zip
wget https://github.com/ksandric/hamster-bot/blob/master/hb_linux-x64.zip?raw=true - Se o unzip não estiver instalado -
instale-o
sudo apt install unzip - Descompacte o
arquivo
unzip hb_linux-x64.zip?raw=true - Exclua o arquivo
zip
rm -rf hb_linux-x64.zip?raw=true - Dê permissão de execução ao arquivo (o arquivo executável
é o hb_c)
chmod +x ./hb_c
Depois disso, o arquivo já pode ser executado assim ./hb_c, mas
isso não é adequado para um bot. É preciso criar um serviço - para que o bot rode em segundo plano e não seja encerrado ao
fechar
a sessão no console.
- Vá até o
diretório
cd /usr/lib/systemd/system/ - Crie o arquivo hamster-bot_1.service. Você pode criar o arquivo
com o comando:
nano hamster-bot_1.service
(o nome pode ser qualquer um, o formato é sempre.service. Assim você pode criar vários serviços, mas apenas tome cuidado para que no arquivo de config os bots tenham portas diferentes configuradas)
Conteúdo do arquivo: 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
- Salve as alterações e feche o arquivo com
Ctrl+x, depois pressione a teclaYe em seguida a teclaEnter - Execute os comandos:
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- Opcionalmente você também pode instalar o
fail2ban:
apt-get install fail2ban - Para abrir a porta na qual você está rodando o bot, para que a interface web fique acessível a partir de qualquer navegador pelo endereço IP do seu servidor (no exemplo, porta 80):
-
iptables -I INPUT -p tcp --dport 80 -j ACCEPT ufw allow 80- Para iniciar o serviço, execute o
comando:
systemctl start hamster-bot_1.service - Pronto! Nesse ponto o serviço já está disponível e vai iniciar automaticamente com o servidor (+ reinício automático se parar). Para gerenciar o serviço:
- Ver a saída no console em tempo real (log
de funcionamento):
journalctl --follow -u hamster-bot_1.service - Ver o status atual:
systemctl status hamster-bot_1.service - Parar:
systemctl stop hamster-bot_1.service - Desativar:
systemctl disable hamster-bot_1.service - Reiniciar:
systemctl restart hamster-bot_1.service - Depois de iniciar, para ler o log do bot em tempo real você precisa:
- Ir até a pasta
cd /opt/hb/logs - Abrir o log
tail -f log_data_do_log.log(esse é o log geral + o bot também grava logs separados por estratégia)
Linux (CLI) | Atualização manual passo a passo
Link do vídeo tutorial youtu.be/FJgu7OfgUWU
Primeiro você precisa se conectar ao seu VPS via SSH usando o app termius (ou putty)
No exemplo, o nome do serviço é: "hamster-bot_1.service".
Pasta onde estão os arquivos do bot: "/opt/hb"
- Pare o bot (pare o
serviço)
systemctl stop hamster-bot_1.service - Vá até a pasta do bot
cd /opt/hb - Baixe o arquivo
zip
wget https://github.com/ksandric/hamster-bot/blob/master/hb_linux-x64.zip?raw=true - Descompacte o arquivo substituindo os arquivos existentes (o arquivo
settings_program.json
será ignorado)
unzip -u hb_linux-x64.zip?raw=true -x settings_program.json - Exclua o arquivo
zip
rm -rf hb_linux-x64.zip?raw=true - Dê permissão de execução ao arquivo novamente
chmod +x ./hb_c - Inicie o
bot
systemctl restart hamster-bot_1.service - Pronto! O bot continuará funcionando com suas configurações. Tudo é feito na hora, sem fechar posições ou ordens
Recomendação de administração
Se o seu VPS com Linux tem pouca memória:
(1) Ver memória disponível e utilizada:
df -h
(2) Uma ferramenta com visualização do uso de memória. Para facilitar a
busca por pastas pesadas:
ncdu /
Percebo com frequência que, em sistemas Ubuntu com pouca memória,
os logs do sistema podem ocupar bastante espaço. Esses dois comandos vão liberar espaço:
journalctl --vacuum-size=100M
rm /var/log/*.[0-9]
Mas é melhor ajustar a configuração para que essa situação não aconteça.
Os logs do bot também podem, em algumas situações, ocupar bastante espaço.
Eles ficam na pasta /logs
e é assim que os parâmetros de log ficam na configuração:
"log": {
"log_months": 2, - quantos meses manter os logs
"debug_mode": false,
"log_size_mb": 50, - limite de tamanho do arquivo de log
"log_files_count": 5 - rotação do arquivo N vezes ao atingir o limite de tamanho },
Nos logs, o bot registra o uso de CPU, RAM e disco. E envia um alerta para o telegram em valores
críticos.
WatchDog — notificação de bot offline
O WatchDog é um serviço independente separado (roda em um servidor externo) que monitora
se o seu bot está ativo e funcionando.
Se o bot parar de responder - você recebe uma notificação no Telegram:
WARNING! Bot is offline.
Configurado no arquivo settings_program.json:
- Ativar/desativar — parâmetro
"watchdog": true/false - Intervalo de disparo em minutos — parâmetro
"watchdog_timer_minutes"
Valor recomendado:60minutos
Causas do disparo:
- O computador/servidor no qual o bot está rodando parou de funcionar ou perdeu a conexão com a internet;
- Falha de software no SO ou travamento do sistema;
- A chave de API expirou ou houve um banimento por parte da exchange;
- Instabilidade na exchange;
- Alterar as configurações do bot ou atualizar a versão — muda a chave identificadora única, o que dispara uma notificação de offline única.
Execução no macOS
- Baixe o arquivo https://github.com/ksandric/hamster-bot/blob/master/hb_osx-x64.zip?raw=true
- Descompacte o arquivo em uma pasta
hbna área de trabalho - Abra o terminal
- Vá até a pasta do programa. Execute o comando no terminal
cd Desktop/hb - Dê permissão de execução
chmod a+x hb_c - Depois de descompactar, execute uma única vez:
xattr -dr com.apple.quarantine .— remove a quarentena após o downloadcodesign --force --sign - ./hb_c— assinatura local
- Execute o bot
./hb_c
O arquivo já inclui os scripts: mac_sign.sh para assinatura e run_tester_mac.sh para executar o testador.
Depois de executar o arquivo executável, a interface WEB do bot fica disponível localmente no navegador em http://127.0.0.1:80.
Execução no Windows
Guia de como abrir uma porta no Windows
Depois de executar o arquivo executável, a interface WEB do bot fica disponível localmente no navegador em http://127.0.0.1:80. Se o bot estiver rodando em um servidor, a interface ficará disponível pelo endereço IP do seu servidor, na porta definida no arquivo de configuração.
Recomenda-se instalar o Dimension 4 ou o nettime para sincronizar o horário no windows
Conexão com o telegram:
-
Obtendo o token para acessar a interface WEB
- Depois de clicar no botão "Get token" - o token é enviado em uma mensagem pelo bot do telegram @new_hamster_bot
- Para que o bot consiga te enviar uma mensagem privada, é preciso iniciar uma conversa com ele clicando no botão
/start - O token de acesso único se parece com isto:
re0hcc4rIE6cYUI - O token é válido por 24 horas a partir da criação
- ⚠️ A mensagem é enviada para o seu id do telegram. Esse id precisa estar
cadastrado no arquivo
settings_program.json, parâmetro"telegram_id"(para aplicar as alterações é preciso reiniciar o aplicativo ⚠️) - Obtenha o seu
"telegram_id"usando o bot @fetch_id_bot
-
Recebendo notificações do bot no
telegram
- O id do chat para o qual a notificação deve ser enviada precisa estar cadastrado no arquivo
settings_program.json, parâmetro"id_chat" - Obtenha o
"id_chat"do chat desejado usando o bot @fetch_id_bot. Se precisar obter oid_chatde um chat específico - adicione o bot @fetch_id_bot ao chat e ele vai te enviar o id na hora (para um chat, é um número negativo). Para obter oid_chatde um canal do telegram - encaminhe qualquer post do canal para o bot @fetch_id_bot - (opcional) Você pode cadastrar no arquivo de configurações
settings_program.jsono token do seu próprio bot do telegram."bot_token": "",. Mas o token de acesso à interface WEB só é enviado pelo bot @new_hamster_bot - Para uma configuração de notificações mais flexível, você pode definir, para cada configuração de estratégia,
um chat individual. Na seção de configurações
"tg_notification", parâmetro"id_chat"