Laravel es un framework de código abierto para crear aplicaciones web PHP escalables. Es el favorito de muchos desarrolladores gracias a sus módulos fáciles de usar para autenticación, gestión de dependencias, almacenamiento de sesiones y caché, enrutamiento y mucho más.

Laravel Forge simplifica el despliegue y la configuración de las aplicaciones Laravel automatizando el aprovisionamiento del servidor, la instalación y el mantenimiento del software, y el despliegue. También tiene funciones avanzadas de seguridad, como cortafuegos y autenticaciones Secure Socket Shell (SSH).

Este artículo te mostrará cómo funciona Laravel Forge, sus principales características y opciones de despliegue, y cómo se compara con Kinsta.

Cómo y Por Qué Deberías Usar Laravel Forge

Laravel Forge actúa como tu gestor de servidores, permitiéndote instalar PHP, servidores Nginx, bases de datos MySQL y cualquier otra dependencia sin instalarlos manualmente. Esto ayuda a enviar código mucho más rápido al facilitar los cambios en el servidor en la nube.

Otros usos son:

  • Gestionar procesos en segundo plano (daemon)
  • Ejecución de aplicaciones mediante bash scripts
  • Instalación de certificados SSL (Secure Socket Layer)
  • Programación de tareas cron

¿Cómo Funciona Laravel Forge?

El nuevo y eficiente diseño de Laravel Forge prioriza la simplicidad y la facilidad de uso. Te permite elegir un proveedor de alojamiento, como Digital Ocean, Linode o Rackspace, que te proporciona un servidor en cuestión de minutos.

Cada servidor contiene un stack completo de las últimas versiones de PHP, Nginx, MySQL, PostgreSQL y bibliotecas de almacenamiento en caché como Redis. Una vez creado, el servidor te permite vincular tu aplicación a tus herramientas de control de versiones, como GitHub, GitLab o Bitbucket.

Laravel Forge añade un script de despliegue a tu aplicación que puede ejecutarse en los servidores con un solo clic. Esto proporciona una mayor flexibilidad y eficiencia a la hora de desplegar aplicaciones vanilla PHP y Laravel. Laravel Forge también puede gestionar aplicaciones en otros Stacks tecnológicos, como Node.js.

Durante el despliegue, Laravel Forge utiliza claves SSH para iniciar sesión en tus servidores, ejecutando e instalando todas las dependencias de software más recientes que necesita tu aplicación. Esto facilita el cambio de proveedores de alojamiento en cualquier momento para contrarrestar la escalabilidad o aumentar o reducir los servidores en función de la demanda.

Otras opciones de despliegue de Laravel Forge son:

  • Scripts de Despliegue — Se utilizan para ejecutar comandos del servidor. Esta opción de despliegue puede editarse mediante la interfaz de usuario de Forge.
  • Despliegue desde la herramienta de Integración Continua (CI) — Los usuarios pueden elegir Forge CLI o Despliegue Trigger para desplegar sus aplicaciones con Forge.

Cómo Desplegar con Laravel Forge

Para desplegar una aplicación con Forge, crea una cuenta con ellos y elige uno de los muchos proveedores de servidores disponibles. Una vez que hayas aprovisionado tu servidor con la ubicación y el plan de droplets adecuados, crea un nombre de dominio. Forge crea automáticamente todas las dependencias y bibliotecas necesarias, instalando las últimas versiones de PHP en tu servidor.

Nota: Necesitarás una clave API para conectarte a un proveedor en la nube no proporcionado en Laravel Forge.

A continuación, autentifícate en el servicio de control de versiones de tu elección. Esto facilita la migración de la base de código del repositorio a Laravel Forge. A continuación, los desarrolladores pueden colaborar en el repositorio y hacer que los cambios se desplieguen automáticamente en el servidor.

Tras vincular tu repositorio, haz clic en Desplegar Ahora para que el software Forge ejecute el script de despliegue y configure la aplicación.

Una forma de desplegar tu aplicación utilizando Laravel Forge es utilizando una herramienta CI. Una vez instalado Forge CLI, puedes utilizar el comando deploy en tu entorno CI. Necesitarás el token de la API de Forge para autenticarte en la CLI de Forge.

El ejemplo siguiente ilustrará cómo hacerlo en unos sencillos pasos utilizando GitHub. En el directorio de tu proyecto, crea un directorio tu-proyecto/.github/workflows. Dentro de él, crea un archivo forge.yml con el siguiente contenido:

name: Deploy

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      checkout@v2
      - name: Setup SSH
        uses: webfactory/[email protected]
        with:
          ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: 8.0
          tools: composer:v2
          coverage: none
      - name: Require Forge CLI
        run: composer global require laravel/forge-cli
      - name: Deploy Site
        run: |
          forge server:switch your-server-name
          forge deploy your-site-name.com
        env:
          FORGE_API_TOKEN: ${{ secrets.FORGE_API_TOKEN }}

Nota: Puedes revisar el código de ejemplo aquí. A continuación, puedes enviar los cambios a tu rama principal y dejar que las Acciones de GitHub ejecuten los scripts de despliegue.

Las variables de entorno, como las contraseñas de la base de datos y las claves secretas, pueden ser difíciles de mantener en un entorno de producción. Para mantener seguros los archivos de tu proyecto, configura las variables de entorno de la base de datos y de la aplicación en cada uno de los archivos de entorno (.env) de tu proyecto.

Ventajas de Laravel Forge

Las ventajas de Laravel Forge para el usuario incluyen:

  • No restringir a los usuarios a una única plataforma de alojamiento. Esto facilita el despliegue de muchos proyectos en proveedores de alojamiento dispares, en función de sus necesidades.
  • Uso del script de despliegue para ejecutar automáticamente los requisitos de tu aplicación con las últimas bibliotecas sin instalarlas manualmente.
  • Consistencia en los ajustes de configuración y permisos, y reducción de los costes y errores de despliegue. Esto permite a los desarrolladores centrarse más en el desarrollo de la aplicación que en el mantenimiento de los scripts y procesos de despliegue.
  • Seguridad avanzada e innata para el servidor de tu aplicación mediante un cortafuegos, claves SSH y aislamiento de datos para evitar filtraciones.

Laravel Forge y Kinsta

Mientras que Laravel Forge se encarga de gestionar servidores de aplicaciones, Kinsta es una plataforma de gestión de alojamiento que te permite llevar tus demandas de alojamiento de aplicaciones y bases de datos al siguiente nivel. Si tienes un sitio de WordPress administrado por el software Forge, es fácil migrar a Kinsta de forma gratuita.

Kinsta ofrece varias ventajas a sus usuarios, como mejores herramientas de optimización de las tareas de administración, soporte DevOps para el alojamiento de aplicaciones y funciones Cloudflare para el alojamiento de WordPress.

Kinsta proporciona todo esto con herramientas empresariales y funciones premium sin costes ocultos o adicionales para cada plan.

Resumen

El despliegue puede suponer un reto para organizaciones grandes y pequeñas. Cada aplicación tiene sus retos, como los problemas de escalabilidad, las dependencias redundantes y la complejidad de los procesos.

Laravel Forge hace que el despliegue de aplicaciones sea eficiente y sin complicaciones, actuando como intermediario entre los desarrolladores y los servidores. Mediante varias opciones de despliegue, los desarrolladores pueden elegir entre scripts de despliegue o la herramienta CI para gestionar sus sitios y servidores.

Al igual que con Laravel Forge, desplegar aplicaciones web con Kinsta es muy fácil, pero también obtienes mayor flexibilidad, funciones y planes de precios. ¡Empieza tu prueba gratuita hoy mismo!