Servidor st-site-web¶
Requerimientos¶
Requerimientos de hardware¶
4 GB de RAM mínimo
12 GB de disco duro mínimo
Requerimientos de software¶
git 2.20.1
nodejs > 10.15.0
angular 10
nginx 1.14.2
Configuración¶
Clonar el repositorio¶
Se debe clonar el repositorio st-site-web almacenado en el github de la Agencia.
git clone https://github.com/SwissTierrasColombia/st-site-web.git
Acceder al repositorio¶
Es importante ubicarse en la rama master ya que es la versión de producción.
cd st-site-web && git checkout master
Configurar variables de entorno¶
dentro del directorio st-site-web/src/environments Encontrara dos templaates para la creación de los environments, uno para producción y el otro para desarrollo, debemos crear dos archivos con los siguientes nombres environment.prod.ts el cual es donde configuramos las variables de producción y otro environment.ts el cual es para configurar las variables de desarrollo, de esta forma.
mkdir st-site-web/src/environments/environment.prod.ts
mkdir st-site-web/src/environments/environment.ts
# Para environment.prod.ts (Producción)
const apiBaseUrl = 'http://HOST:PORT'; # Dirrección IP backend
export const environment = {
production: true,
apiBaseUrl, # Se usa esta variable de entorno para servicios que no utilizan el prefijo api
apiBaseUrlPrefix: apiBaseUrl + '/api', # Variable para los servicios generales
nameTokenSession: 'access_token_st', # Nombre del token en la sesión del usuario
clientUsername: 'st-web-sdVa1NXw', # Nombre del backend para conectarse
clientPassword: 'hKbceN89', # password del backend para conectarse
sizeFile: 190, # tamaño de archivo comprimido permitido para subir al sistema
sizeFileUnZip: 10 # tamaño de archivo sin comprimir permitodo para subir al sistema
};
# Para environment.ts (Desarrollo)
const apiBaseUrl = 'http://HOST:PORT'; # Dirrección IP backend
export const environment = {
production: true,
apiBaseUrl, # Se usa esta variable de entorno para servicios que no utilizan el prefijo api
apiBaseUrlPrefix: apiBaseUrl + '/api', # Variable para los servicios generales
nameTokenSession: 'access_token_st', # Nombre del token en la sesión del usuario
clientUsername: 'st-web-develop-dvKDKgQr', # Nombre del backend para conectarse
clientPassword: '12345', # password del backend para conectarse
sizeFile: 190, # tamaño de archivo comprimido permitido para subir al sistema
sizeFileUnZip: 10 # tamaño de archivo sin comprimir permitodo para subir al sistema
};
Generar compilación¶
Primero se instala las dependencias del proyecto con nodejs y luego se crea la compilación con Angular.
npm install
ng build --prod
Tener en cuenta que se debe tener los environmets configurados dentro del frontend
Configuración Nginx¶
Este servidor sirve para el despliegue del frontend por la IP especifica del servidor:
Habilitamos el servidor Nginx
sudo systemctl enable nginx
Creamos el directorio donde se almacenará la compilación del Frontend con los siguientes permisos
sudo mkdir -p /var/www/st/html sudo chown -R $USER:$USER /var/www/st/html sudo chmod -R 755 /var/www/st
Creamos un enlace simbólico del directorio en los sitios habilitados de nginx
sudo ln -s /etc/nginx/sites-available/st /etc/nginx/sites-enabled/
Ingresamos al archivo de configuraciones de Nginx en la ruta /etc/nginx/nginx.conf
descomentareamos la variable
server_names_hash_bucket_size 64;
Creamos el archivo de los sitios habilitados para nuestro servidor:
Reemplazamos las variables $PUERTO_SERVIDOR Y $IP_SERVIDOR, por la del servidor a configurar.
server { listen $PUERTO_SERVIDOR; listen [::]: $PUERTO_SERVIDOR; root /var/www/st/html/dist/st-site-web; index index.html index.htm index.nginx-debian.html; server_name $IP_SERVEVIDOR; location / { try_files $uri $uri/ /index.html; } }
Comprobamos la sintaxis de los archivos configurados y reiniciamos el servidor nginx
sudo nginx -t sudo systemctl restart nginx
Desplegar Frontend¶
Se debe copiar el directorio «dist» generado en el proyecto st-site-web en la carpeta de sitios activos de Nginx
cp -R dist /var/www/st/html/