Heroku es una plataforma en la nube que ofrece servicio para alojar e implementar aplicaciones web en varios lenguajes de programacion, como Node.js, Ruby, Python, Java, PHP y Go.
Las aplicaciones se corren desde un servidor Heroku usando Heroku DNS Server para apuntar al dominio de la aplicación (nombreaplicacion.herokuapp.com). Cada aplicación corre sobre un motor a través de una “red de bancos de prueba” que consta de varios servidores. El servidor Git de Heroku maneja los repositorios de las aplicaciones que son subidas por los usuarios.
Heroku ofrece un plan de alojamiento gratuito, ¡así que no tienes que pagar nada en absoluto!. Ahora ya sabemos que podemos utilizar heroku para almacenar nuestras aplicaciones/bots.
Lo primero que debemos hacer es crear una cuenta en Heroku, una vez la hayamos creado y confirmado podemos crear un sencillo proyecto utilizando nodejs.
Ingresamos a "create new app".
Puedes configurar Heroku de dos formas que te permitiran implementar fácilmente cualquier cambio realizado en su bot:
En esta guía vamos a usar Heroku CLI con el poder de Git, para eso debemos instalar lo siguiente:
Para poder conectar a heroku remotamente debemos abrir nuestra consola (CMD) y escribir lo siguiente:
Primero veremos si se instalo correctamente heroku en su PC:
heroku --version
heroku login
Una vez lo hagamos, nos pedirá nuestras credenciales de heroku, introduce tu email y password, si todo ha ido bien nos regresara denuevo a la ruta, perfecto.
Enter your Heroku credentials.
Email: user@example.com
Password: ********
Logged is as user@example.com
Ahora debemos inicializar nuestro repositorio git y subir el proyecto(Carpeta) completo.
Creamos una carpeta para iniciar su bot, es recomendable crear un nuevo bot para evitar problemas con su bot principal, ya sea en la importación de los archivos(.js, .json, .sqlite, etc.) o instalación de npm(packages) a heroku.
En la misma consola donde iniciaste el login de heroku, ingresar a la ruta del bot:
cd desktop/mycarpetabot
Agregar los siguientes archivos a su carpeta bot:
const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
client.user.setActivity('bot en heroku', {type: 'WATCHING'});
console.log('Listo!');
});
let prefix = process.env.PREFIX;
client.on('message', message => {
if (!message.content.startsWith(prefix) || !message.guild) return;
if (message.author.bot) return;
const cont = message.content.split(' ').slice(1);
const args = cont.join(' ');
if (message.content.startsWith(prefix+'ping')){
message.channel.send('pong');
} else if (message.content.startsWith(prefix+ 'say')) {
if (!args) return;
message.channel.send(args);
}
});
client.login(process.env.TOKEN);
{
"name": "mybot-heroku",
"version": "1.0.0",
"description": "An in-depth guide on deploying your Discord.js bot on Heroku",
"main": "index.js",
"engines": {
"node": "8.x",
"npm": "*"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js"
},
"repository": {
"type": "git",
"url": "git+https://github.com/synicalsyntax/discord.js-heroku.git"
},
"keywords": [
"heroku",
"discord.js"
],
"author": "synicalsyntax",
"license": "MIT",
"bugs": {
"url": "https://github.com/synicalsyntax/discord.js-heroku/issues"
},
"homepage": "https://github.com/synicalsyntax/discord.js-heroku#readme",
"dependencies": {
"discord.js": "^11.3.0"
}
}
worker: npm start
gitignore link (copiar el contenido dentro tu archivo .gitignore)
el archivo .gitignore especifica los archivos que debemos ignorar y que ya no serán necesarios en heroku como: /node_modules, yarn, Thumbs.db, etc
Ahora debemos inicializar nuestro repositorio y subir el proyecto completo utilizando Git previamente instalado, para ésto escribe los siguientes comandos en la consola donde iniciaste el login heroku:
git init
heroku git:remote -a nombre-app-heroku
git add .
git commit -m "tu mensaje"
git push heroku master
Ahora ya tenemos nuestro proyecto subido a heroku y conectado a través de git, sólo nos queda ingresar el token y prefix remotamente.
Ingrese el siguiente comando para configurar el token y prefix de su bot.
heroku config:set TOKEN=Tokenbotsecreto PREFIX=!!
Si no a tenido ningun error durante el proceso de importar su proyecto a heroku, felicidades ya tiene su bot alojado en heroku. Ahora solo no falta configurar los Dynos de la app heroku para que su bot este activo las 24 horas.
A cada cuenta de Heroku se le asigna un grupo de horas que puede usar con los dynos gratis. Esto le ayuda a conservar sus horas de prueba gratuitas y así puede usarlas para tener su app activado por mucho tiempo.
Ingresamos al dashboard de la app en heroku.com, encontrara un panel de su app y vamos a "configure Dynos"
Desactivamos web dynos y activamos worker y confirmamos, de esta manera el bot se mantendra activo 24 horas al dia.
Verificamos si el bot inicio correctamente ingresando a "More > View logs" de la app.
Revisamos el log si se mostro el mensaje de "Estoy listo!.
Si todo esta correcto felicidades su bot ya esta activo y alojado en Heroku.
Aquí hay algunos recursos adicionales:
Si tiene alguna pregunta y/o duda después de leer esta guía, ingrese al servidor guía en discord: