GrantForge

    Развёртывание и эксплуатация

    Установка дистрибутива

    Установка, запуск, остановка и обновление дистрибутива GrantForge на физической или виртуальной машине.

    Требования

    Компонент Требование
    Java 17 или новее (дистрибутив скомпилирован под Java 17; рекомендуется 21)
    Память Не менее 1 ГБ; для продакшена рекомендуется 2 ГБ и более
    База данных Встроенная H2 для оценки; для продакшена — PostgreSQL, MySQL, MariaDB, Oracle или SQL Server, см. Базы данных
    Браузер Две последние мажорные версии Chrome, Edge, Firefox и Safari

    Структура каталогов

    После распаковки grantforge-release.tar.gz появляется каталог grantforge/:

    Каталог Содержимое
    bin/ startup.sh, shutdown.sh, restart.sh, debug.sh и import-legacy.sh
    configure/ application.properties; здесь переопределяется конфигурация по умолчанию
    lib/ JAR-файлы сервера и зависимостей
    drivers/ Дополнительные JDBC-драйверы (MySQL необходимо добавить вручную)
    plugins/ Плагины типов сервисов, см. Плагины и типы сервисов
    agents/ JAR-файлы агентов для развёртывания в целевых системах, например агент Apache Hadoop HDFS NameNode
    data/ Файлы встроенной базы данных H2 (создаются при первом запуске)
    logs/ grantforge.log; console.out фиксирует вывод, произведённый до запуска системы логирования

    Запуск и остановка

    bin/startup.sh     # 后台启动,进程号写入 pid 文件
    bin/shutdown.sh    # 按 pid 文件优雅停止
    bin/restart.sh     # 停止后再启动
    bin/debug.sh       # 前台运行,日志同时输出到控制台,Ctrl+C 停止

    Скрипты можно запускать из любого каталога; каталогом установки считается родительский каталог того, в котором лежит скрипт, либо его можно задать явно переменной окружения GRANTFORGE_HOME.

    Выбор базы данных

    По умолчанию GrantForge использует файловую базу H2 в data/grantforge — этого достаточно для оценки. Для продакшена укажите базу данных в configure/application.properties или через переменные окружения:

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

    При первом подключении GrantForge автоматически создаёт все таблицы с помощью Liquibase; при каждом последующем запуске применяются ещё не выполненные миграции.

    Первоначальная настройка

    При первом запуске в лог выводится одноразовый токен настройки. Откройте консоль, введите токен и создайте первого администратора; процесс описан в разделе Быстрый старт за пять минут.

    Проверки готовности и мониторинг

    Эндпоинт Назначение
    /actuator/health/liveness Проба живости (liveness)
    /actuator/health/readiness Проба готовности (readiness): возвращает 200, когда база данных доступна и миграции завершены
    /actuator/prometheus Метрики Prometheus; по умолчанию требуют авторизации, GRANTFORGE_PROMETHEUS_PUBLIC=true открывает их для доверенной сети

    Для структурированных логов задайте LOGGING_STRUCTURED_FORMAT_CONSOLE=ecs (или logstash). Каждая строка лога содержит идентификатор запроса, совпадающий с requestId в ответах об ошибках API.

    Кластерное развёртывание

    Несколько экземпляров могут работать с одной базой данных и обслуживать трафик одновременно: сессии хранятся в базе данных, поэтому любой экземпляр может обработать любой запрос. Каждому экземпляру нужен свой GRANTFORGE_ID_NODE (0–1023), который определяет номер узла при генерации идентификаторов. Балансировщику не требуются sticky-сессии.

    Обновление

    Остановите сервис, замените старый lib/ на каталог из новой версии (сохранив configure/, data/, drivers/, plugins/) и запустите его снова; миграции базы данных выполнятся автоматически. Перед обновлением сделайте резервную копию базы данных. Для обновления с 1.x см. Обновление и миграция со старых версий.

    Редактировать эту страницу на GitHub