Сайт ↗
Разделы документации
Эксплуатация · 0.8.1

Подготовка профиля и SSH перед выпуском

Заполните профиль в UI; для удалённой доставки отдельно настройте Docker и SSH на своём компьютере.

На этой странице

Для Source команды выпуска выполняются на VPS. Для Archive и Registry — на вашем компьютере с Docker. Команды bash ./deploy/control … всегда запускаются из корня сгенерированного проекта, где находятся backend/, admin/ и Makefile.

1. Создайте профиль в Generator UI

В Deployment включите Docker и Production deployment. Для ручного запуска выберите CI provider → None. В Deployment environments:

  1. В New profile name введите production.
  2. В New profile preset выберите Single server для одного VPS или Separate frontend / backend для двух.
  3. Нажмите Add profile и заполните появившиеся поля.
Поле UI Что вводить
Runtime directory Подготовленный каталог данных на VPS, например /srv/admingen/example_project/production
Admin domain admin.example.com, без https://
API domain api.example.com, без https://
TLS contact email Ваш действующий email для сертификатов
Image delivery Source, Archive или Registry по выбранной инструкции
Backend SSH target Для Archive/Registry: deploy@203.0.113.10, с IP вашего VPS
Frontend SSH target Для двух серверов: SSH-адрес frontend-VPS; для одного оставьте пустым
Backup destination None, Local directory или S3-compatible storage

Для Source адрес SSH не нужен: команда работает на самом сервере. Каталог Runtime directory относится к VPS даже тогда, когда вы заполняете форму на Mac. Подготовьте этот каталог по инструкции сервера.

В Advanced проверьте Allowed HTTPS origins: здесь должен быть адрес админки с https://. Остальные значения по умолчанию меняйте только если они нужны вашей сети. Для Registry дополнительно заполните три адреса репозиториев образов по инструкции Registry.

Для простого первого запуска без внешних сервисов используйте Local files в настройке Image storage проекта и None в Backup destination профиля. При этом автоматических резервных копий не будет. S3 и registry не требуются для Source/Archive.

Нажмите Save deployment settings, затем Generate. Созданные deploy/generated/environments/production.json и deploy/custom/environments/production.json уже готовы к использованию. Копировать пример JSON не нужно. Если раньше создавали ручной deploy/environments/production.json, перенесите его настройки в UI: иначе он продолжит иметь приоритет.

2. Только для Archive/Registry: подготовьте компьютер

Нужны Git, Bash, jq, OpenSSH, tar, работающий Docker с Compose v2 и Buildx. На Mac установите и запустите Docker Desktop; jq можно установить через Homebrew: brew install jq.

git --version
jq --version
docker version
docker compose version
docker buildx version

Docker client и daemon должны поддерживать API 1.49 или новее, а docker image inspect — параметр --platform. Образы собираются для linux/amd64; на Apple Silicon должна работать эмуляция этой архитектуры.

3. Только для Archive/Registry: настройте SSH один раз

На своём компьютере создайте отдельный ключ для выпуска:

mkdir -p "$HOME/.config/admingen/production"
chmod 700 "$HOME/.config/admingen/production"
export DEPLOY_SSH_KEY_FILE="$HOME/.config/admingen/production/id_ed25519"
export DEPLOY_KNOWN_HOSTS_FILE="$HOME/.config/admingen/production/known_hosts"
ssh-keygen -t ed25519 -f "$DEPLOY_SSH_KEY_FILE" -C admingen-production

Если ключ по этому пути уже есть, не создавайте его повторно. На вопрос о passphrase нажмите Enter: control подключается без интерактивного ввода. Покажите публичную часть:

cat "$DEPLOY_SSH_KEY_FILE.pub"

Скопируйте строку ssh-ed25519 …. На VPS под root откройте:

nano /home/deploy/.ssh/authorized_keys

Добавьте публичную строку, сохраните файл и выполните на VPS:

chown deploy:deploy /home/deploy/.ssh/authorized_keys
chmod 600 /home/deploy/.ssh/authorized_keys

Снова на своём компьютере подключитесь к VPS, заменив IP:

ssh -i "$DEPLOY_SSH_KEY_FILE" -o IdentitiesOnly=yes \
  -o "UserKnownHostsFile=$DEPLOY_KNOWN_HOSTS_FILE" \
  deploy@203.0.113.10 'docker info >/dev/null && docker compose version'
chmod 600 "$DEPLOY_SSH_KEY_FILE" "$DEPLOY_KNOWN_HOSTS_FILE"

При первом подключении SSH попросит подтвердить новый сервер. После подтверждения его ключ сохранится в known_hosts. Команда должна вывести версию Compose без запроса пароля пользователя. Для двух VPS повторите добавление публичного ключа и первое подключение для frontend-сервера.

В каждом новом терминале перед выпуском указывайте пути к уже существующим файлам:

export DEPLOY_SSH_KEY_FILE="$HOME/.config/admingen/production/id_ed25519"
export DEPLOY_KNOWN_HOSTS_FILE="$HOME/.config/admingen/production/known_hosts"

Ключ и known_hosts заново создавать не нужно. Продолжайте Source, Archive или Registry.