Установка и запуск¶
Установите Grom из GitHub Release или соберите из исходников. Подробности конфигурации (TLS, хранилище, федерация, mailer / сброс пароля, captcha) — в Конфигурация.
Скачать с GitHub Releases¶
Готовые пакеты публикуются с каждым релизом GitHub:
| Артефакт | Содержимое |
|---|---|
grom-<version>-linux-amd64.tar.gz |
Бинарник сервера + config-examples/ |
grom-<version>-darwin-arm64.zip |
Бинарник сервера + config-examples/ (Apple Silicon) |
grom-<version>-darwin-amd64.zip |
Бинарник сервера + config-examples/ (Intel Mac) |
grom-<version>-windows-amd64.zip |
Бинарник сервера + config-examples/ |
grom-<version>.apk |
Android-клиент |
Распакуйте архив для вашей ОС, скопируйте конфиг из config-examples/ (задайте auth.jwt_secret), затем запустите бинарник grom — см. Запуск ниже.
Сборка из исходников¶
Требования¶
- Go 1.26+
- Flutter SDK
>=3.4.0 <4.0.0(для встроенного веб-UI и сборок Android) - Make
Сборка¶
Из корня репозитория:
make grom # swagger + Flutter web + Go-бинарник → cmd/grom/grom
make test # тесты Go и Flutter
make cli # только Go-бинарник (без пересборки Flutter web)
make web # Flutter web → internal/web/dist
Другие полезные цели: make apidoc (перегенерация OpenAPI), make android-apk, make clean.
Запуск¶
Примеры конфигов есть в релизных архивах и в cmd/grom/config-examples/ в репозитории. Сервер ищет config.yaml в текущем рабочем каталоге, если не передан --config / -c.
Из релизного пакета (пример только HTTP):
cp config-examples/config.dev.notls.yaml config.yaml
# отредактируйте config.yaml — задайте auth.jwt_secret
./grom --config config.yaml
Из исходников, только HTTP (без TLS, федерация выключена):
После make grom, с конфигом рядом с бинарником:
cd cmd/grom
./grom --config config.yaml
# или полагаться на config.yaml в рабочей директории по умолчанию:
./grom
Откройте веб-UI в браузере по базовому URL сервера (тот же Flutter-клиент, что на Android — например http://localhost:8080/ с config.dev.notls.yaml). Зарегистрируйте пользователя и войдите. См. Обзор для пользователя.
Приложение Android (и позже iOS) может подключиться к тому же инстансу: на экране входа укажите хост (схема необязательна). Открытый HTTP разрешён для локальных/LAN-установок без TLS; используйте HTTPS, если сервер доступен за пределами локальной сети. Как клиент выбирает http vs https — в Обзор для пользователя.
Документация API (Swagger UI): http://<host>:<port>/api/docs/ (например http://localhost:8080/api/docs/). Сгенерированные исходники OpenAPI также лежат в api/docs/ в репозитории.
Справка CLI:
Дальше¶
- Выберите профиль TLS и драйвер хранилища (
bboltдля обычных установок;fileв основном для тестов / крошечных инстансов) — Конфигурация - При желании включите email для сброса пароля (
mailer+auth.reset.public_base_url) — Конфигурация — Mailer и сброс пароля - При желании включите ALTCHA captcha на регистрацию/вход/«забыли пароль» (
auth.captcha.enabled) — Конфигурация — Auth captcha - Сгенерируйте самоподписанные сертификаты для локального HTTPS —
grom gencerts(см. раздел TLS в конфигурации) - Обзор продукта для клиента — Обзор для пользователя
- Справка API в браузере —
/api/docs/на работающем сервере