Qué es Laravel Forge, cómo nos puede ayudar y en qué se distingue de otros paneles de administración de servidores más tradicionales. Cómo usar Laravel Forge para el despliegue de aplicaciones web.
Forge es una herramienta del ecosistema de Laravel que permite administrar servidores y sitios web de una manera sencilla y productiva. Es similar a lo que conocemos en otros productos como Plesk o CPanel, pero con algunas diferencias. En este artículo encontrarás una introducción a Laravel Forge, las ventajas y desventajas que tiene con otros paneles de administración y al final encontrarás un vídeo para aprender a utilizar este panel de administración.
En el artículo sobre Laravel Forge vamos a tratar los siguientes puntos.
Qué es Laravel Forge
Laravel Forge es un servicio de gestión de servidores. Básicamente es un panel que nos permite conectarnos con distintos proveedores de Cloud y realizar la creación de servidores en sus centros de datos. Una vez hemos creado los servidores podemos gestionar los sitios web alojados en ellos y desplegar aplicaciones basadas en las tecnologías en las que se apoya el propio framework PHP Laravel.
Es una herramienta de gran ayuda porque simplifica enormemente la configuración y administración de servidores PHP, especialmente para aplicaciones desarrolladas con el framework Laravel, pero sin restringirse a él.
Por qué necesito un panel de administración o un servidor para mis aplicaciones
Por si no tienes claro lo que es un panel y cuál es su utilidad piensa que cuando tienes que desplegar una aplicación web avanzada no te vale con un alojamiento tradicional. Esto es debido a que los alojamientos generalmente no permiten realizar tareas que vas a necesitar como:
- Hacer uso de Composer
- Instalar frameworks o librerías más allá de las típicas que están en los alojamientos tradcicionales
- Instalar otras dependencias de software que puedas necesitar
- Usar otros sistemas gestores de bases de datos más allá de MySQL
- Conectarte por línea de comandos para configurar detalles en el servidor
- Gestionar colas de procesos o hacer que ciertos procesos se ejecuten a determinadas horas para el mantenimiento de las aplicaciones
- Etc...
Entonces, cuando necesitas un servidor tienes básicamente dos alternativas:
- Crear un servidor de manera manual e instalarle todo el software necesario para que funcione, incluido el servidor web, el gestor de la base de datos y todo el software necesario para que la aplicación funcione.
- La otra alternativa consiste en apoyarnos en un panel de administración que nos permita realizar la mayor parte del trabajo de una manera ágil y sin la necesidad de poseer tantos conocimientos técnicos como necesitaríamos al hacerlo manualmente.
Es en la segunda alternativa en la que Forge se encaja. Se encarga de aspectos como la instalación de software necesario, la seguridad, y la configuración del servidor, ofreciendo al desarrollador todas las herramientas para personalizar el funcionamiento del servidor de modo que cubra sus necesidades.
Funcionalidades principales de Laravel Forge
Como hemos dicho, Laravel Forge lo podemos utilizar para la administración de servidores y los sitios web. Dentro de este marco ofrece diversas características u funcionalidades, entre las que se incluyen:
Configuración Automatizada: Forge puede configurar servidores con todo lo necesario para ejecutar aplicaciones Laravel, incluyendo Nginx, PHP, los motores de bases de datos, Redis y más.
Integración con Proveedores de Servicios en la Nube: Forge se integra con populares proveedores de infraestructura "Cloud" como AWS, DigitalOcean o Hetzner, entre otros. Además podemos configurar cualquier servidor creado por nosotros mismos en cualquier proveedor, siempre que tengamos la posibilidad de acceder por SSH y con el usuario root.
Una vez tenemos el servidor creado podemos añadir los distintos dominios, para servir distintos sitios web en una misma máquina. A nivel de servidor también se pueden configurar llaves SSH, el firewall, gestores de colas o realizar la planificación de trabajos periódicos, entre otras muchas cosas.
Despliegue de sitios web
También ofrece muchas utilidades para el despliegue de Aplicaciones: Permite desplegar aplicaciones desde sistemas de control de versiones como GitHub, Bitbucket o GitLab, entre otros. Además podemos configurar el despliegue automático cuando se envían cambios a una rama determinada del repositorio remoto.
Una vez desplegada la aplicación es posible trabajar con los elementos necesarios para mantenerlas como los logs, las variables de entorno, los accesos restringidos, certificados SSL para trabajar con HTPS, entre otras muchas cosas.
Gestionar bases de datos
Por lo que respecta a las bases de datos es posible instalar y administrar los sistemas gestores más populares open source (MySQL / MariaDB / PostgreSQL), crear bases de datos y sus usuarios, cambiar sus claves y cosas similares.
Diferencias con otros paneles de administración
Existen en el mercado otros productos para la gestión de servidores. Los más conocidos son Plesk y CPanel. Estos son productos orientados a todo tipo de servicios, lo que quiere decir que sirven para crear no solo sitios web sino toda la serie de servicios que un servidor de Internet es capaz de ofrecer, como el email, las cuentas de FTP, hacer de servidor de DNS y otras cosas similares.
Sin embargo Laravel Forge en realidad está pensado única y exclusivamente para las aplicaciones web. Podríamos pensar que esto fuese una desventaja pero no siempre es así, como enseguida veremos.
Lo que hay que dejar ya claro es que, si quieres tener un servidor para ofrecer a tus clientes todo ese tipo de servicios (como el email o el FTP), Forge no te va a ayudar en este ámbito y tendrías que acudir a otros paneles de administración o hacer el uso de servicios en otros servidores distintos a los que usas para desplegar tus aplicaciones web.
Para entender mejor las diferencias de Forge con otros productos de administración de servidores debemos considerar estos puntos.
Aplicaciones vs servicios
- Forge está especializado en dar soporte a las aplicaciones web
- Plesk o Cpanel están orientados a otros servicios de Internet. No están tan especializados en las aplicaciones, pero son capaces de abarcar mucho más.
Servicio remoto vs producto que funciona en local
- Forge funciona como un panel "cloud". Es decir, no requiere instalación en el servidor donde lo vamos a usar ni ocupa espacio. El equipo del Laravel es el encargado de mantener Forge en sus propios servidores y por tanto nos libera a nosotros de todo lo que respecta a la instalación o a la administración.
- Los paneles del estilo de Plesk o CPanel hay que instalarlos en el servidor que van a administrar y ocupan espacio y recursos en los servidores donde los instales.
Este punto es especialmente relevante porque cuando instalamos un producto de panel de control necesitamos administrarlo, es decir, mantenerlo actualizado, con los necesarios controles de seguridad, etc.
Si no somos especialmente rigurosos con este punto es preferible no tener panel ninguno instalado en servidor, porque son herramientas delicadas, las cuales requieren un especial cuidado para que no acaben siendo como puertas de entrada para posibles ataques. Esta es una desventaja de Plesk o CPanel, que requieren tu atención, mientras que Forge no lo necesita porque funciona remotamente en servidores que no tienes que atender tú.
Licencia para servidores ilimitados o licencia para un solo servidor
Forge no es un servicio gratuito, como tampoco lo son los paneles Plesk o CPanel. Si bien es cierto que hay paneles de administración Open Source, no ofrecen todas las ventajas que ofrecen estos. Es por ello que, si requieres administrar tu servidor con un panel, lo más normal es que acabes teniendo que invertir dinero en una licencia, que en todos los casos tiene un coste mensual o anual.
- Si utilizamos Forge como servicio podemos pagar una cuota y tener un panel capaz de administrar servidores ilimitados.
- Los otros paneles más tradicionales requieren una licencia por cada servidor donde queramos instalarlos.
Por lo tanto si vamos a gestionar varios servidores puede resultar mucho más económico utilizar un servicio como Forge que pagar una licencia de un panel para cada uno de los servidores por separado.
Lo ideal es tener un servidor por cada uno de las aplicaciones desplegadas, ya que nos asegura que, si algún día surge un problema con un servidor, solo afecte a una de las aplicaciones web que mantenemos. Tener muchos sitios web en un mismo servidor puede ahorrar costes, ciertamente, pero el día que no funcione algo bien puede afectar a muchas aplicaciones y darte un buen disgusto porque tengas que dar mantenimiento a una cantidad de sitios web. Actualmente podemos contrartar servidores VPS por muy poco dinero (podrías encontrarlos desde 2 euros al mes y con características más avanzadas en torno a los 5 euros al mes), por lo que tener un servidor para cada aplicación es realmente viable.
Forge es más técnico y objetivo
Finalmente podemos mencionar que Forge es un servicio mucho más técnico, mientras que los paneles de administración tradicional tratan de satisfacer a personas de un calado más general.
- Forge está orientado a personas que saben lo que están haciendo. Permite una configuración detallada de las cosas que realmente importan y no entra en temas que realmente no son relevantes para el funcionamiento de las aplicaciones.
- Sin embargo, los paneles de administración tradicionales, a pesar de abarcar gran cantidad de configuraciones, muchas veces son más cerrados y no nos permiten llegar al mismo detalle... o se pierden con opciones que realmente no son tan relevantes para los desarrolladores.
Aprender a gestionar servidores y sitios web con Laravel Forge
A continuación te dejamos un vídeo que te enseña cómo es el panel de administración de Forge y explica cómo gestionar y desplegar aplicaciones web basadas en Laravel.
En este vídeo ofrecemos una información teórica sobre la herramienta, que es más o menos lo que hemos resumido en este artículo y luego se muestra de manera práctica como crear un proyecto con el framework PHP Laravel y desplegarlo en un servidor.
El proyecto usa una base de datos para gestionar todo el proceso de login y registro de usuarios, con la intención de mostrar algo más que un sitio estático. Veremos en poco tiempo cómo se crea esa aplicación con PHP y cómo se sube a GitHub, para luego mostrar cómo se instala la aplicación en el servidor, cómo se conecta con las bases de datos, cómo se compilan los assets del lado del servidor con Vite, cómo, se instala el certificado de seguridad SSL, etc. En resumen una buena aproximación a el tipo de tareas que realizarás con este servicio para la administración de servidores y aplicaciones web.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...