
# Конфігурація

Rudel має два типи конфігурації: налаштування, що зберігаються в параметрі `rudel_config` WordPress, і константи, які ви визначаєте в `wp-config.php`.

## Параметр `rudel_config`

Налаштування зберігаються в одному масиві в `wp_options` під ключем `rudel_config`. Поки параметр не записано, для кожного ключа використовується типове значення. Невідомі ключі ігноруються, а значення зберігаються як цілі числа.

| Ключ | Типове значення | Значення |
|-----|---------|---------|
| `max_sandboxes` | `0` | Відмовити у створенні ізольованого середовища, якщо їхня кількість досягне цього значення. `0` означає відсутність обмеження. |
| `max_disk_mb` | `0` | Відмовити у створенні ізольованого середовища, якщо розмір його каталогів у мегабайтах досягне цього значення. Клоновані таблиці не враховуються. `0` означає відсутність обмеження. |
| `default_ttl_days` | `0` | Термін дії для нових ізольованих середовищ, створених без `ttl_days` або `expires_at`. `0` означає, що термін дії не обмежено. |
| `max_age_days` | `0` | Очищення видаляє ізольовані середовища, старші за це значення. `0` вимикає обмеження за віком. |
| `max_idle_days` | `0` | Очищення видаляє ізольовані середовища, у яких протягом цього часу не було зафіксовано активності (запиту середовища або знімка). `0` вимикає обмеження часу бездіяльності. |
| `auto_cleanup_enabled` | `1` | Щогодини застосовувати політику очищення з WP-Cron. |
| `auto_cleanup_merged` | `0` | Також виконувати очищення з WP-Cron для об’єднаних гілок. |
| `expiring_environment_notice_days` | `0` | Під час кожного запуску автоматизації збирати ізольовані середовища, термін дії яких завершується протягом цієї кількості днів, і передавати їх дії `rudel_after_automation_expiring_environments`. |
| `auto_snapshot_before_restore` | `1` | Зберігати знімок `pre-restore-...` перед кожним відновленням. |

`wp rudel status` виводить поточні значення.

Запишіть параметр за допомогою WP-CLI. Для пропущених ключів залишаються типові значення:

```bash
wp option update rudel_config '{"max_age_days":14,"max_idle_days":3,"auto_cleanup_merged":1}' --format=json
```

Або з PHP:

```php
$config = new Rudel\RudelConfig();
$config->set( 'max_sandboxes', 20 );
$config->save();
```

Подію WP-Cron буде заплановано або скасовано під час наступного запиту після зміни. Див. [Автоматизація](https://rudel.inline0.dev/uk/docs/features/automation).

## Константи

Визначте ці параметри в `wp-config.php` перед рядком завантаження Rudel.

| Константа | Типове значення | Значення |
|----------|---------|---------|
| `RUDEL_CLI_COMMAND` | `rudel` | Назва кореневої команди WP-CLI. |
| `RUDEL_ENVIRONMENTS_DIR` | `wp-content/rudel-environments` | Каталог для каталогів ізольованих середовищ. Файли тем завжди обслуговуються з `/wp-content/rudel-environments/{id}/themes`, тому інший каталог також має бути доступним за цією URL. |
| `RUDEL_RUNTIME_TABLE_PREFIX` | `rudel_` | Частина назв таблиць Rudel після префікса WordPress. Див. [Стан виконання](https://rudel.inline0.dev/uk/docs/features/runtime-state). |
| `RUDEL_RUNTIME_TABLE_ENVIRONMENTS` | | Повна назва таблиці середовищ, що перевизначає типову, після префікса WordPress. |
| `RUDEL_RUNTIME_TABLE_WORKTREES` | | Повна назва таблиці робочих дерев, що перевизначає типову, після префікса WordPress. |
| `RUDEL_DB_DRIVER` | `auto` | Драйвер для автономного доступу до `Rudel\Connection`: `auto`, `mysqli` або `pdo`. Запити WordPress завжди використовують `$wpdb`. |
| `RUDEL_GIT_AUTHOR_NAME` | `Rudel` | Ім’я автора, яке Rudel записує в конфігурацію Git checkout, якщо там немає `user.name`; використовується для комітів `wp rudel push`. |
| `RUDEL_GIT_AUTHOR_EMAIL` | `rudel@localhost` | Адреса електронної пошти автора, яку Rudel записує, якщо в checkout немає `user.email`. |

## Константи в запиті ізольованого середовища

Коли запит вибирає ізольоване середовище, початкове налаштування визначає константи, які може читати код. Найкорисніші з них:

| Константа | Значення |
|----------|-------|
| `RUDEL_ID` | ID ізольованого середовища |
| `RUDEL_PATH` | каталог ізольованого середовища |
| `RUDEL_TABLE_PREFIX` | префікс таблиць ізольованого середовища |
| `RUDEL_THEME_SLUG` | тема, що обслуговується з ізольованого середовища |
| `RUDEL_HOST_URL`, `RUDEL_ENVIRONMENT_URL` | URL хоста й ізольованого середовища |
| `RUDEL_DISABLE_EMAIL` | `true`; вихідну пошту заблоковано |

Надавайте перевагу методам [API](https://rudel.inline0.dev/uk/docs/api), як-от `Rudel::id()`, замість прямого читання констант.

Початкове налаштування також визначає `WP_DEBUG`, `WP_DEBUG_LOG`, `WP_DEBUG_DISPLAY`, `WP_TEMP_DIR`, `WP_CACHE_KEY_SALT` і вісім ключів та солей автентифікації, але лише ті, які `wp-config.php` ще не визначив. Див. [Журналювання помилок](https://rudel.inline0.dev/uk/docs/features/logging) та [Ізоляція](https://rudel.inline0.dev/uk/docs/environments/isolation).
