En este artículo veremos como hacer un Deploy en CodeIgniter 4 en Heroku + postgresql conexión, con el uso de comandos git, heroku es una alternativa a un shared hosting, especialmente recomiendo namecheap, por su calidad de servicio y precios económicos, si buscas un ejemplo con un hosting compartido sigue el siguiente tutorial.
Deploy CodeIgniter 4 en Heroku usando Git
Primero es necesario tener instalado git, nodejs y crearnos una cuenta en heroku, luego procedemos a instalar heroku con el uso de alguna herramienta de paquetes, para este tutorial usaremos snapd.
Instalamos el gestor de paquetes.
sudo apt install snapd
Instalamos heroku.
sudo snap install --classic heroku
Verificamos la versión instalada.
sudo heroku –version
Login – Usando Heroku Cli
Es momento de logearnos en heroku.
sudo heroku login
Si no abre una nueva ventana en el navegador, copiar la dirección de enlace y pegarla en el navegador.
Una vez logeados creamos un nuevo proyecto, colocarle como parámetro el nombre del proyecto, porque si no creara un nombre de proyecto al azar.
sudo heroku create tutorial-ci4
Luego iremos a nuestro dashboard y tendremos el proyecto creado, también podemos crearlo desde el panel.
Abrimos el proyecto en el navegador.
Iremos a la raíz de nuestro proyecto y crearemos un archivo Procfile.
sudo echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile
Setearemos el repositorio de git que tengamos, con el repositorio de heroku.
sudo heroku git:remote -a tutorial-ci4
Agregamos todos los archivos con su respectivo mensaje.
git add .
git commit -m "add project"
Realizamos el push, añadiendo las credenciales, es necesario agregar la api key en el password.
git push heroku master
Buscamos y copiamos la api key.
Pegamos la api key y el proyecto se subirá a la rama máster al menos que creemos otra.
Vamos al navegador y ya tenemos el proyecto en marcha.
Podemos ingresar a la bash de la siguiente manera.
sudo heroku run bash
En el caso que trabajemos con información en base de datos es necesario configurar los archivos pertinentes.
php spark migrate
Añadiremos un Add-ons para trabajar con postgresql el cual es gratis.
Realizamos la orden gratuita para continuar.
Luego veremos el panel de base de datos.
Buscaremos las credenciales para continuar.
Copiamos las credenciales de nuestra base de datos para configurarla posteriormente.
En las variables de entorno copiaremos las credenciales, lo cual quedaría de la siguiente manera, recuerden colocar el estado de desarrollo en production.
También podemos realizar las configuraciones en el siguiente archivo, nombreProyecto/App/Config/Database.php
public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => '',
'password' => '',
'database' => '',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
];