init создаёт описание нового проекта в выбранном каталоге. Приложение при этом не запускается, серверы для production не настраиваются. После init можно описывать модель в UI или CLI, а исходники получить позже через Generate.
Создание проекта без диалога
admingen-cli --path ./docs-demo init \
--name docs-demo --title "База знаний" \
--module example.com/docs-demo --generator-version 0.8.1 \
--deployment --ci-provider gitlab --media-storage local
В примере включены deployment и GitLab CI: соответствующие файлы появятся после Generate. Для простого локального проекта эти параметры можно опустить. Выбор s3 вместо local задаёт тип медиахранилища; секреты доступа на этом этапе не передаются.
В интерактивном режиме init предлагает значения и запрашивает подтверждение. В скрипте передавайте необходимые параметры явно и останавливайте дальнейшие действия при ошибке. Без TTY команда не должна ждать бесконечного ответа.
Не путайте два вида модуля: example.com/docs-demo — путь Go-модуля всего приложения, а content — группа сущностей в меню, которую вы создадите отдельно.
Открытие проекта в браузере
admingen-cli --path ./docs-demo doctor
admingen --path ./docs-demo start --addr 127.0.0.1:8080 --open=false
doctor помогает проверить, что выбран правильный каталог. С --open=false браузер нужно открыть самостоятельно по адресу из команды или вывода. Для локального API без встроенной страницы используйте admingen-cli ... serve.
Если порт занят, остановите прежний процесс или укажите другой порт. Это порт генератора, а не backend созданного приложения.
Изменения Project settings и Deployment сохраняют настройки в манифесте. Выбор CI-провайдера не создаёт удалённый репозиторий. Файлы обновляются только при Generate. Старый контракт проекта отклоняется до изменений; замена одного номера версии не обновляет проект.
Доступные команды
| Команда | Вызов |
|---|---|
doctor |
admingen-cli doctor [flags] |
init |
admingen-cli init [flags] |
serve |
admingen-cli serve [flags] |
start |
admingen start [flags] |
ui |
admingen ui [flags] |
Общие --path, --output и --help описаны в основах CLI. Аргументы в угловых скобках заменяйте своими значениями.
Параметры init и запуска
| Параметр | Где применяется | По умолчанию | Смысл |
|---|---|---|---|
--ci-provider VALUE |
init |
пустая строка | Выбор CI: none, gitlab или github. None оставляет ручной выпуск через deploy/control. |
--deployment |
init |
false | Включить файлы серверного развёртывания; CI-файлы создаются только для выбранного GitLab/GitHub. |
--generator-version VALUE |
init |
версия сборки бинарника (dev в сборке без заданной версии) |
Значение generatorVersion в manifest. В примере задаётся 0.8.1; это не команда обновления старого контракта. |
--media-storage VALUE |
init |
"local" | Место хранения изображений: local — файловая система приложения, s3 — объектное хранилище. Ключи доступа настраиваются при запуске приложения. |
--module VALUE |
init |
пустая строка | Для init — путь Go-модуля; для сущности/проекции — существующий модуль навигации. В update означает перенос. |
--name VALUE |
init |
пустая строка | Техническое имя нового проекта. |
--title VALUE |
init |
пустая строка | Читаемое название проекта или поля. |
--addr VALUE |
serve, start, ui |
"127.0.0.1:8080" | Адрес и порт локального HTTP-сервера. |
--open |
start, ui |
true | Открыть браузер после готовности сервера. |
Для новых команд используйте start: ui оставлен как устаревший совместимый alias. start принимает loopback-адрес. Чтобы запуск не запрашивал уточнений, явно передайте --path, --addr и --open, как в примере.
Что init делает с Git
После успешного создания модели генератор проверяет, находится ли каталог в Git-репозитории. Если да, вложенный репозиторий не создаётся. Если нет, выполняется git init.
Ошибка Git выводится предупреждением и не отменяет созданный манифест. Генератор не добавляет файлы в staging, не создаёт commit и не настраивает remote.
Текущий контракт проекта и lock — 0.8.1. --generator-version записывает версию в модель и не переносит старый контракт. Последующие настройки меняйте в Project settings или в манифесте с проверкой через plan.
Deployment без обязательного CI и registry
Для ручной сборки на одном VPS можно создать проект так:
admingen-cli --path ./example-project init --name example_project --module example.com/example-project --deployment --ci-provider none --server-layout single --delivery source --backup local --media-storage local
| Параметр init | Значения |
|---|---|
--server-layout |
single, split |
--delivery |
source, archive, registry |
--backup |
none, local, s3 |
--registry-provider |
custom, gitlab, ghcr, dockerhub |
--backend-repository, --admin-repository, --ops-repository |
Полные репозитории трёх образов на одном registry-хосте |
Source допускается для single и CI provider none. Archive/registry поддерживают single/split и ручной выпуск либо CI. Пароли, SSH-ключи и параметры доступа к S3 через init не передаются. После init откройте Deployment → Deployment environments, создайте профиль с доменами и путями, сохраните и выполните Generate. Примеры JSON остаются альтернативой для ручного управления конфигурацией. Наличие файлов ещё не означает, что приложение развёрнуто.