Script para hacer deploy de una aplicaci贸n Laravel usando Laravel Envoy

Angel Cruz
Angel Cruz

En este art铆culo te voy a mostrar como hacer deploy de tu aplicaci贸n Laravel en un VPS usando Laravel Envoy, es m谩s sencillo de lo que piensas. 馃槑

Ok, para iniciar debes tener en cuenta que vas a necesitar ciertos conocimientos de administraci贸n de servidores pero no te preocupes que solo necesitas saber como instalar paquetes dentro de tu VPS.

Lo que vas hacer es:

  • Loguarte dentro de tu VPS, haciendo ssh.

  • Dentro de tu VPS vas a instalar GIT sudo apt get install git (o con el gestor de paqueter铆a de tu servidor, aca asumo que est谩s usando ubuntu)

  • Luego de instalar git tienes que clonar tu proyecto en un directorio espec铆fico. Yo te recomendaria clonar el proyecto dentro del directorio home de tu usuario en el VPS, creando una estructura parecida a esta: /home/USUARIO_VPS/project

Luego de esto lo 煤nico que tienes que hacer es ingresar a tu proyecto y hacer todo lo necesario para instalar las dependencias (composer) y hacer las configuraciones para la base de datos y todo lo que necesites.

En este punto, si sigues mi recomendaci贸n de clonar el proyecto en tu directorio home el siguiente paso es cambiar el path del directorio root en el archivo de configuraci贸n de tu servidor web, nuevamente asumiendo que usas NGINX el cambio lo debes hacer en la siguiente l铆nea

1server {
2 listen 80;
3 listen [::]:80;
4 server_name example.com;
5 root /home/USUARIO_VPS/project/public;
6
7 add_header X-Frame-Options "SAMEORIGIN";
8 add_header X-Content-Type-Options "nosniff";
9
10 // ...
11}

En tu proyecto

Vas a instalar envoy como una dependencia de desarrollo de la siguiente forma:

1composer require laravel/envoy --dev

Luego de esto, debes crear un archivo Envoy.blade.php donde vas a incluir la siguiente informaci贸n:

1@servers(['main' => ['user@host_ip']])
2 
3@task('deploy', ['on' => 'main'])
4 cd /home/USUARIO_VPS/project
5 php artisan down
6 git pull origin master
7 composer install --optimize-autoloader --no-interaction --no-plugins --no-scripts --no-dev
8 php artisan migrate --force
9 php artisan cache:clear
10 php artisan config:cache
11 php artisan view:cache
12 composer dumpautoload -o
13 php artisan up
14@endtask

Los cambios que debes implementar son los siguientes:

  • Modificar el usuario y el host ip

  • Listo 馃ぃ

Lo que hace el archivo creo que se explica solo pero por si acaso:

  • Ingresa al directorio del proyecto

  • Activa el modo mantenimiento

  • Hace un pull a tu proveedor de control de versiones para bajar los cambios mas recientes

  • Hace composer install para instalar las dependencias del proyecto (no incluye dependencias de desarrollo)

  • Ejecuta las migraciones (si existe algo para migrar)

  • Limpia y crea el cache

  • Optimiza el autoload de composer

  • Sale del modo de mantenimiento

Para ejecutar envoy puedes hacer lo siguiente:

1php vendor/bin/envoy

Espero que te sirva.

Te podr谩 interesar
Context7 brinda documentaci贸n oficial y actualizada a asistentes de c贸digo IA, evitando errores por ejemplos obsoletos y APIs desactualizadas.
Herramientas gratuitas para desarrolladores: descubre c贸mo elegir, integrar y aprovechar las mejores opciones de software, dise帽o, colaboraci贸n y optimizaci贸n para acelerar tu flujo de trabajo en 2025.
Descubre la historia de Apple Inc vs Apple Corps, la disputa legal entre los Beatles y la empresa de Steve Jobs que marc贸 un antes y un despu茅s en la relaci贸n entre m煤sica y tecnolog铆a.
Logo de Angel Cruz

Made with 鈾ワ笍 & 馃 in Montevideo, Uruguay Buenos Aires, Argentina.

[AC].dev is not affiliated with Laravel or Laravel LLC. Laravel is a Trademark of Taylor Otwell.

Code highlighting provided by Torchlight.