Skip to content

Latest commit

 

History

History
272 lines (208 loc) · 10.6 KB

File metadata and controls

272 lines (208 loc) · 10.6 KB

RELECOV-PLATFORM

Apache Tomcat Red Hat Enterprise Linux Microsoft SQL Server Python Django

Componente Versión Descripción
Apache Tomcat 8.5+ Servidor de aplicaciones, contenedor Java Servlet.
Red Hat Enterprise Linux 7+ Sistema operativo, distribución Red Hat.
Microsoft SQL Server 2017 Sistema de gestión de base de datos relacional.
Python 3.10+ Lenguaje de programación.
Django 5.1.6 Framework web.

Índice


1. Resumen del flujo (orden correcto)

  • Pre-requisitos del host (paquetes, servicios básicos, usuarios/grupos, carpetas y permisos).
  • MySQL/MariaDB: instalación/arranque, hardening, creación de BBDD y usuario.
  • Restauración desde dump (si aplica) o instalación “limpia” con migraciones.
  • Clonado de repositorios: relecov-platform y iskylims.
  • Configuración de install_settings.txt en cada proyecto.
  • Instalación (dependencias + aplicación) mediante install.sh.
  • Carga de datos (schema, GFF, test data, proyectos de iSkyLIMS, ontologías).
  • Arranque y validación (servicio web, acceso Django admin, pruebas mínimas).

2. Pre-requisitos del sistema

2.1 Paquetes base

Antes de iniciar la instalación, asegúrate de que:

  • Tienes privilegios de sudo para instalar paquetes requeridos.
  • El servidor de base de datos (MySQL/MariaDB) está en ejecución.
  • El servidor de correo está configurado para enviar emails.
  • El servidor Apache está en ejecución.
  • Dependencias del sistema están instaladas.
  • Además, revisa los requisitos previos específicos de iSkyLIMS: LEAME → Requisitos previos.

RedHat/CentOS:

sudo yum install -y redhat-lsb-core

Ubuntu:

sudo apt update && sudo apt install -y lsb-release

pkg-config:

sudo apt install -y pkgconf

MySQL server y cliente (Ubuntu):

sudo apt install -y mysql-server mysql-client

3. Creación de la Base de Datos (una vez inicializado MySQL)

Crear base de datos RELECOV:

sudo mysql -u root -p

Dentro del cliente MySQL:

CREATE DATABASE relecov;
CREATE DATABASE relecovlims;

Ver si está creada correctamente:

SHOW DATABASES;

Crear un usuario no-admin para manejo de las nuevas bases de datos:

CREATE USER 'relecov_user'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON relecov.* TO 'relecov_user'@'localhost';
GRANT ALL PRIVILEGES ON relecovlims.* TO 'relecov_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Cargar backup de las Bases de Datos:

sudo mysql -p relecov     < /path/to/relecov-platform_db.sql
sudo mysql -p relecovlims < /path/to/relecov-iskylims_db.sql

4. Clonar repositorios

Ahora que ya tenemos MySQL preparado, podemos comenzar con la instalación de la plataforma.

Clonar la última versión del código: Clona el código en el home del usuario administrador (por ejemplo, ~/clones), no en /opt.

/opt se utilizará como ruta de instalación/ejecución que define INSTALL_PATH en install_settings.txt.

git clone git@github.com:BU-ISCIII/relecov-platform.git

Para iSkyLIMS, sigue: Clonar el repositorio de GitHub.

Crear directorios de despliegue:

cd /opt
sudo mkdir -p relecov-platform iskylims
sudo chown -R root:apache relecov-platform iskylims
sudo chmod 2775 relecov-platform iskylims

5. Configuración – install_settings.txt

Copiar el template de configuración (relecov-platform):

cp relecov_platform/conf/template_install_settings.txt relecov_platform/install_settings.txt

5.1 Editar install_settings.txtrelecov-platform

### Installation path
INSTALL_PATH='/opt/relecov-platform'
PROJECT_NAME='relecov_platform'
REQUIRED_MODULES='core dashboard docs'
MIGRATION_MODULES='core dashboard'

### (optional) Python installation path where pip and python executables are located
PYTHON_BIN_PATH='/path/to/bin/python3'  # example: /usr/bin/python3

### Settings required to access database
DB_USER='relecov_user'
DB_PASS='relecov_user-password'  ## The One defined in the ddbb creation in 3.4.3
DB_NAME='relecov'
DB_SERVER_IP='mydatabaseip.isciii.es'  # 'localhost' si fuera solo para uso local
DB_PORT='3306'                         # ejemplo

### Settings required for accessing relecov-platform
LOCAL_SERVER_IP='10.22.140.235'        # example: 172.0.0.1
DNS_URL='relecov-platform.isciiides.es' # Dejarlo vacío si fuera solo para uso local
SUPERUSER='admin'

### Logs settings
LOG_TYPE='symbolic_link'                # can be symbolic_link or regular_folder
LOG_PATH='/var/log/apps/relecov-platform'  # obligatorio si LOG_TYPE='symbolic_link'

# Check whether LOG_PATH exists; if not, create it.

5.2 Editar install_settings.txtrelecov-iskylims

Configura iSkyLIMS según Configuración de ajustes. Nota: ajusta DB_NAME al usado en tu entorno RELECOV (relecovlims) y mantén la misma IP/host que usará relecov-platform.

### Installation path and modules settings
INSTALL_PATH='/opt/iskylims'
REQUIRED_MODULES='core drylab wetlab clinic django_utils'
MIGRATION_MODULES='core drylab wetlab django_utils'
FAKEINITIAL_MODULES='django_utils iSkyLIMS_core iSkyLIMS_wetlab iSkyLIMS_drylab'

### (optional) Python installation path where pip and python executables are located
PYTHON_BIN_PATH='python3'  # example: /opt/python/3.9.6/bin/python3

### Settings required to access database
DB_USER='relecov_user'
DB_PASS='relecov_user-password'  ## The One defined in the ddbb creation in 3.4.3
DB_NAME='relecovlims'
DB_SERVER_IP='mydatabaseip.isciii.es'   # 'localhost' si fuera solo para uso local
DB_PORT='3306'                          # ejemplo

### Settings required for sending emails
EMAIL_HOST_SERVER='localhost'
EMAIL_PORT='25'
EMAIL_HOST_USER='bioinfo'
EMAIL_HOST_PASSWORD=''
EMAIL_USE_TLS='False'

### Settings required for accessing relecov-platform
LOCAL_SERVER_IP='10.22.140.235'         # example: 172.0.0.1
DNS_URL='relecov-iskylims.isciiides.es' # '' si fuera solo para uso local
SUPERUSER='admin'                        # name of the django superuser that will be created

### Logs settings
LOG_TYPE='symbolic_link'                 # can be symbolic_link or regular_folder
LOG_PATH='/var/log/apps/relecov-iskylims'  # obligatorio si LOG_TYPE='symbolic_link'

# Check whether LOG_PATH exists; if not, create it.

6. Instalación y despliegue

Permisos: para instalar dependencias del sistema se requieren privilegios de administración (root/sudo). Para facilitar la separación de responsabilidades (Sistemas vs. Aplicaciones), el script admite el parámetro --install / --upgrade con estas opciones:

  • dep → instala/actualiza paquetes del sistema y dependencias de Python del proyecto. Requiere permisos de administración.
  • app → instala/actualiza únicamente la aplicación (código y migraciones). No requiere permisos de administración.

Ejecuta los comandos desde la carpeta del proyecto correspondiente y con install_settings.txt ya configurado.

La separación interna entre preparación de ficheros y bootstrap se usa ahora para las imágenes de contenedor. En bare-metal no cambian los comandos operativos: --install y --upgrade siguen ejecutando el flujo completo de dependencias, aplicación y base de datos.

6.1 Instalación relecov-platform

Dependencias (requiere administración):

# Instalación inicial de dependencias
sudo bash install.sh --install dep

Aplicacion (no requiere administración):

# Instalación inicial de dependencias
bash install.sh --install app

6.2 Instalación relecov-iskylims

Consulta las secciones de instalación/actualización del LEAME

sudo bash install.sh --upgrade dep
sudo bash install.sh --upgrade app

6.3 Despliegue

En el servidor de desarrollo ejecutar el hardening y reiniciar Apache:

# 1) Hardening del servidor (hardening)
sudo /scripts/hardening.sh

# 2) Reiniciar el servicio web
sudo systemctl restart httpd