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.

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.

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.