Bot de Discord encendido siempre y gratis: alternativas a Replit
El bot funciona mientras lo pruebas y, al rato de cerrar la pestaña, se desconecta. No es tu código: es dónde está alojado. Aquí va por qué pasa y qué opciones gratis lo dejan encendido de verdad.
Por qué se apaga tu bot
Un bot de Discord es un programa que tiene que estar en marcha todo el tiempo, conectado a Discord y esperando mensajes. Si el programa se para, el bot sale como desconectado y no contesta (si está en línea y aun así no contesta, es otra cosa: mi bot de Discord no responde).
Las capas gratis de las plataformas pensadas para webs, como Replit o Render, duermen tu programa cuando nadie visita su página: en Render, a los 15 minutos sin visitas. Un bot no recibe visitas (es él quien se conecta a Discord), así que para la plataforma está «parado» y lo duermen. Además, en Render los procesos de fondo (background workers), que es justo lo que es un bot, no tienen versión gratis.
¿Prefieres no montarlo tú? Hosting de bots de Discord desde 1,50 € al mes, sin permanencia y con devolución íntegra en 72 horas. O crea un bot de Discord gratis, sin tarjeta.
El truco del keep_alive, y por qué falla
Muchos tutoriales añaden al bot un pequeño servidor web (el famoso keep_alive.py con Flask, o un Express en Node.js) y un servicio externo que lo visita cada pocos minutos para que no se duerma.
Funciona a ratos: la plataforma sigue pudiendo reiniciarlo o pararlo cuando quiera, el bot se cae unos segundos o minutos en cada reinicio, y es depender de dos servicios gratis a la vez. Si el tuyo se desconecta solo varias veces al día, casi seguro es esto.
Opciones gratis que sí lo dejan encendido
Tu ordenador: gratis y sin límites, pero el bot se apaga cuando apagas el ordenador o se va la conexión. Sirve para programarlo y probarlo.
Una Raspberry Pi u otro ordenador pequeño en casa: un bot de comandos va de sobra en una Raspberry Pi y gasta unos pocos vatios, unos euros de luz al año (hazte la cuenta con la calculadora de luz). Hay que tenerla encendida y conectada, y que el bot se reinicie solo si se cae (abajo tienes cómo).
Las máquinas gratis de los proveedores de nube, como la capa Always Free de Oracle Cloud: una máquina virtual tuya, pero pide tarjeta para registrarse, hay que instalar y mantener el sistema, y Oracle puede parar las máquinas gratis que ve inactivas (menos del 20 % de procesador durante 7 días), y un bot casi no usa procesador.
Railway da un crédito gratis pequeño al mes (1 dólar en su plan gratis), que no llega para tener un programa encendido el mes entero.
Un hosting de bots, como el bot gratis de NapNodes (en la siguiente sección): el bot está encendido sin servidor web ni pings, y solo hay que renovarlo una vez por semana.
Si lo tienes en una Raspberry Pi: que se reinicie solo
En Raspberry Pi OS (o cualquier Linux con systemd), crea este fichero con «sudo nano /etc/systemd/system/mibot.service», cambiando la carpeta, el usuario y el comando por los tuyos (para Python, ExecStart=/usr/bin/python3 main.py). Después, «sudo systemctl enable --now mibot»: el bot arranca al encender la Raspberry y vuelve solo a los 5 segundos si se cae. Con «journalctl -u mibot -f» ves lo que escribe.
[Unit]
Description=Mi bot de Discord
After=network-online.target
Wants=network-online.target
[Service]
User=pi
WorkingDirectory=/home/pi/mibot
ExecStart=/usr/bin/node index.js
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.targetCon el bot gratis de NapNodes
Crea tu cuenta y elige el bot gratis
Sin tarjeta. Tiene 256 MB de memoria, de sobra para un bot de comandos o moderación. Hay uno por persona; si no quedan plazas gratis, te apuntas a la lista de espera y se crea en cuanto haya sitio.
Quita el keep_alive
Aquí no hace falta: el bot está encendido aunque nadie visite nada. Puedes borrar el servidor web y el ping externo de tu código.
Sube el código y elige el lenguaje
Node.js o Python, en «Configuración» → «Lenguaje» (la versión, en «Versión y arranque»). El código, en «Archivos» o desde tu repositorio de GitHub, que se pone también en «Configuración»; las dependencias de package.json o requirements.txt se instalan solas al arrancar. El token, en un .env, nunca en un repositorio público.
Enciéndelo y renuévalo cada semana
Con «Encender» se queda encendido siempre. Cada 7 días hay que renovarlo con un clic («Encender» o «Renovar ahora» en el panel); te avisamos por correo el día antes. Si no lo renuevas, se apaga, pero no se borra; solo si pasan 14 días sin renovarlo, y con aviso antes.
Cuándo pasar a un plan
Si no quieres acordarte de renovarlo, o tu bot necesita más memoria (muchos servidores, cachés grandes), los planes Mini (512 MB) y Plus (1 GB) están encendidos siempre sin renovar nada, sin permanencia (precios). Cómo se monta, en la guía de hosting para tu bot.
Preguntas frecuentes
¿Por qué mi bot de Discord se apaga solo en Replit?
Porque la capa gratis duerme los programas que no reciben visitas, y un bot no recibe visitas: se conecta él a Discord. Hace falta un sitio que lo deje encendido aunque nadie visite nada.
¿Hace falta el keep_alive.py para un bot de Discord?
Solo en plataformas que duermen los programas sin visitas. En tu PC, en una Raspberry Pi o en un hosting de bots no hace falta: puedes quitarlo.
¿Se puede tener un bot de Discord encendido siempre gratis?
Sí: en una Raspberry Pi en casa, o con el bot gratis de NapNodes (256 MB, encendido siempre, renovándolo con un clic cada semana).
¿Render sirve para un bot de Discord gratis?
No del todo: lo gratis de Render son servicios web, que se duermen a los 15 minutos sin visitas, y los procesos de fondo (lo que es un bot) no tienen versión gratis.
¿Lo montamos?
Hosting de bots de Discord desde 1,50 € al mes, sin sobreventa: tu RAM es solo tuya. Y si quieres empezar sin pagar, tienes un bot de Discord gratis, sin tarjeta.