Cómo crear un sitio en Forge

Con un servidor app o web aprovisionado por Forge, podemos crear y administrar sitios web fácilmente y de forma ilimitada.

En la configuración de sitios hay un sitio que Forge genera automáticamente en cada aprovisionamiento. Este sito default es el que responderá cuando accedamos al servidor por su dirección IP. Podemos eliminarlo y a su vez comenzará a devolver un error 404.

Sitios Forge

En cualquier momento podemos recrear el sitio default. Simplemente, necesitamos crear un sitio nuevo e introducimos default en el campo Dominio Raíz (Root Domain).

Algo a considerar es que Forge crea un segundo sitio y que está oculto en la lista de sitios. Es un sitio especial que se encarga de cerrar la conexión cuando el servidor recibe solicitudes de dominios que no están configurados en el servidor. Esta es una medida de seguridad para evitar actos maliciosos de dominios que no son nuestros.

En el formulario de creación de sitio colocamos nuestro nombre de dominio. Este también será el directorio raíz donde Forge clonará nuestro código. También podemos indicar _ aliases_ de dominio. Los _ aliases_ sería nombres de dominio o subdominios que responderán también a este sitio. Útil en aplicaciones multi-tenantes.

Crear sitio

Elegiremos el tipo de proyecto para nuestro sitio. Con Forge no solo podemos desplegar sitios en Laravel, también pueden ser proyectos PHP en general. Dejaré la opción de Laravel marcada.

El Directorio Web (Web Directory) representa el directorio donde nuestro archivo index.php o index.html reside dentro de nuestro código. En una aplicación Laravel, lo usual es que sea el directorio /public.

Podemos activar la opción de Allow wildcard subdomain para permitir que cualquier subdominio responda al sitio que estamos creando,

Si marcamos la opción de aislamiento de sitio web (Use Website Isolation), Forge creará un PHP fpm pool separado para el sitio. Esto creará un usuario de sistema único que se encargará de ejecutar el sitio. Realizando un aislamiento de PHP entre varios sitios.

Por últimos, durante la creación del sitio, también podemos indicar que se cree una base de datos. Generalmente, nuestros proyectos Laravel usarán una.

Con el sitio creado, Forge ahora nos permite instalar un repositorio. Aunque también podemos inicializar Wordpress o phpMyAdmin.

Elegir repositorio

Seleccionamos instalar un repositorio Github. Indico el nombre de mi repositorio Laravel y selecciono la branch a instalar. La opción de instalar dependencias Composer (Install Composer Dependencies) debe estar activada para que Forge inicialice las dependencias de nuestro proyecto.

Instalación de repositorio

Cuando Forge instala un repositorio Git, lo hace haciendo un clone del tipo shallow y en la branch que le hemos indicado. Esto para que la instalación y despliegue de nuestra aplicación sea veloz. Especialmente en repositorios grandes con bastantes commits. También significa que, el repositorio clonado en el servidor, únicamente existirán los últimos 50 commits realizados y una única branch.

Si nos dirigimos a la configuración de Ambiente, Forge nos ha creado y configurado el archivo .env basándose en el archivo .env.example que existe en el repositorio.

Configuración de Ambiente