Instalar el Front-end desde los Fuentes

Léase También: Crear un Certificado de SSL

Instalación de Requerimientos

Primero deberemos instalar las dependencias requeridas.

workpath="/var/lib/interlock"
frontendPath="/var/lib/interlock/interlock_frontend"

apt-get update -y

# Instalar curl y obtener el script requerido.
apt-get install git curl -y

curl -sL https://deb.nodesource.com/setup_16.x -o "$workpath/nodesource_setup.sh"

# Añadir el repositorio de nodesource
bash "$workpath/nodesource_setup.sh"

# Añadir la clave pública de yarnpkg y su repositorio
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor > /etc/apt/trusted.gpg.d/yarn.gpg
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

# Instalar NodeJS y Yarn
apt-get update -y
apt-get install nodejs yarn -y

# Instale NGINX si lo compilará para producción
apt-get install nginx -y

# Cree el directorio de instalación y de certificados
mkdir -p "$workpath/sslcerts"

Una vez instalados los requerimientos, pullee la última versión del repositorio.

git clone https://github.com/dblanque/interlock_frontend $frontendPath

Instalación de Módulos de Node

cd $frontendPath
yarn install

Una vez estos módulos y dependencias hayan sido instalados deberá cambiar su URL de Back-end en src/providers/interlock_backend/local_settings.js.

Compilar o Servir el Front-end

Finalmente querrá compilar (para producción) o encender el servidor de desarrollo.

Podrá hacerlo con los siguientes comandos:

# Compilar en un paquete
yarn build

# Encender el servidor de desarrollo
yarn serve

Configuración del Sitio NGINX

Si ha compilado el build de producción y desea usarlo se recomienda NGINX.

Para esto deberá crear una configuración de sitio en /etc/nginx/sites-available (u otro directorio) y/o enlazarlo a /etc/nginx/sites-enabled.

echo \
"server {
        listen 80;
        server_name default_server;
        return 301 https://\$host\$request_uri;
}

server {
    listen 443 ssl http2;
    server_name default_server;
    ssl_certificate $workpath/sslcerts/fullchain.pem;
    ssl_certificate_key $workpath/sslcerts/privkey.pem;

    location / {
        root $frontendPath/dist;

        index index.html index.htm index.nginx-debian.html;
        try_files \$uri /index.html;

        # kill cache
        add_header Last-Modified \$date_gmt;
        # add_header Cache-Control 'no-store, no-cache';
        add_header Cache-Control 'max-age=900';
        if_modified_since off;
        expires off;
        etag off;
    }
}" > "$workpath/interlock.conf"

# Copiar el archivo
ln -s "$workpath/interlock.conf" "/etc/nginx/sites-enabled/interlock"

# Probar la configuración de NGINX
nginx -t

# Reiniciar y habilitar NGINX
systemctl enable nginx && systemctl restart nginx