Como Implantar um Bot do Discord no Railway
🔍 WiseChecker

Como Implantar um Bot do Discord no Railway

Você criou um bot do Discord e o testou localmente. Agora quer que ele funcione 24/7 sem manter o computador ligado. Railway é uma plataforma em nuvem que hospeda aplicativos facilmente. Este artigo explica como implantar seu bot do Discord no Railway para que ele fique online e responda a comandos.

Principais pontos: Implantar um bot do Discord no Railway

  • Painel do Railway > Novo Projeto > Implantar do GitHub: Conecte o repositório do seu bot ao Railway para implantação automática.
  • Variáveis de Ambiente > DISCORD_TOKEN: Armazene o token do seu bot com segurança no Railway para mantê-lo privado.
  • Railway > Implantações > Reiniciar: Reinicie manualmente o bot após alterações no código ou se ele ficar offline.

ADVERTISEMENT

Visão Geral do Railway e Implantação de Bot do Discord

Railway é um Platform as a Service que executa seu código na nuvem. Ele suporta Node.js, Python, Go e muitos outros runtimes. Seu bot do Discord deve ser configurado para rodar como um processo de longa duração. O Railway detecta automaticamente o runtime a partir dos arquivos do seu projeto e inicia o bot.

Antes de implantar, o código do seu bot deve estar em um repositório Git hospedado no GitHub. O Railway puxa o código desse repositório e o implanta. Você precisa de uma conta no Railway, uma conta no GitHub e um token de bot do Discord obtido no Portal do Desenvolvedor do Discord.

O Railway usa variáveis de ambiente para armazenar segredos como o token do seu bot. Não codifique o token diretamente no código. Em vez disso, leia-o de uma variável de ambiente chamada DISCORD_TOKEN ou similar. Isso mantém seu token seguro e torna a implantação portátil.

Passos para Implantar um Bot do Discord no Railway

Siga estes passos exatamente. O processo assume que você tem um bot do Discord funcional escrito em Node.js ou Python. Ajuste os comandos de runtime se você usar uma linguagem diferente.

Passo 1: Preparar o Código do Bot para Implantação

  1. Criar um repositório no GitHub
    Envie o código do seu bot para um repositório público ou privado no GitHub. O Railway só pode implantar código de um repositório, não de uma pasta local.
  2. Adicionar um script de inicialização
    Para bots em Node.js, certifique-se de que o package.json tenha um script start. Exemplo: "start": "node index.js". Para bots em Python, adicione um Procfile com worker: python bot.py ou use um script start.sh.
  3. Remover tokens codificados
    Substitua qualquer token codificado por process.env.DISCORD_TOKEN para Node.js ou os.getenv('DISCORD_TOKEN') para Python. Faça commit e push das alterações.

Passo 2: Conectar o Railway ao GitHub

  1. Fazer login no Railway
    Acesse railway.app e faça login com sua conta do GitHub. O Railway usa OAuth do GitHub para autenticação.
  2. Criar um novo projeto
    Clique em Novo Projeto no painel. Selecione Implantar do repositório GitHub.
  3. Autorizar o Railway
    Se solicitado, conceda ao Railway acesso aos seus repositórios do GitHub. Você pode escolher dar acesso a todos os repositórios ou apenas a alguns selecionados.
  4. Selecionar o repositório do bot
    Encontre e clique no repositório que contém o código do seu bot. O Railway iniciará a implantação automaticamente.

Passo 3: Configurar Variáveis de Ambiente

  1. Abrir o painel do projeto
    Após selecionar o repositório, o Railway mostra o painel do projeto. Clique na aba Variáveis.
  2. Adicionar DISCORD_TOKEN
    Clique em Nova Variável. Defina a chave como DISCORD_TOKEN e o valor como o token do seu bot obtido no Portal do Desenvolvedor do Discord. Não compartilhe este token com ninguém.
  3. Adicionar outras variáveis necessárias
    Se o seu bot precisar de outras variáveis de ambiente, como CLIENT_ID ou GUILD_ID, adicione-as aqui. Clique em Salvar após cada variável.

Passo 4: Configurar o Comando de Inicialização

  1. Ir para a aba Implantações
    Clique em Implantações na barra lateral esquerda. Você verá o status da implantação atual.
  2. Definir o comando de inicialização
    Se o Railway não detectou automaticamente o comando de inicialização, clique em Editar na implantação. Em Comando de Inicialização, insira npm start para Node.js ou python bot.py para Python. Clique em Salvar.
  3. Reimplantar o bot
    Clique em Implantar para aplicar as alterações. O Railway reconstruirá e reiniciará o bot com o novo comando de inicialização.

Passo 5: Verificar se o Bot Está Online

  1. Verificar os logs
    Na aba Implantações, clique em Ver Logs. Procure por mensagens como Ready! ou Logged in as BotName. Se houver erros, leia-os com atenção e corrija o código ou as variáveis.
  2. Testar o bot no Discord
    Abra seu servidor do Discord e envie um comando que seu bot trata. Se o bot responder, a implantação foi bem-sucedida.
  3. Habilitar rede pública (opcional)
    Se o seu bot usar webhooks ou endpoints HTTP, vá em Rede e gere uma URL pública. Adicione essa URL ao código do seu bot, se necessário.

ADVERTISEMENT

Problemas Comuns Após Implantar um Bot do Discord no Railway

Bot Fica Offline Após Alguns Minutos

O Railway pode colocar seu bot em espera se não detectar tráfego de entrada. Bots do Discord não recebem tráfego HTTP — eles usam WebSockets. O Railway não mantém o bot ativo automaticamente. Para evitar isso, faça upgrade para um plano pago do Railway que ofereça implantações sempre ativas. O plano gratuito coloca o bot em espera após 5 minutos de inatividade.

Bot Falha com “DiscordAPIError: Missing Permissions”

Este erro significa que seu bot não tem as permissões necessárias no servidor do Discord. Reconvide o bot com os escopos e permissões corretos do OAuth2. Vá para Portal do Desenvolvedor do Discord > OAuth2 > Gerador de URL, selecione bot e as permissões necessárias, depois use a URL gerada para convidar o bot novamente.

Variável de Ambiente Não Está Sendo Lida

Verifique se o nome da variável no Railway corresponde exatamente ao que seu código usa. Nomes de variáveis diferenciam maiúsculas de minúsculas. Por exemplo, DISCORD_TOKEN é diferente de discord_token. Certifique-se também de que salvou a variável após inseri-la.

Planos do Railway: Gratuito vs Pago para Hospedagem de Bot do Discord

Recurso Plano Gratuito Plano Pago (a partir de $5/mês)
Sempre ativo Não — bot entra em espera após 5 minutos de inatividade Sim — bot funciona 24/7
CPU e RAM Recursos limitados e compartilhados Recursos dedicados, limites maiores
Implantações Ilimitadas Ilimitadas
Domínios personalizados Não Sim

Você implantou seu bot do Discord no Railway. O bot roda na nuvem e pode ficar online 24/7 se você usar um plano pago. Em seguida, considere adicionar um endpoint de health check para monitorar o tempo de atividade do bot. Você também pode configurar GitHub Actions para implantar automaticamente novas alterações de código no Railway sempre que fizer push para a branch principal.

ADVERTISEMENT