Окружение — отдельный запуск приложения со своей БД, файлами и адресами. Например, local работает на вашем компьютере, а production — на VPS. Имя выбираете вы: --env production обращается к профилю с именем production, а не включает особый встроенный режим.
Где настраивать
В Generator UI откройте Deployment. Включите Docker и Production deployment, затем найдите Deployment environments. Домены, каталог данных, серверы, способ доставки и backup вводятся здесь. После Save deployment settings и Generate контроллер получит готовые настройки.
| Что меняете | Где это делать |
|---|---|
| Сущности, поля, связи и доступ | В интерфейсе генератора |
| Параметры конкретного запуска | Deployment → Deployment environments |
| Отдельные параметры вручную | deploy/custom/environments/<имя>.json |
| Пароли и токены сервисов | В отдельном файле секретов вне Git |
| Работающую версию приложения | Командами deploy/control |
Save deployment settings сохраняет модель проекта. Generate создаёт или обновляет файлы приложения. Ни одно из этих действий не запускает команды на VPS.
Как настройки попадают в control
Для профиля production генератор создаёт:
deploy/generated/environments/production.json— полный набор настроек из UI. Этот файл обновляет Generate;deploy/custom/environments/production.json— первоначально{}. Здесь можно переопределить отдельные значения; последующая генерация сохраняет ваши изменения;deploy/custom/environments/README.md— правила редактирования custom-файлов.
Ничего копировать в deploy/environments/ для нового профиля не нужно. Примеры в deploy/generated/examples/ остаются справочником, а не обязательным шагом запуска.
Когда нужен custom
Например, кроме системы администрирования API будет вызывать отдельный сайт. Добавьте его адрес в Allowed HTTPS origins в UI. Если это удобнее хранить отдельной ручной настройкой, откройте deploy/custom/environments/production.json и запишите:
{
"allowedOrigins": [
"https://admin.example.com",
"https://app.example.com"
]
}
Это полное содержимое custom-файла, а не полная конфигурация окружения. Замените домены своими. Остальные настройки возьмутся из UI. Массив заменяется целиком, поэтому в примере оставлен и адрес админки. Вложенные объекты объединяются по полям; обычное значение заменяется; null удаляет поле. Произвольные параметры добавлять нельзя, а project, schemaVersion и environment менять через custom запрещено.
Чтобы отменить ручные переопределения, верните {}. JSON не поддерживает комментарии; пояснения пишите в соседнем README. После изменения только custom повторять Generate не нужно: control читает файл при запуске команды.
Приоритет файлов и старые настройки
Если существует deploy/environments/production.json, control использует его целиком. Настройки UI и custom для этого имени не применяются. Это ручной режим, оставленный для самостоятельного управления полным JSON.
Для перехода с ручного файла на UI:
- В Deployment environments укажите его имя и нажмите Import manual JSON.
- Проверьте импортированные значения, сохраните проект и выполните Generate.
- Перенесите прежний
deploy/environments/production.jsonза пределы этой папки, сохранив его копию. - Откройте Preview effective JSON: источник должен быть Generated или Custom, а не Manual.
Предпросмотр показывает текущий черновик с учётом файлов. Перед запуском команд сохраните настройки и выполните Generate.
Изменения после первого выпуска
Изменение настроек не переносит БД, не меняет автоматически домен и не переезжает на другой VPS. Для поддерживаемой смены доставки, registry или backup предусмотрен reconfigure. Перенос данных описан отдельно.
Адаптер изображений — Local или S3 — выбирается для проекта в целом. Профиль задаёт каталог либо параметры S3, но не переключает адаптер независимо от остальных окружений. CI provider тоже общий для проекта.