Требования
| Компонент | Требование |
|---|---|
| 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 см. Обновление и миграция со старых версий.
