Hospedagem gratuita de bot Telegram na Google Cloud Platform

Por que GCP?

Ao escrever bots para o Telegram, deparei-me com a questão de como fazer para que o bot funcionasse constantemente, de forma rápida e gratuita. As opções com Heroku e Pythonanywhere têm limites muito pequenos, se você tiver mais de um bot. Portanto, decidi usar o GCP. A plataforma oferece 300 dólares gratuitamente por um ano + enormes descontos ao utilizar esses recursos (até 94%).

Hospedagem gratuita de bot Telegram na Google Cloud Platform

Como hospedar seu bot?

Passo 1. Registro no GCP

Vamos para o site GCP e clicamos em Comece gratuitamente.
Hospedagem gratuita de bot Telegram na Google Cloud Platform
Insira seus dados e informações do cartão. O dinheiro do cartão não será cobrado, a menos que você ative a assinatura paga.

Hospedagem gratuita de bot Telegram na Google Cloud Platform

Passo 2. Criar uma máquina virtual

Após o registro, você será levado à página principal do serviço. Você precisa selecionar a guia Compute Engine na seção Recursos.
Hospedagem gratuita de bot Telegram na Google Cloud Platform
É necessário criar uma nova instância.

Hospedagem gratuita de bot Telegram na Google Cloud Platform
Se você não for implantar um banco de dados em máquina virtual, pode escolher o g1-small, caso contrário, recomendo o n1-standard.

Hospedagem gratuita de bot Telegram na Google Cloud Platform
Você também precisará escolher um sistema operacional. Eu escolhi Debian GNU/Linux 9 (stretch).

Hospedagem gratuita de bot Telegram na Google Cloud Platform
Pronto, a VM foi criada. A implantação normal leva de 1 a 5 minutos.

Passo 3. Configuração da máquina virtual

Você pode se conectar por SSH do seu PC ou interagir através da plataforma.
Para isso, clique em SSH.

Hospedagem gratuita de bot Telegram na Google Cloud Platform
Você verá um terminal Linux em uma nova janela.

Hospedagem gratuita de bot Telegram na Google Cloud Platform
Agora vamos para a configuração. Primeiro, insira o comando:

sudo apt-get update

para atualizar as informações sobre as versões mais recentes dos pacotes.

Depois, insira:

sudo apt-get install python3-setuptools
sudo apt-get install python3-pip

Você não precisa instalar o Python, ele já está presente.

Agora, é necessário instalar todas as bibliotecas necessárias. Há uma pequena nuance, todas as bibliotecas devem ser instaladas duas vezes:

pip3 install 'name_of_package'

para usar com o comando python3, e

sudo pip3 install 'name_of_package'

para o systemd. Esta ferramenta ajudará você a executar o bot e reiniciá-lo se ele falhar.
A maneira mais simples de executar o bot é através do python3, mas ele será desligado quando você desconectar. Você pode usar screen, mas o bot não será reiniciado automaticamente. Também é possível usar crontab com verificação de porta, mas eu acho que essa opção é mais complicada do que o systemd.

Passo 4. Carregar o bot no servidor

Existem duas maneiras de carregar seu bot. Se você não estiver familiarizado com o Git, pode simplesmente compactar o bot em .tar e carregá-lo no servidor:

Hospedagem gratuita de bot Telegram na Google Cloud Platform
Depois, descompactamos com o comando:

tar -xvf yourfile.tar

Agora seu bot está armazenado na pasta com o nome do arquivo compactado.

O segundo método é através do Git. Não vou explicar como fazer isso para pessoas que sabem usá-lo.

Após a instalação com o comando:

sudo apt install git

Você pode cloná-lo para sua VM.

Depois disso, vamos configurar o systemd. Para isso, vamos para o diretório dele:

cd /etc/systemd/system

E criamos o arquivo bot.service:

sudo nano bot.service

Insira no espaço que se abriu o seguinte:


[Unit]
Description=Telegram bot 'Nome do bot'
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/nome do seu usuário/nome da pasta onde está o bot
ExecStart=/usr/bin/python3 /home/nome do seu usuário/nome da pasta onde está o bot/bot.py

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Feche e salve o arquivo. Fecha-se com o comando Ctrl+X.

Depois disso, digite os comandos um a um:

sudo systemctl daemon-reload
sudo systemctl enable bot
sudo systemctl start bot
sudo systemctl status bot

Se tudo correr bem, você verá algo assim:

Hospedagem gratuita de bot Telegram na Google Cloud Platform
Pronto, agora seu bot está funcionando por conta própria. Espero que meu artigo ajude você a hospedar seu bot.

P.S.

1. Verifique seu bot quanto a erros

Inicie seu bot e verifique seu funcionamento antes de executá-lo pelo systemd. Para isso, vá até a pasta do bot e inicie-o pelo python.

cd 
python3 bot.py

2. Adicione a codificação nos arquivos com os scripts py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

Adicione no início do arquivo.

3. Erros no systemd

Se você verificou o bot quanto a erros e ele funcionou normalmente, mas não quer iniciar no systemd, você pode verificar os logs e entender qual é o problema visualizando o arquivo:

sudo nano /var/log/syslog

Você pode baixar esse arquivo e visualizá-lo no seu computador através do Notepad+.

4. Atualizando o bot

Se você deseja adicionar ou fazer o upload de uma nova versão do bot, insira o comando:

sudo systemctl stop bot

Realize todas as manipulações necessárias. E depois digite os seguintes comandos para que ele volte a funcionar:

sudo systemctl daemon-reload
sudo systemctl start bot
sudo systemctl status bot

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster