-
Notifications
You must be signed in to change notification settings - Fork 0
Publicación proyecto demo en Heroku
Heroku es una plataforma de servicio de computación en la nube (conocidos como PaaS o Platform as a Service) que soporta distintos lenguajes de programación.
A continuación veremos los pasos para publicar un demo del repositorio real-estate-manager, creando y configurando una cuenta gratuita de Heroku.
Para realizar el proceso de publicación con Heroku debe tener instalado el CLI de Heroku según si sistema operativo aquí puede encontrar las versiones correctas.
Use un Procfile, un archivo de texto en el directorio raíz de su aplicación, para declarar explícitamente qué comando debe ejecutarse para iniciar su aplicación.
El archivo Procfile
en la aplicación de ejemplo que implementó tiene este aspecto:
web: vendor/bin/heroku-php-apache2 web/
Si el archivo cambio, debe registrarse en el sistema de control de versiones de código.
git add .
git commit -m "Procfile for Heroku"
Para facilitar el acceso a los logs de Laravel desde las instancias de Heroku es necesario realizar el
siguiente cambio en el archivo config/logging.php
.
'single' => [
'driver' => 'errorlog',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
],
Como todo cambio, debe registrarse en el sistema de control de versiones de código.
git add config/logging.php
git commit -m "Use errorlog"
Para crear el proyecto en Heroku es necesario crear una instancia en el servicio y darle un nombre. Debe tenerse en cuenta que este nombre debe ser único para toda la plataforma.
heroku create demo-real-estate-manager
Todo proyecto en Laravel requiere que se cuente con una llave de cifrado (APP_KEY) la cual se
determina en el archivo .env
, sin embargo en la instancia de Heroku no se cuenta con este archivo y
debe ser reemplazado por variables de ambiente. Para generar y registrar esta llave se debe ejecutar el
siguiente comando:
php artisan key:generate --show
heroku config:set APP_KEY=<PEGUE AQUÍ LA LLAVE GENERADA>
Puede ser necesario que se especifique el tipo (buildpack
) de plataforma de
desarrollo utilizada, en este caso PHP y NodeJS.
heroku buildpacks:set heroku/php
heroku buildpacks:set heroku/nodejs
Configure la version de node a utililizar en su archivo composer.json
en la sección engines
:
{
"name": "myapp",
"description": "a really cool app",
"version": "1.0.0",
"engines": {
"node": "14.x"
}
}
Actualmente, las versiones compatibles son 12.x, 14.xy 16.x.
Para publicar en Heroku el código fuente -versionado- de la aplicación se debe ejecutar el siguiente comando.
git push heroku master
heroku run npm install
heroku run npm run production
La cuenta gratuita para explorar Heroku permite crear una instancia pequeña de PostgreSQL mediante la ejecución del siguiente comando podemos crear la base de datos demo:
heroku addons:create heroku-postgresql:hobby-dev
Esto crea la variable de ambiente DATABASE_URL con la información de conexión a la base de datos.
heroku config | grep DATABASE_URL
Veremos algo parecido con la configuración de la base de datos:
DATABASE_URL:
postgres://ywzdjwwnasuijx:0de2e3ae68a07f5a04f9a2d354e81de8e55df133637ec22b04edcaff1d3e108b@ec2-175-129-205-197.compute1.amazonaws.com:5432/d676c1bk6bn5a1
Es necesario indicarle al proyecto publicado en Heroku que la base de datos que se utilizará será de tipo pgsql, la configuración por defecto tomará la información de la variable DATABASE_URL
.
Para hacer esto, se debe editar el archivo config/database.php
y modificar la siguiente línea.
'default' => env('DB_CONNECTION', 'pgsql'),
Una vez configurado el acceso a la base de datos, es posible crear las tablas mediante la ejecución de las migraciones y sus correspondientes seeders.
heroku run php artisan migrate
heroku run php artisan db:seed
Para abrir un navegador web con la página inicial del proyecto publicado se podrá ejecutar el siguiente comando.
heroku open
- Jorge Ivan Carrillo Gonzalez (@jorgeicarrillog).