Admingen — Headless CMS генератор. В Generator UI вы описываете приложение и видите будущие изменения файлов. Созданное приложение работает самостоятельно: у него собственные зависимости, PostgreSQL и система администрирования. Для обслуживания запросов генератор ему не нужен.
Как модель превращается в код
manifest → нормализация → план → шаблоны → diff → запись файлов
Каждый этап отвечает на свой вопрос:
- Манифест задаёт желаемую структуру приложения.
- Нормализация проверяет типы, ссылки и операции, добавляет допустимые значения по умолчанию.
- План определяет, какие изменения нужны.
- Шаблоны формируют ожидаемое содержимое файлов.
- Diff показывает отличие от текущих файлов.
- Запись применяет изменения с учётом владельца файла и сохранённых хешей.
Так ошибку модели можно обнаружить до записи исходников. Сохранение формы Generator UI меняет описание проекта, но не обновляет его БД.
Из каких слоёв состоит генератор
| Слой | За что отвечает |
|---|---|
| Domain | Модель, правила и преобразования без зависимости от HTTP и файловой системы. |
| App | Сценарии работы: загрузка, проверка изменения, план и генерация. |
| Adapters | HTTP для Generator UI и CLI для работы из терминала. |
| Infrastructure | YAML, файловая система, шаблоны и сравнение файлов. |
| Cmd | Сборка зависимостей и запуск исполняемого файла. |
UI и CLI обращаются к одной прикладной логике. Сохранение через Finish и соответствующая команда используют одни правила модели.
Как организовано созданное приложение
В Go backend выделены domain, app, HTTP- и PostgreSQL-адаптеры. SQL-запросы и ограничения БД описаны явно. История миграций пополняется новыми файлами: уже выпущенные миграции не переписываются.
Система администрирования использует React, TypeScript и MUI, общий слой запросов и сессии. Модули группируют сущности внутри монолитного приложения. Создание модуля не выделяет отдельный микросервис: модель данных, сборка и выпуск остаются согласованными для приложения.
Как генерация работает вместе с custom
Вы можете одновременно развивать модель через UI и писать собственную логику. Типовой код обновляется при Generate, а custom-зоны подключаются через явные точки расширения: обработчики операций, композицию зависимостей и дополнения интерфейса. Генератору не нужно искать и заменять фрагменты внутри ваших файлов.
Точечное расширение списка или поля сохраняет обновление стандартной части интерфейса. При полной замене страницы вы берёте на себя её загрузку данных, проверки прав, ошибки и доступность. Варианты описаны в руководстве по расширениям.
Какие технологии используются
Go и chi отвечают за HTTP-маршруты, pgx — за работу с PostgreSQL. ORM не скрывает SQL и изменение схемы. React и TypeScript описывают интерфейс и данные, MUI предоставляет компоненты, библиотека запросов управляет загрузкой и повторным чтением, Vite — разработкой и сборкой.
Точные версии смотрите в go.mod и package.json своего выпуска. Шаблоны входят в бинарник генератора; admingen дополнительно содержит собранный UI. Модель и история самого генератора хранятся в файлах проекта. PostgreSQL принадлежит созданному приложению, а не центральному сервису генератора.
С чего начать знакомство
Для первого приложения откройте быстрый старт и обзор Generator UI. Как эти части используются вместе, показывает интеграция сайта Admingen.