
# Створення

## Створення з хоста

```bash
wp rudel create --name=alpha --theme=twentytwentyfour
```

Rudel генерує ID з назви та чотирьох шістнадцяткових символів (наприклад, `alpha-3be7`), клонує таблиці хоста WordPress у згенерований префікс таблиць, копіює вибрану тему до каталогу ізольованого середовища та реєструє його в базі даних хоста WordPress. Значення `siteurl` і `home` середовища зберігають URL хоста.

Якщо `--theme` не вказано, Rudel використовує активну тему сайту хоста. Тему має бути встановлено на хості. Разом із дочірньою темою копіюється її батьківська тема.

Копіюється кожна таблиця з префіксом таблиць хоста, зокрема `users` і `usermeta`, крім власних таблиць Rudel. У поточному випуску сюди також входять таблиці вже наявних ізольованих середовищ, тож кожне нове середовище більше за попереднє. Див. [проблему № 3](https://github.com/inline0/rudel/issues/3).

## Створення з іншого ізольованого середовища

```bash
wp rudel create --name=feature-b --clone-from=alpha-3be7
```

Нове ізольоване середовище отримує копії всіх таблиць із префіксом вихідного середовища, включно з таблицями його знімків, а також його тему. Каталоги знімків не копіюються, тому ці таблиці в новому середовищі не використовуються ([проблема № 12](https://github.com/inline0/rudel/issues/12)). Якщо каталог теми джерела є репозиторієм Git, Rudel створює пов’язане робоче дерево у гілці `rudel/{new-id}` замість звичайної копії. ID джерела записується в новий запис.

## Метадані життєвого циклу

Ізольовані середовища можуть містити метадані для очищення та визначення власника:

```bash
wp rudel create \
  --name=feature-a \
  --owner=dennis \
  --labels=agent,qa \
  --purpose="Test checkout changes" \
  --ttl-days=7
```

Використовуйте `--protected`, якщо автоматичне очищення не має видаляти ізольоване середовище. Див. [Політика](https://rudel.inline0.dev/uk/docs/features/policy).

## Обмеження

Створення не вдасться, якщо буде досягнуто налаштування `max_sandboxes` або `max_disk_mb`. Типове значення обох — `0`, що означає відсутність обмеження. Див. [Конфігурація](https://rudel.inline0.dev/uk/docs/configuration).

## Checkout Git

```bash
wp rudel create --name=feature-a --git=https://example.test/my-theme.git
```

Rudel створює ізольоване середовище, клонує віддалений репозиторій у `themes/my-theme` в його каталозі та перемикає checkout на гілку `rudel/{id}`. Додайте `--type=plugin`, щоб клонувати натомість у `plugins/my-theme`. Якщо клонування не вдасться, середовище залишиться, а команда виведе попередження. Див. [GitДокументацію](https://rudel.inline0.dev/uk/docs/features/git) про те, що середовище обслуговує з цього checkout.

## Структура каталогів

```text
wp-content/rudel-environments/{id}/
  themes/       copied theme, plus any Git checkout
  snapshots/    snapshot metadata and theme copies
  logs/ metadata/ tmp/
  wp-cli.yml
  debug.log     when debug logging is active
```
