Esta documentación presenta los pasos para instalar la solución LockSelf On-Premises.
____________________________________________________________________________________
Para instalar su instancia On Premises, tiene dos opciones:
- Instalar la aplicación manualmente, siguiendo los pasos que se indican a continuación .
- Utilizar nuestro script de instalación, que permite instalar la aplicación en pocos minutos (y que sigue los mismos pasos de esta documentación).
- No dude en solicitar el script a su gestor de cuenta .
- O dejar que el script de instalación genere la base de datos en la máquina.
- O dejar que el script de instalación genere la base de datos en la máquina.
- O configurar su instancia de MariaDB y crear su base de datos, y luego, en el script de instalación, definir la información de su base de datos manualmente.
- O dejar que el script de instalación genere la base de datos en la máquina.
- Conocer el entorno Linux. .
- Conocer el manejo de un entorno Docker y sentirse cómodo con docker-compose.
- Conocer el entorno Docker y sentirse cómodo con docker-compose.
- Ser competente con "docker ps", "docker exec", "docker logs", "docker images", "docker load" y todos los comandos básicos de docker.
- Conocer el entorno Linux y sentirse cómodo con docker-compose.
- Tener ya desplegados y mantenidos entornos MySQL/MariaDB.
- Tener ya desplegados y mantenidos entornos MySQL/MariaDB.
- Tener un flujo HTTPS entre una estación de trabajo de usuario y el servidor de verificación de licencia LockSelf (necesario para activar la clave de licencia, ver paso 7) .
- Una API REST PHP
- Una base de datos MariaDB.
- Una base de datos MariaDB
- Compilación y configuración de Nginx .
- Configuración de PHP-FPM
- Instalación de Supervord
- Instalación y configuración de Supervord .
- Ubuntu (LTS)
- Debian (LTS)
- Debian (LTS)
- CentOS (LTS)
- CentOS (LTS)
- RockyLinux (LTS)
- RockyLinux (LTS)
- CentOS (LTS)
- si utilizas 1 mismo servidor para ambas partes (base de datos y aplicación) = 2 CPUs y 4 GB RAM
- si utiliza 2 servidores separados: cada uno con 2 CPU y 2 GB de RAM (aunque recomendamos 4 GB de RAM para el servidor de base de datos)
- El nombre de dominio que desea utilizar. (por ejemplo, lockself.empresa.com)
- El nombre de dominio que desea utilizar.
- El certificado SSL, los certificados intermedios y la clave privada asociados a este nombre de dominio. Estos certificados serán utilizados por el servidor web de la aplicación para asegurar los intercambios entre el usuario y la aplicación. En el marco de una interconexión SSO entre un AD y LockSelf, estos certificados serán utilizados para generar los metadatos de la aplicación, que serán luego suministrados al AD. En caso de que sus certificados contengan Atributos de Bolsa y Atributos de Clave, por favor bórrelos.
- .
- La información de autenticación y conexión para su SMTP (que se utilizará para enviar correos electrónicos del sistema relacionados con el uso de la aplicación) .
-
--name
: corresponde al nombre del contenedor una vez creado - .
-
-v
: corresponde al volumen montado habilitando la persistencia de datos - .
-
-e
: MYSQL_ROOT_PASSWORD - sustituye "my-secret-pwd" por la contraseña que se asociará al usuario root cuando se lance el contenedor por primera vez -
-e
: MYSQL_DATABASE - "lockself" corresponde al nombre de la base de datos creada cuando el contenedor se lanza por primera vez -
-p
: permite al servidor anfitrión reenviar peticiones en el puerto 3306 al contenedor - .
-
-d
: permite que el contenedor se inicie en segundo plano -
mariadb:10.6.X
: corresponde a la versión de la imagen de MariaDB utilizada -
PASSWORD
- A sustituir por las contraseñas que desea asociar a los usuarios. -
IP
- Para ser reemplazado por la IP/Rango de los servidores de aplicación. Tenga cuidado de estar seguro de la IP de salida que se utilizará. Dependiendo de la arquitectura, los servidores de aplicaciones pueden salir desde la IP del contenedor (generalmente 172.X) o desde la IP del servidor anfitrión. - Servidores de aplicaciones
- Salida desde la IP del servidor anfitrión.
-
mariadb
debe modificarse con el nombre del contenedor elegido (nombre elegido en el paso 5.1) - .
-
my-secret-pwd
se debe modificar con la contraseña de root -
crear_usuario.sql
se debe modificar con respecto al nombre del archivo que contiene el script SQL anterior - La imagen contenedora: lockself-api-X.X.X.tar.gz
- La firma de la imagen del contenedor: lockself-api-X.X.X.tar.gz.sig
-
El archivo
env
(por ejemplo en:/home/user/lockself/env
) generado por el scriptinstall_lockself.sh
(Paso 6.3).
-
En una carpeta (por ejemplo:
/home/user/lockself/ssl/
), los certificados SSL (como recordatorio: En caso de que tus certificados contengan Atributos de la bolsa y Atributos clave, por favor, elimínelos):- El certificado seguido de la cadena de certificación bajo el nombre:
ssl-certificate.crt
. - La clave privada sin cifrar bajo el nombre:
ssl-certificate.key
- Sólo como parte de una conexión SSO:
- El certificado SIN la cadena de certificación bajo el nombre:
sp.crt
- El certificado SIN la cadena de certificación bajo el nombre:
- El certificado seguido de la cadena de certificación bajo el nombre:
-
En una carpeta (por ejemplo:
/home/user/lockself/jwt/
) el par de claves RSA generado en el paso 6.2:- La clave privada bajo el nombre:
private.pem
. - La clave pública bajo el nombre:
public.pem
- La clave privada bajo el nombre:
-
Una carpeta que se utilizará para almacenar los archivos y hacerlos permanentes si se reinicia el contenedor (por ejemplo:
/home/usuario/lockself/files
). - Opcional: En el caso de que SELinux esté habilitado en los servidores anfitriones, se debe realizar un cambio de derechos en los distintos ficheros:
chcon -Rt svirt_sandbox_file_t /home/user/lockself/jwt
.
chcon -Rt svirt_sandbox_file_t /home/user/lockself/ssl
chcon -Rt svirt_sandbox_file_t /home/user/lockself/env
-
chcon -Rt svirt_sandbox_file_t /home/user/lockself/files
-
--nombre
: corresponde al nombre del contenedor una vez creado -
-v
: corresponde a los volúmenes montados -
-p
: permite que el host reenvíe peticiones en los puertos 80 y 443 al contenedor -
-d
: permite que el contenedor se lance en segundo plano -
lockself-api-v3:X.X.X
: corresponde a la versión de la imagen LockSelf utilizada - docker logs -f CONTAINER_ID
- El archivo
env
generado en el paso 6.3.- Este archivo contiene los archivos de configuración imprescindibles para que tu instalación funcione correctamente. Estos archivos una vez generados no pueden ser regenerados de forma idéntica. Si los perdiera, la información contenida en la base de datos se volvería indescifrable.
- La base de datos
Si opta por el script, deberá decidir si desea configurar su propia instancia de MariaDB y crear su base de datos (consulte el punto 5 de la documentación). Para ello puedes:
En todos los casos (instalación manual o script), será importante:
1. Preámbulo
La aplicación LockSelf utiliza dos componentes:
La base de datos y la API de LockSelf se despliegan a través de Docker utilizando las imágenes oficiales de MariaDB (https://hub.docker.com/_/mariadb) y php:fpm-alpine (https://hub.docker.com/_/php) respectivamente.
La imagen de MariaDB se despliega a través de Docker utilizando la imagen oficial de MariaDB (https://hub.docker.com/_/mariadb).
La imagen de MariaDB se utiliza sin ninguna modificación particular.
En cuanto a la imagen PHP (Alpine base), ha sido optimizada:
Todos los procesos dentro del contenedor de aplicaciones se ejecutan con el usuario 'nobody'. En cuanto al contenedor de MariaDB, el usuario utilizado es 'mysql'
.
Desaconsejamos poner las dos partes (base de datos y aplicación) en el mismo servidor y recomendamos utilizar uno de los siguientes SO:
.
Recomendamos las siguientes configuraciones:
Ambos servidores (base de datos y aplicación) deben tener instalado el paquete docker. No explicaremos cómo funciona docker en este procedimiento, debes estar iniciado a esta herramienta para poder realizar correctamente la instalación.
💡Recomendamos pasar vía Ansible el hardening del playbook, que permite implementar seguridad adicional dentro del host (https://github.com/openstack/ansible-hardening). |
2. Requisitos previos
Antes de comenzar a instalar el servicio, asegúrese de tener lo siguiente:
Si desea configurar una interconexión en un directorio corporativo, utilizamos el protocolo SAMLv2. Por lo tanto, debes asegurarte de que cuentas con un módulo tipo ADFS para Active Directory, OpenID para OpenLDAP o los módulos SAMLv2 incluidos en Azure u Office 365.
3. Descripción de la infraestructura simplificada
💡La instalación de LockSelf también puede realizarse en modo clúster, para la parte de la aplicación y para la parte de la base de datos.. |
4. Matriz de flujos de la red
Los flujos a configurar para los distintos servidores son:
Servidor | Entrada | Saliendo |
---|---|---|
Aplicación | 443 desde el exterior | 25, 465 o 587 a su servidor SMTP |
Base de datos | 3306 de la subred de los servidores de aplicaciones |
5. Instalando el primer componente: Base de datos MariaDB
5.1. Acciones a realizar en el servidor de base de datos - Paso 1
Hay tres opciones para desplegar el contenedor de base de datos. Depende de ti elegir cuál quieres utilizar según las recomendaciones de la empresa.
5.1.1. Lanzamiento manual
docker run
--name mariadb \
-v /var/lib/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=my-secret-pwd \
-e MYSQL_DATABASE=lockself \
-p 3306:3306 \
-d mariadb:10.6.X
Las variables de entorno opción -e
sólo se tienen en cuenta cuando se inicia el contenedor por primera vez. Si los datos están presentes en /var/lib/mysql
, estos valores no se tendrán en cuenta y no tendrán ningún efecto.
⚠️ Atención, la versión de la imagen debe adaptarse según la versión actual 10.6 de MariaDB.. |
5.1.2. Lanzamiento a través de docker-composer
Si desea utilizar docker-compose para iniciar el contenedor de base de datos, puede utilizar el archivo de configuración docker-compose.yml a continuación:
version: '3.8'
services:
mariadb:
image: mariadb:10.6.X
restart: always
volumes:
- "/var/lib/mysql:/var/lib/mysql"
ports :
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: my-secret-pwd
MYSQL_DATABASE: lockself
Una vez recuperado el archivo de configuración del servidor anfitrión, puede iniciar el contenedor mediante el siguiente comando:
docker-compose up -d --build
⚠️ Atención, la versión de la imagen debe adaptarse según la versión actual 10.6 de MariaDB. |
5.1.3. Lanzamiento a través de docker-swarm
Si desea utilizar docker-swarm para iniciar el contenedor de base de datos, puede utilizar el archivo de configuración yaml que se muestra a continuación:
version: '3.7'
services:
mariadb:
image: mariadb:10.6.X
ports:
- target: 3306
published: 3306
protocol: tcp
mode: host
environment:
MYSQL_ROOT_PASSWORD: my-secret-pwd
MYSQL_DATABASE: lockself
volumes:
- "/var/lib/mysql:/var/lib/mysql"
Swarm se puede utilizar de varias formas que no vamos a detallar en este procedimiento. Puedes encontrar todos los detalles de su funcionamiento en su web oficial: https://docs.docker.com/engine/swarm/
⚠️ Atención, la versión de la imagen debe adaptarse según la versión actual 10.6 de MariaDB. Para desplegar a través de este mecanismo, puede que necesite añadir opciones, como red, desplegar, etc.. |
5.2. Explicaciones relativas al paso 5.1
5.2.1. Punto obligatorio para el correcto funcionamiento de la aplicación
Para obtener la persistencia de los datos, es necesario el montaje de un volumen para compartir la carpeta /var/lib/mysql
del contenedor (que contiene los datos db) con el host.
Este punto de montaje se realiza a través de la opción -v
o volumes
dependiendo del modo de lanzamiento elegido.
En el paso 5.1, utilizamos el siguiente punto de montaje: /var/lib/mysql:/var/lib/mysql
.
Opcional: En el caso de que SELinux esté habilitado en los servidores anfitriones, se debe realizar un cambio de derechos en los distintos ficheros:
Los servidores anfitriones deben tener SELinux habilitado.
chcon -Rt svirt_sandbox_file_t /var/lib/mysql
En este ejemplo, los datos de MariaDB que se almacenan en el contenedor en la carpeta /var/lib/mysql
también se almacenarán en el host en la carpeta /var/lib/mysql.
5.2.2. Más información sobre los volúmenes
https://docs.docker.com/storage/volumes/
5.3. Acción a realizar en el servidor de base de datos - Paso 2
Este paso se debe realizar en el servidor de base de datos una vez iniciado el contenedor MariaDB, para preparar el script de añadir usuario.
Este paso se debe realizar en el servidor de base de datos una vez iniciado el contenedor MariaDB, para preparar el script de añadir usuario.
Para ello, recupera el siguiente script y modifica los siguientes valores:
-- Crear usuario www. Es utilizado por la aplicación para leer la db.
-- Hay que modificar la IP con la IP/Rango de los servidores de la aplicación.
-- Hay que modificar la PASSWORD con la contraseña que se quiera dar a este usuario.
CREATE USER 'www'@'IP' IDENTIFIED BY 'PASSWORD';
-- Concede derechos al usuario www.
-- Sustituye IP por la IP/Rango de los servidores de aplicación.
GRANT SELECT,INSERT,UPDATE,DELETE ON lockself.* TO 'www'@'IP';
-- Crea el usuario lockself_migration. Lo usará la aplicación para migrar la db.
-- Hay que modificar IP con la IP/Rango de los servidores de la aplicación.
-- Hay que modificar PASSWORD con la contraseña que se quiera dar a este usuario.
CREATE USER 'lockself_migration'@'IP' IDENTIFIED BY 'PASSWORD';
-- Concede derechos al usuario lockself_migration.
-- Sustituye IP por la IP/Rango de los servidores de aplicación.
GRANT SELECT,INSERT,UPDATE,DELETE,ALTER,CREATE,DROP,INDEX ON lockself.* TO 'lockself_migration'@'IP';
Como recordatorio, el usuario root y la creación de la base de datos se realizan mediante las variables de entorno cuando se lanza el contenedor por primera vez.
💡 Si lo deseas, puedes crear otros usuarios para tus necesidades de copia de seguridad, monitorización, etc.. |
5.4. Acciones a realizar en el servidor de base de datos - Paso 3
Una vez modificado el script anterior y adaptado a tus necesidades, ejecuta el siguiente comando para crear los usuarios en la base de datos:
docker exec -i mariadb sh -c 'exec mysql -uroot -pmy-secret-pwd' < create_user.sql
6. Instalación del segundo componente: La aplicación LockSelf
6.1. Preámbulo
En primer lugar, necesitamos recuperar el paquete proporcionado por los equipos LockSelf y comprobar su integridad. Este paquete incluye:
⚠️ Antes de cualquier operación, debe comprobar la firma adherida a la imagen del contenedor. |
6.2. Acción a realizar en el servidor de aplicaciones - Paso 1
El primer paso es crear un par de claves RSA. Esta será utilizada por la aplicación LockSelf. Estas claves deben ser almacenadas en el servidor, las utilizaremos en el paso 6.5.
6.5.
openssl genpkey -out private.pem -aes256 -algorithm rsa -pkeyopt rsa_keygen_bits:4096
Para la frase de contraseña solicitada durante la ejecución de este comando, recomendamos una frase de contraseña aleatoria de 32 caracteres alfanuméricos con caracteres especiales. Esta frase de contraseña se solicitará en el paso 6.3.
openssl pkey -in private.pem -out public.pem -pubout
El primer comando crea la clave privada RSA (4096 bits) y la cifra en AES256 con la frase de contraseña especificada.
El segundo extrae la clave privada RSA (4096 bits) y la cifra en AES256 con la frase de contraseña especificada.
El segundo extrae la clave pública asociada.
6.3. Acciones a realizar en el servidor de aplicaciones - Paso 2
Recupera el script install_lockself.sh
del apéndice del documento (13.1) en el servidor y ejecútalo. Se le pedirán varios datos. Al final de la ejecución del script, recuperará un archivo llamado env
que utilizaremos en el paso 6.5.
El archivo de entorno generado env
contiene, en particular, las sales de cifrado y las variables relativas a su infraestructura local.
6.5.
6.4. Antes del despliegue del contenedor
Antes de desplegar el contenedor, comprueba que tienes la siguiente información disponible en el servidor web:
6.5. Acciones a realizar en el servidor de aplicaciones - Paso 3
Cargar la imagen LockSelf en el servidor web:
docker load --input lockself-api-X.X.X.tar.gz
Para desplegar el contenedor de aplicaciones, hay tres posibilidades. Depende de ti elegir cuál quieres usar según las recomendaciones de la compañía.
6.5.1. Lanzamiento manual
docker run
--name lockself-api-3
-v /home/user/lockself/jwt:/usr/local/var/www/html/config/jwt
-v /home/user/lockself/ssl:/usr/local/etc/nginx/ssl
-v /home/user/lockself/env:/usr/local/var/www/html/.env
-v /home/user/lockself/files:/usr/local/var/www/html/var/glutton
-v /home/user/lockself/ssl/sp.crt:/usr/local/var/www/html/vendor/onelogin/php-saml/certs/sp.crt
-v /home/user/lockself/ssl/ssl-certificate.key:/usr/local/var/www/html/vendor/onelogin/php-saml/certs/sp.key
-p 80:8080 \
-p 443:4443 \
-d lockself-api-v3:X.X.X
⚠️ Tenga cuidado de adaptar correctamente la etiqueta de imagen, así como las rutas relativas a los volúmenes. Los dos últimos puntos de montaje sólo deben hacerse para que funcione una conexión SSO. |
6.5.2. Lanzamiento a través de docker-compose
Si desea utilizar docker-compose para iniciar el contenedor de la aplicación, puede utilizar el archivo de configuración docker-compose.yml
que se muestra a continuación:
version: '3.8'
servicios:
lockself-api-3:
imagen: lockself-api-v3:X.X.X
restart: always
volumes:
- "/home/user/lockself/jwt:/usr/local/var/www/html/config/jwt"
- "/home/user/lockself/ssl:/usr/local/etc/nginx/ssl"
- "/home/user/lockself/env:/usr/local/var/www/html/.env"
- "/home/user/lockself/files:/usr/local/var/www/html/var/glutton"
- "/home/user/lockself/ssl/sp.crt:/usr/local/var/www/html/vendor/onelogin/php-saml/certs/sp.crt"
- "/home/user/lockself/ssl/ssl-certificate.key:/usr/local/var/www/html/vendor/onelogin/php-saml/certs/sp.key"
ports :
- "80:8080"
- "443:4443"
Una vez recuperado el fichero de configuración del servidor anfitrión, puede iniciar el contenedor mediante el siguiente comando:
docker-compose up -d --build
⚠️ Ten cuidado de adaptar correctamente la etiqueta de imagen, así como las rutas relativas a los volúmenes. Los dos últimos puntos de montaje sólo deben hacerse para que funcione una conexión SSO.. |
6.5.3. Lanzamiento a través de docker-swarm
Si desea utilizar docker-swarm para iniciar el contenedor de base de datos, puede utilizar el siguiente archivo de configuración yaml:
version: '3.7'
services:
lockself-api-3:
image: lockself-api-v3:X.X.X
ports:
- target: 8080
published: 80
protocol: tcp
mode: host
- target: 4443
published: 443
protocol: tcp
mode: host
volúmenes:
- "/home/user/lockself/jwt:/usr/local/var/www/html/config/jwt"
- "/home/user/lockself/ssl:/usr/local/etc/nginx/ssl"
- "/home/user/lockself/env:/usr/local/var/www/html/.env"
- "/home/user/lockself/files:/usr/local/var/www/html/var/glutton"
- "/home/user/lockself/ssl/sp.crt:/usr/local/var/www/html/vendor/onelogin/php-saml/certs/sp.crt"
- "/home/user/lockself/ssl/ssl-certificate.key:/usr/local/var/www/html/vendor/onelogin/php-saml/certs/sp.key"
Swarm se puede utilizar de varias maneras, que no vamos a entrar en detalle en este procedimiento. Puedes encontrar todos los detalles de su funcionamiento en su web oficial: https://docs.docker.com/engine/swarm/
⚠️ Tenga cuidado de adaptar correctamente la etiqueta de imagen, así como las rutas relativas a los volúmenes. Los dos últimos puntos de montaje sólo deben realizarse para permitir que funcione una conexión SSO. Es posible que también necesite añadir opciones, como red, desplegar, etc. |
Las migraciones de bases de datos (incluyendo la creación de estructuras) se harán automáticamente al iniciar el contenedor. Comprueba que se inicia ejecutando el comando:
7. Crear la cuenta de administrador
Una vez creada la infraestructura, tendrás la oportunidad de crear tu cuenta de administrador. Para ello, dirígete a la siguiente URL y rellena la información solicitada:
https://FQDN/external/users/validate-account/index.html?firstCo
Donde FQDN es el nombre de dominio que opera
Solicite la clave de licencia a su gestor de cuentas.
Para activar la clave de licencia, necesitará un ordenador con conexión a Internet a nuestro sistema de licencias. El nombre de dominio y la IP de este servidor puede proporcionárselos su Gestor de Cuenta.
Solicite la clave de licencia a su Gestor de Cuenta.
8. Copia de seguridad
Dos elementos son importantes para realizar una copia de seguridad en un lugar seguro una vez finalizada la instalación:
- .
Recomendamos aplicar cifrado (simétrico o asimétrico) para la copia de seguridad de estos dos componentes.
Seguridad
9. Interconectar la aplicación en SSO
Para conectar la aplicación en SSO, puedes seguir la siguiente documentación: Configuración de interconexión SSO
9.1. Sincronización de grupos
Si envías grupos de usuarios a través de la Federación y quieres que se sincronicen en LockSelf, tendrás que cambiar el siguiente parámetro en el fichero env
: (asegúrate de que el claim grupos
lo envía la Federación):
.
intercoAd=0
por intercoAd=1
Si no quieres recuperar todos los grupos de tu directorio, puedes elegir un prefijo donde sólo los grupos con este prefijo serán recuperados por LockSelf. La siguiente variable tendrá que ser reemplazada en el archivo env
:
intercoAdPrefix=''
por intercoAdPrefix='MY_PREFIX'
A continuación, reinicie el contenedor.
9.2 Verificar la conexión
Si todos los pasos se han realizado correctamente, tendrás la opción de realizar una conexión desde la pestaña SSO de la aplicación.
Si todos los pasos se han realizado correctamente, tendrás la opción de realizar una conexión desde la pestaña SSO de la aplicación.
10. Apéndices
Apéndice 1 - install_lockself.sh
#!/bin/bash
# Este script configurará tu instalación de LockSelf
# Creará un archivo env. Este archivo será montado en su contenedor.
# Mantener: LockSelf SAS <contact@lockself.com>
if [ -.f $PWD/env ]
then
printf "Ya tienes una instalación de LockSelf. Tenga cuidado de no perder el archivo '~/env'. Sin él, será imposible acceder a sus datos. Si está seguro de reinstalar LockSelf, suprima el fichero ~/env y relance este script."
exit 1
fi
printf " _ _ _____ _ __ \n"
printf "| | | / ____| |/ _|""
printf "| ___ ___| | _| (___ ___| | |_ \n"
printf "| / _ \ / __| |/ /\___ \ / _ | _|\n"
printf "|___| (_) | (__| < ____) | __/ | | \n"
printf "|_________\___/ \|_|\______/ \___|_|_| \n\n"
printf "Bienvenido al programa de instalación local de LockSelf\n"
printf "En primer lugar, configuraremos la información de la base de datos (cuenta aplicativa - paso 5.3):\n\n"
mientras [[ class="token variable">$dbHost == "" ]]
do
printf "DB Host: >" && read dbHost
done
while [[ $dbName == "" ]]
do
printf "DB Name: >" && read dbName
done
while [[ $dbUser == "" ]]
do
printf "DB User (applicative account): >" && read dbUser
done
while [[ $dbPassword == "" ]]
do
printf "Contraseña BD (cuenta aplicativa): >" && read -s dbContraseña
hecho
mientras [[ $dbContraseña2 == "" ]]
do
printf "\nVerifica tu contraseña de BD (cuenta aplicativa): >" && read -¡s dbContraseña2
done
if [[ $dbContraseña != $dbContraseña2 ]]
then
printf "\nLas dos contraseñas no se corresponden. Por favor, reinicie la instalación."
exit 1
fi
printf "\n\nAhora, vamos a configurar la información de la base de datos para el usuario lockself_migration: (paso 5.3)\n"
while [[ $dbPasswordPhinx == "" ]]
do
printf "Contraseña DB lockself_migration: >" && read -s dbPasswordPhinx
done
while [[ $dbPassword2Phinx == "" ]]
do
printf "\nVerifica tu contraseña de BD lockself_migration: >" && read -¡s dbPassword2Phinx
done
if [[ $dbPasswordPhinx != $dbPassword2Phinx ]]
then
printf "\nLas dos contraseñas no se corresponden. Por favor, reinicie la instalación."
exit 1
fi
printf "\n\nIntroduzca ahora la frase de contraseña elegida para el JWT: (paso 6.2)\n"
while [[ $jwtPassphrase == "" ]]
do
printf "Escribe tu frase de contraseña JWT: >" && read -s jwtPassphrase
done
while [[ $jwtPassphrase2 == "" ]]
do
printf "\nVerifica tu frase de contraseña JWT: >" && read -¡s jwtPassphrase2
done
if [[ $jwtPassphrase != $jwtPassphrase2 ]]
then
printf "Las dos contraseñas no se corresponden. Por favor, reinicie la instalación."
exit 1
fi
printf "\n\nConfiguremos la conexión SMTP (se utilizará para enviar el correo electrónico del sistema):\n"
while [[ $smtpHost == "" ]]
do
printf "SMTP Host: >" && read smtpHost
done
while [[ $smtpPort == "" ]]
do
printf "Puerto SMTP: >" && read smtpPort
done
while [[ $smtpAuth == "" ]]
do
printf "SMTP Auth: (true or false) >" && read smtpAuth
done
if [ $smtpAuth == "true" ]
entonces
while [[ $smtpUsername == "" ]]
do
printf "Nombre de usuario SMTP: >" && read smtpUsername
done
while [[ $smtpPassword == "" ]]
do
printf "Contraseña SMTP: >" && read smtpPassword
done
else
smtpUsername=""
smtpContraseña=""
fi
while [[ $smtpSsl == "" ]]
do
printf "SMTP SSL: (ssl or tls or null) >" && read smtpSsl
done
if [ $smtpSsl == "null" ]
entonces
smtpSsl=""
fi
while [[ [ [$smtpNoReply == "" ]]
do
printf "Dirección de no respuesta: (ex: no-reply@company.com) >" && read smtpNoReply
done
printf `date`
printf "\nConfiguración SMTP finalizadan"
printf "\n\nPor último, especifica el dominio que quieres usar:"
while [[ $domain == "" ]]
do
printf "\nDominio: (ex: lockself.empresa.com) >" && readdominio
done
/bin/cat <<EOF > $PWD/env
###> symfony/framework-bundle ###
APP_ENV=prod
APP_DEBUG=0
APP_SECRET=62ab7ba420f13ef7f912d270c2a40ee0
###< symfony/framework-bundle ###
###> lexik/jwt-authentication-bundle ###
JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pem
JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem
JWT_PASSPHRASE="$jwtPassphrase"
JWT_TTL=604800
###< lexik/jwt-authentication-bundle ###
###> doctrine/doctrine-bundle ###
DATABASE_URL='mysql://$dbUser:$dbPassword@$dbHost:3306/$dbName'
##< doctrine/doctrine-bundle ###
###> robmorgan/phinx ###
PHINX_USER='lockself_migration'
PHINX_PASSWORD='$dbPasswordPhinx'
PHINX_HOST='$dbHost'
PHINX_PORT='3306'
PHINX_DB_NAME='$dbName'
###< robmorgan/phinx ###
###> LockSelf ###
debug=0
dominio=$dominio
saltContraseña1="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
saltContraseña2="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
saltPin1="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
saltPin2="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
keyPin="$(LC_ALL=C tr -dc 'A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 32 ; echo)"
ivPin="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
saltApiHash1="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
saltApiHash2="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
sampleHash="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
blockConnexionInSecond=900
pinLength=6
saltTransfer1="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
saltTransfer2="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
saltTransferProtectedEmail1="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
saltTransferProtectedEmail2="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
saltDeposit1="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
saltDeposit2="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
saltMail1="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
saltMail2="$(LC_ALL=C tr -dc '¡A-Za-z0-9!#%&()+,-./:;<=>?@[\]^_{|}~' </dev/urandom | head -c 16 ; echo)"
bucket=
providerAccessKey=
providerSecretKey=
providerRegion=
providerEndpoint=
provider=LOCAL
depositTokenTime=15
noReplyEmail='$smtpNoReply'
colorBtn='#39499b'
companyName="LockSelf"
nameDepositBox="Acceso a una caja de depósito"
newFileDeposit="Nuevo archivo cargado"
newFileDeposit="Nuevo archivo cargado"
newTransfer="Nuevo archivo protegido recibido"
apiVersion=3
apiVersion=3
intercoAd=0
intercoAdPrefix=''
importOrganization=0
importOrganizationSendEmail=0
intercoAdOrganizations=0
###< LockSelf ###
####> symfony/swiftmailer-bundle ###
MAILER_URL=smtp://$smtpHost:$smtpPort?encryption=$smtpSsl&username=$smtpUsername&contraseña=$smtpContraseña
###< symfony/swiftmailer-bundle ###
###> ovh/ovh ###
smsApplicationKey=
smsApplicationSecret=
smsConsumerKey=
smsEndpoint=
###< ovh/ovh ###
###> knplabs/knp-snappy-bundle ###
WKHTMLTOPDF_PATH=/usr/local/bin/wkhtmltopdf
WKHTMLTOIMAGE_PATH=/usr/local/bin/wkhtmltoimage
##< knplabs/knp-snappy-bundle ###
EOF
printf "\n\nStep 6.3 terminado. Si desea revisar su archivo de configuración, como su configuración smtp o base de datos, puede comprobar el archivo 'env' que es creado por este script o puede continuar la guía de despliegue."
Actualización