
# Konfigurace

Rudel má dva druhy konfigurace: nastavení uložená ve volbě WordPress `rudel_config` a konstanty definované v `wp-config.php`.

## Volba `rudel_config`

Nastavení jsou uložena v jednom poli v `wp_options` pod klíčem `rudel_config`. Dokud volbu nic nezapíše, každý klíč používá svou výchozí hodnotu. Neznámé klíče se ignorují a hodnoty se ukládají jako celá čísla.

| Klíč | Výchozí hodnota | Význam |
|-----|---------|---------|
| `max_sandboxes` | `0` | Pokud existuje tento počet sandboxů, odmítne vytvořit další. `0` znamená bez limitu. |
| `max_disk_mb` | `0` | Pokud adresáře sandboxů zabírají tento počet megabajtů, odmítne vytvořit další sandbox. Naklonované tabulky se nezapočítávají. `0` znamená bez limitu. |
| `default_ttl_days` | `0` | Platnost pro nové sandboxy vytvořené bez `ttl_days` nebo `expires_at`. `0` znamená bez vypršení platnosti. |
| `max_age_days` | `0` | Čištění odstraní sandboxy starší než tato hodnota. `0` vypne pravidlo stáří. |
| `max_idle_days` | `0` | Čištění odstraní sandboxy bez zaznamenané aktivity (požadavku sandboxu nebo snímku) po tuto dobu. `0` vypne pravidlo nečinnosti. |
| `auto_cleanup_enabled` | `1` | Každou hodinu spustí pravidla čištění z WP-Cron. |
| `auto_cleanup_merged` | `0` | Spustí také čištění sloučených větví z WP-Cron. |
| `expiring_environment_notice_days` | `0` | Při každém běhu automatizace shromáždí sandboxy, jejichž platnost vyprší během tohoto počtu dnů, a předá je akci `rudel_after_automation_expiring_environments`. |
| `auto_snapshot_before_restore` | `1` | Před každým obnovením uloží snímek `pre-restore-...`. |

`wp rudel status` vypíše aktuální hodnoty.

Volbu zapište pomocí WP-CLI. Vynechané klíče si zachovají výchozí hodnoty:

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

Nebo z PHP:

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

Událost WP-Cron se po změně naplánuje nebo odstraní při následujícím požadavku. Viz [Automatizace](https://rudel.inline0.dev/cs/docs/features/automation).

## Konstanty

Definujte je v `wp-config.php` před řádkem bootstrapu Rudel.

| Konstanta | Výchozí hodnota | Význam |
|----------|---------|---------|
| `RUDEL_CLI_COMMAND` | `rudel` | Název kořenového příkazu WP-CLI. |
| `RUDEL_ENVIRONMENTS_DIR` | `wp-content/rudel-environments` | Adresář, ve kterém jsou uloženy adresáře sandboxů. Prostředky šablony se vždy obsluhují z `/wp-content/rudel-environments/{id}/themes`, takže jiný adresář musí být na tomto URL stále dostupný. |
| `RUDEL_RUNTIME_TABLE_PREFIX` | `rudel_` | Část názvů tabulek Rudel za prefixem WordPress. Viz [Stav běhu](https://rudel.inline0.dev/cs/docs/features/runtime-state). |
| `RUDEL_RUNTIME_TABLE_ENVIRONMENTS` | | Úplné přepsání názvu tabulky prostředí za prefixem WordPress. |
| `RUDEL_RUNTIME_TABLE_WORKTREES` | | Úplné přepsání názvu tabulky pracovních stromů za prefixem WordPress. |
| `RUDEL_DB_DRIVER` | `auto` | Ovladač pro samostatný přístup `Rudel\Connection`: `auto`, `mysqli` nebo `pdo`. Požadavky WordPress vždy používají `$wpdb`. |
| `RUDEL_GIT_AUTHOR_NAME` | `Rudel` | Jméno autora, které Rudel zapisuje do konfigurace Git checkoutu, pokud neobsahuje `user.name`; používá se pro commity `wp rudel push`. |
| `RUDEL_GIT_AUTHOR_EMAIL` | `rudel@localhost` | E-mail autora, který Rudel zapíše, pokud checkout neobsahuje `user.email`. |

## Konstanty uvnitř požadavku sandboxu

Když požadavek vybere sandbox, bootstrap definuje konstanty, které může kód číst. Nejužitečnější jsou:

| Konstanta | Hodnota |
|----------|-------|
| `RUDEL_ID` | ID sandboxu |
| `RUDEL_PATH` | adresář sandboxu |
| `RUDEL_TABLE_PREFIX` | prefix tabulek sandboxu |
| `RUDEL_THEME_SLUG` | šablona obsluhovaná ze sandboxu |
| `RUDEL_HOST_URL`, `RUDEL_ENVIRONMENT_URL` | adresy URL hostitele a sandboxu |
| `RUDEL_DISABLE_EMAIL` | `true`; odchozí pošta je blokována |

Dávejte přednost metodám [API](https://rudel.inline0.dev/cs/docs/api)], například `Rudel::id()`, před přímým čtením konstant.

Bootstrap také definuje `WP_DEBUG`, `WP_DEBUG_LOG`, `WP_DEBUG_DISPLAY`, `WP_TEMP_DIR`, `WP_CACHE_KEY_SALT` a osm autentizačních klíčů a solí, ale pouze ty, které ještě nedefinoval `wp-config.php`. Viz [Zaznamenávání chyb](https://rudel.inline0.dev/cs/docs/features/logging) a [Izolace](https://rudel.inline0.dev/cs/docs/environments/isolation).
