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
- 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. - Adicionar um script de inicialização
Para bots em Node.js, certifique-se de que opackage.jsontenha um scriptstart. Exemplo:"start": "node index.js". Para bots em Python, adicione umProcfilecomworker: python bot.pyou use um scriptstart.sh. - Remover tokens codificados
Substitua qualquer token codificado porprocess.env.DISCORD_TOKENpara Node.js ouos.getenv('DISCORD_TOKEN')para Python. Faça commit e push das alterações.
Passo 2: Conectar o Railway ao GitHub
- 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. - Criar um novo projeto
Clique em Novo Projeto no painel. Selecione Implantar do repositório GitHub. - 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. - 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
- Abrir o painel do projeto
Após selecionar o repositório, o Railway mostra o painel do projeto. Clique na aba Variáveis. - Adicionar DISCORD_TOKEN
Clique em Nova Variável. Defina a chave comoDISCORD_TOKENe o valor como o token do seu bot obtido no Portal do Desenvolvedor do Discord. Não compartilhe este token com ninguém. - Adicionar outras variáveis necessárias
Se o seu bot precisar de outras variáveis de ambiente, comoCLIENT_IDouGUILD_ID, adicione-as aqui. Clique em Salvar após cada variável.
Passo 4: Configurar o Comando de Inicialização
- Ir para a aba Implantações
Clique em Implantações na barra lateral esquerda. Você verá o status da implantação atual. - 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, insiranpm startpara Node.js oupython bot.pypara Python. Clique em Salvar. - 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
- Verificar os logs
Na aba Implantações, clique em Ver Logs. Procure por mensagens comoReady!ouLogged in as BotName. Se houver erros, leia-os com atenção e corrija o código ou as variáveis. - 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. - 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.