3.2.2. Instrucciones del despliegue - diezMalena/api_FCTFiller GitHub Wiki

Introducción

En esta sección de la Wiki se detallan las instrucciones para desplegar el cliente y el servidor de la aplicación. En los scripts utilizados para la simplificación del proceso se utilizará el usuario fctfiller.

Requisitos mínimos

  • Ubuntu 20.04. El servidor testado en Ubuntu 22.0.4
  • Laravel v8
  • Composer v2.3.7
  • Angular CLI: v13.0.4
  • Node v16.15.1
  • Package Manager: npm v8.11.0
  • Apache v2.4.52
  • PHP v8.1.2
  • MySQL v8.0.29

Servidores virtuales (Apache)

Una vez satisfechos los requisitos mínimos, el primer paso es establecer los servidores virtuales en Apache. Previamente, hemos de incluir la siguiente línea en el archivo /etc/apache2/ports.conf:

Listen 8000

Esto es necesario porque la API se sirve en el puerto 8000.

Tras esto, se debe deshabilitar el servidor virtual por defecto. hemos de crear y habilitar dos servidores virtuales:

  • Servidor virtual para el cliente - angular.conf:
    <VirtualHost *:80>
        ServerName fct.filler.vdg
    
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/fctfiller/cliente_FCTFiller/dist/cliente-fct-filler
        <Directory /var/www/html/fctfiller/cliente_FCTFiller/dist/cliente-fct-filler/>
            AllowOverride All
            Require all granted
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
  • Servidor virtual para la API - laravel.conf:
    <VirtualHost *:8000>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/fctfiller/api_FCTFiller/public
        <Directory /var/www/html/fctfiller/api_FCTFiller/public>
            AllowOverride All
            Require all granted
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>

Con esta configuración, el cliente será accesible desde cualquier máquina mediante la URL fct.filler.vdg. El servidor sólo será accesible mediante el puerto 8000 desde cualquier máquina, aunque se plantea que de servicio sólo al cliente, dado que no especifica una URL para acceder desde fuera.

En caso de duda sobre cómo llevar a cabo estos pasos, puedes consultar la documentación sobre instalación y configuración del servidor

Despliegue del cliente y la API

Tal y como están planteados los servidores virtuales, los repositorios de cliente y de servidor deberán alojarse en el directorio /var/www/html/fctfiller/.

Antes de comenzar a descargar los repositorios, sea o no mediante el script proporcionado posteriormente, conviene añadir los directorios de destino como seguros, ya que se ejecutarán comandos de git con permisos de superusuario:

sudo git config --global --add safe.directory /var/www/html/fctfiller/cliente_FCTFiller
sudo git config --global --add safe.directory /var/www/html/fctfiller/api_FCTFiller

Para hacerlo lo más cómodamente posible, se puede usar el archivo update_fctfiller.sh. Este archivo se encuentra en la raíz de este proyecto (api_FCTFiller). Se debe copiar en /var/www/html/fctfiller. Después se le deben dar permisos de ejecución con:

sudo chmod +x update.sh

Tras esto, se debe ejecutar la siguiente orden como superusuario:

sudo ./update.sh

Este archivo clona los repositorios y los despliega si no existen los directorios en la ruta. Si existen, hace un pull y los despliega también.

Para consultar los pasos del despliegue, puede consultarse el archivo update_fctfiller.sh

Base de datos

Para inicializar la base de datos, existen dos opciones:

  1. Crearla ejecutando el script deploy_database.sh en la raíz de la API:
    1. Crear una base de datos vacía en PHPMyAdmin y llamarla 'fct_filler_produccion'. Si se quiere poner otro nombre a la base de datos, cambiar los datos de autenticación o apuntar a una base de datos creada fuera de localhost, debe editarse el archivo .env
    2. Ejecutar el siguiente comando desde el directorio raíz api_FCTFiller:
      ./deploy_database.sh
    3. Ejecutar los siguientes comandos en la raíz del repositorio:
      php artisan passport:install -n
      php artisan vendor:publish --tag=passport-config
  2. Importar la base de datos de pruebas que proporcionemos los desarrolladores mediante petición por e-mail. Es posible que haya que ejecutar el comando php artisan vendor:publish --tag=passport-config

Superusuario

⚠️ **GitHub.com Fallback** ⚠️