En éste artículo aprenderemos a desplegar Laravel en Heroku de forma gratuita, configurando rápidamente nuestro proyecto para que corra en la plataforma de Heroku.
Heroku es una plataforma de servicio que permite hacer despliegues de aplicaciones de forma fácil. Una de las grandes ventajas de heroku es que cuenta con un plan gratuito, que nos permite probar nuestras aplicaciones de forma remota.
Si prefieres desplegar tu aplicación Laravel en un hosting compartido visita nuestro artículo 🚀 Cómo desplegar Laravel en un hosting 🚀
Para empezar, nos dirigimos a la raíz de nuestro proyecto laravel donde crearemos un archivo llamado Procfile. Este archivo le indicará a Heroku que ruta debe seguir para apuntar a tu carpeta public.
Creamos dicho archivo y le añadiremos:
web: vendor/bin/heroku-php-apache2 public/
Hecho esto, vamos al archivo .gitignore que se encuentra en la raíz de nuestro proyecto, borraremos la linea que pone composer.lock y guardaremos.
Ahora inicializaremos git en nuestro proyecto, para ello, nos dirigimos a la consola, nos colocamos en la raíz de nuestro proyecto y ejecutamos los siguientes comandos:
git init
git add .
git commit -m "First commit"
Lo primero que tenemos que hacer es descargar el cliente de heroku en esta url 👉 descargar cliente de Heroku.
Iniciamos sesión en el cliente y nos aparecerá este mensaje en la consola:
Ahora crearemos una aplicación Heroku, para ello iremos a la consola y en la ruta de nuestro proyecto ejecutaremos:
heroku create
(Abre una nueva consola si da error el comando)
Una vez creada la aplicación de Heroku, es hora de hacer el despliegue de nuestra aplicación Laravel, para ello solo debemos ejecutar el comando:
git push heroku master
Ahora iremos a nuestro panel de heroku, nos aparecerá nuestra aplicación en la lista de proyectos y en ella aparecerá la url en la que esta desplegada.
Si nos dirigimos a la url nos dará error 500, esto es porque aún nos queda configurar el archivo .env de heroku. Para ello, haz clic en configuración y ve agregando lo que se muestra en tu archivo .env
Una vez guardada esta configuración, nos dirigimos a la url del despliegue y ya se vería nuestra aplicación.
También podemos hacer uso de una base de datos de forma gratuita, para ello utilizaremos PostgreSQL en heroku.
En el menú daremos click a resources, buscaremos Heroku Postgres y daremos clic en instalar
Ahora en nuestra consola ejecutaremos el comando
heroku config
Y nos devolverá DATABASE_URL con una url, la copiamos y nos iremos al archivo database.php que se encuentra en la carpeta config de nuestra aplicación Laravel.
En este archivo inicializaremos una constante llamada $DATABASE_URL y le añadiremos la url que hemos copiado de esta forma:
$DATABASE_URL = parse_url('La url copiada aqui');
Luego, busca en este mismo archivo la configuración de pgsql y en el apartado de database ponemos:
'pgsql' => [
...
...
'database' => ltrim($DATABASE_URL["path"], "/"),
...
...
...
],
Y por último, busca en el archivo default y cambia mysql por pgsql
'default' => env('DB_CONNECTION', 'pgsql')
Ahora, debemos hacer un nuevo commit y push para subir estos cambios a nuestra aplicación desplegada:
git add .
git commit –m “update db connection”
git push heroku master
Una vez hecho esto, solo quedaría ejecutar las migraciones de nuestra base de datos en heroku:
heroku run php artisan migrate
Y si tenemos seeds ejecutaríamos:
heroku run php artisan db:seed
De esta forma ya tendríamos nuestra aplicación laravel desplegada en Heroku. Como hemos visto, solo debemos hacer un commit y push para subir nuevos cambios. 🙂