Como manter um bot Discord online na VPS Linux com systemd
Configure um serviço systemd para iniciar seu bot no boot, reiniciar após falhas e consultar os logs sem expor o token.
Na VPS Linux, crie um serviço systemd para executar o bot com um usuário sem privilégios, diretório de trabalho definido e Restart=on-failure. Ative o serviço no boot e acompanhe o journal para identificar falhas. Proteja o token fora do código e teste uma reinicialização da VPS antes de considerar a configuração pronta.
Passo 1: Prepare o bot antes de automatizar
Confirme que o bot inicia manualmente e permanece conectado na versão de runtime exigida pelo projeto. Corrija erros de dependência, configuração e acesso à rede antes de criar o serviço. Crie um usuário de sistema próprio para o processo e dê acesso somente à pasta e aos arquivos necessários. Nunca coloque o token do Discord no repositório, na linha ExecStart ou em uma captura de tela.
Passo 2: Defina uma unidade systemd pequena
Em uma unidade .service, configure User para a conta do bot, WorkingDirectory para a pasta do projeto e ExecStart para o executável e arquivo principal corretos. Use Restart=on-failure para reiniciar depois de falhas do processo. Um arquivo de ambiente pode fornecer segredos, desde que suas permissões restrinjam a leitura e ele fique fora do Git. A documentação do systemd explica que a política de reinício também está sujeita a limites de tentativas; um erro repetido precisa ser resolvido no aplicativo.
- Crie um usuário sem privilégios e instale o bot.
- Crie a unidade .service com User, WorkingDirectory e ExecStart.
- Configure Restart=on-failure e proteja o arquivo de ambiente.
- Recarregue o systemd e inicie a unidade.
Passo 3: Ative no boot e examine os logs
Após criar ou alterar a unidade, execute systemctl daemon-reload. Use systemctl enable --now nome.service para ativar e iniciar; confira systemctl status nome.service. Consulte journalctl -u nome.service para encontrar o erro real. Se o processo entra em loop de falhas, interrompa, corrija o código ou configuração e só então tente novamente. Não use reinício automático para esconder um bug permanente.
Passo 4: Teste a recuperação e mantenha a segurança
Faça uma reinicialização planejada da VPS e confirme que o serviço voltou e que o bot responde a um comando de teste. Monitore uso de CPU e RAM e registre alertas para quedas. Atualize dependências com backup e procedimento de rollback. Se o token vazar, revogue-o no portal do Discord; mudar apenas o arquivo local não invalida um token exposto.
Escolha uma VPS para o seu bot
Compare recursos para seu runtime, banco e volume de comandos.
Fontes oficiais
Confira as publicações usadas neste artigo: