GrantForge

    Despliegue y operación

    Instalar la versión publicada

    Instala, arranca, detén y actualiza la versión publicada de GrantForge en una máquina física o virtual.

    Requisitos del entorno

    Elemento Requisito
    Java 17 o superior (la versión publicada está compilada con Java 17; se recomienda 21)
    Memoria 1 GB como mínimo; para producción, 2 GB o más
    Base de datos H2 integrada para probar; en producción, PostgreSQL, MySQL, MariaDB, Oracle o SQL Server; consulta Bases de datos
    Navegadores Chrome, Edge, Firefox o Safari en sus dos últimas versiones principales

    Estructura de carpetas

    Al descomprimir grantforge-release.tar.gz se obtiene la carpeta grantforge/:

    Carpeta Contenido
    bin/ startup.sh, shutdown.sh, restart.sh, debug.sh e import-legacy.sh
    configure/ application.properties, donde se sobrescriben los valores por defecto
    lib/ los jar del servidor y sus dependencias
    drivers/ controladores JDBC adicionales (el de MySQL hay que añadirlo a mano)
    plugins/ plug-ins de tipo de servicio; consulta Plug-ins y tipos de servicio
    agents/ los jar de agente que se despliegan en los sistemas de destino, como el agente NameNode de Apache Hadoop HDFS
    data/ el archivo de la base de datos H2 integrada (se crea en el primer arranque)
    logs/ grantforge.log; console.out guarda la salida anterior al arranque del sistema de registro

    Arrancar y detener

    bin/startup.sh     # arranca en segundo plano y escribe el pid en su archivo
    bin/shutdown.sh    # detiene con elegancia usando el archivo pid
    bin/restart.sh     # detiene y vuelve a arrancar
    bin/debug.sh       # se ejecuta en primer plano, con los registros también en consola; Ctrl+C lo detiene

    Los scripts se pueden ejecutar desde cualquier carpeta: la carpeta de instalación es la que está un nivel por encima de la del script, aunque también se puede indicar con la variable de entorno GRANTFORGE_HOME.

    Elegir la base de datos

    Por defecto se usa la base de datos de archivo H2 en data/grantforge, que basta para probar. En producción, indica la base de datos en configure/application.properties o con variables de entorno:

    export GRANTFORGE_DB_URL=jdbc:postgresql://db.example.com:5432/grantforge
    export GRANTFORGE_DB_USER=grantforge
    export GRANTFORGE_DB_PASSWORD=******
    bin/startup.sh

    En la primera conexión, GrantForge crea todas las tablas con Liquibase; después, cada arranque ejecuta las migraciones que falten.

    Primera inicialización

    En el primer arranque se imprime en el registro un token de inicialización de un solo uso: abre la consola, introduce el token y crea el primer administrador. El proceso está en Primeros cinco minutos.

    Comprobación de salud y monitorización

    Dirección Uso
    /actuator/health/liveness sonda de vida
    /actuator/health/readiness sonda de preparación: devuelve 200 cuando la base de datos está disponible y las migraciones se han aplicado
    /actuator/prometheus métricas de Prometheus; por defecto exige iniciar sesión, pero se puede abrir a una red de confianza con GRANTFORGE_PROMETHEUS_PUBLIC=true

    Si necesitas registros estructurados, define LOGGING_STRUCTURED_FORMAT_CONSOLE=ecs (o logstash). Cada línea lleva el ID de solicitud, que se corresponde con el requestId de las respuestas de error de las interfaces.

    Despliegue en clúster

    Varias instancias pueden compartir una misma base de datos y dar servicio a la vez: las sesiones se guardan en la base de datos, así que cualquier instancia puede atender cualquier petición. Cada instancia necesita un GRANTFORGE_ID_NODE distinto (de 0 a 1023), que decide el número de nodo que se usa al generar los ID. El equilibrador de carga no necesita afinidad de sesión.

    Actualizar

    Detén el servicio, sustituye el lib/ antiguo por el de la nueva versión (conserva configure/, data/, drivers/ y plugins/), vuelve a arrancar y las migraciones de la base de datos se ejecutan solas. Haz una copia de seguridad de la base de datos antes de actualizar. Para pasar de 1.x, consulta Actualizar y migrar versiones antiguas.

    Editar esta página en GitHub