Alojamiento: VPS
Un servidor virtual privado, mayormente conocido como VPS, es una máquina virtual que se ejecuta en la nube y cuyos usuarios tienen el control total de su sistema.
En esta guía, aprenderás varios métodos para ejecutar tu bot en un VPS, manteniéndolo en línea 24/7, haciendo que se ejecute automáticamente cuando tu VPS se inicie y se reinicie en caso de caída.
systemd
systemd es un potente gestor de servicios que viene preinstalado en muchas distribuciones de Linux, principalmente las basadas en Debian.
Obteniendo el comando de inicio
- Obtenga la ruta completa de su tiempo de ejecución:
# Si se utiliza Deno
which deno
# Si se utiliza Node.js
which node
También debes tener la ruta completa de tu archivo de entrada.
Tu comando de inicio debería ser como el siguiente
<ruta_de_entrada_completa> <opciones> <ruta_de_archivo_de_entrada_completa>
# Ejemplo de Deno:
# /home/user/.deno/bin/deno --allow-all /home/user/bot1/mod.ts
# Ejemplo de Node.js:
# /home/user/.nvm/versions/node/v16.9.1/bin/node /home/user/bot1/index.js
Creación del servicio
- Ve al directorio de servicios:
cd /etc/systemd/system
- Abre tu nuevo archivo de servicio con un editor:
nano bot1.service
- Añade el siguiente contenido:
[Service]
ExecStart=<comando_de_inicio>
Restart=on-failure
[Install]
WantedBy=multi-user.target
Sustituye
<comando
por el comando que tienes arriba._de _inicio>
- Recarga systemd cada vez que edites el servicio:
systemctl daemon-reload
Manejando el servicio
Iniciar
systemctl start <nombre_del_servicio>
Sustituye
<service
por el nombre del archivo del servicio. Ejemplo:_name> systemctl start bot1
.
Ejecutar en el arranque
systemctl enable <nombre_del_servicio>
Comprobar los registros
systemctl status <nombre_del_servicio>
Reiniciar
systemctl restart <nombre_del_servicio>
Detener
systemctl stop <nombre_del_servicio>
No ejecutar en el arranque
systemctl disable <nombre_del_servicio>
PM2 (sólo Node.js)
PM2 es un gestor de procesos daemon para Node.js que te ayudará a gestionar y mantener tu aplicación online 24/7.
Instalando
npm install pm2@latest -g
# Si usas Yarn
yarn global add pm2
Gestión de aplicaciones
Inicio
pm2 start --name <nombre_de_la_aplicación> <punto_de_entrada>
El
<nombre
puede ser cualquier identificador de tu aplicación, por ejemplo:_de _la _aplicación> bot1
. El<punto
debe ser la ruta de tu archivo de índice (que ejecuta tu bot)._de _entrada>
Reinicio
Al reiniciar, detienes la aplicación y la vuelves a iniciar.
pm2 restart <nombre_de_la_aplicación>
Recargar
Al recargar, reemplazas el proceso actual de tu aplicación con uno nuevo, lo que resulta en un tiempo de inactividad de 0 segundos. Esto se recomienda para aplicaciones sin estado.
pm2 reload <nombre_de_la_aplicación>
Stop
# Una sola aplicación
pm2 stop <nombre_de_la_aplicación>
# Todas las aplicaciones
pm2 stop all
Eliminar
Al borrar, detienes tu aplicación y eliminas sus registros y métricas.
pm2 del <nombre_de_la_aplicación>
Información avanzada
Para más información, consulte https://