
# Konfigurácia

Rudel má dva druhy konfigurácie: nastavenia uložené v možnosti `rudel_config` WordPress a konštanty, ktoré definujete v `wp-config.php`.

## Možnosť `rudel_config`

Nastavenia sa nachádzajú v jednom poli v `wp_options` pod kľúčom `rudel_config`. Kým niečo túto možnosť nezapíše, každý kľúč používa predvolenú hodnotu. Neznáme kľúče sa ignorujú a hodnoty sa ukladajú ako celé čísla.

| Kľúč | Predvolené | Význam |
|-----|---------|---------|
| `max_sandboxes` | `0` | Odmietne vytvoriť sandbox, keď ich počet dosiahne túto hodnotu. `0` znamená bez limitu. |
| `max_disk_mb` | `0` | Odmietne vytvoriť sandbox, keď veľkosť adresárov sandboxov dosiahne tento počet megabajtov. Naklonované tabuľky sa nezapočítavajú. `0` znamená bez limitu. |
| `default_ttl_days` | `0` | Čas vypršania platnosti nových sandboxov vytvorených bez `ttl_days` alebo `expires_at`. `0` znamená, že platnosť nevyprší. |
| `max_age_days` | `0` | Čistenie odstráni sandboxy staršie než táto hodnota. `0` vypne vekové pravidlo. |
| `max_idle_days` | `0` | Čistenie odstráni sandboxy bez zaznamenanej aktivity (požiadavky sandboxu alebo snímky) počas tejto doby. `0` vypne pravidlo nečinnosti. |
| `auto_cleanup_enabled` | `1` | Každú hodinu spustí politiku čistenia z WP-Cron. |
| `auto_cleanup_merged` | `0` | Spustí aj čistenie zlúčených vetiev z WP-Cron. |
| `expiring_environment_notice_days` | `0` | Pri každom spustení automatizácie zhromaždí sandboxy, ktorým vyprší platnosť do toľkých dní, a odovzdá ich akcii `rudel_after_automation_expiring_environments`. |
| `auto_snapshot_before_restore` | `1` | Pred každým obnovením uloží snímku `pre-restore-...`. |

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

Zapíšte možnosť pomocou WP-CLI. Neuvedené kľúče si zachovajú predvolené hodnoty:

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

Alebo z PHP:

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

Udalosť WP-Cron sa naplánuje alebo odstráni pri nasledujúcej požiadavke po zmene. Pozrite si časť [Automatizácia](https://rudel.inline0.dev/sk/docs/features/automation).

## Konštanty

Definujte ich v `wp-config.php` nad inicializačným riadkom Rudel.

| Konštanta | Predvolené | Význam |
|----------|---------|---------|
| `RUDEL_CLI_COMMAND` | `rudel` | Názov koreňového príkazu WP-CLI. |
| `RUDEL_ENVIRONMENTS_DIR` | `wp-content/rudel-environments` | Adresár, v ktorom sa nachádzajú adresáre sandboxov. Súbory témy sa vždy poskytujú z `/wp-content/rudel-environments/{id}/themes`, preto musí byť aj iný adresár dostupný pod týmto URL. |
| `RUDEL_RUNTIME_TABLE_PREFIX` | `rudel_` | Časť názvov tabuliek Rudel za prefixom WordPress. Pozrite si časť [Stav za behu](https://rudel.inline0.dev/sk/docs/features/runtime-state). |
| `RUDEL_RUNTIME_TABLE_ENVIRONMENTS` | | Úplné vlastné pomenovanie tabuľky prostredí za prefixom WordPress. |
| `RUDEL_RUNTIME_TABLE_WORKTREES` | | Úplné vlastné pomenovanie tabuľky pracovných stromov za prefixom WordPress. |
| `RUDEL_DB_DRIVER` | `auto` | Ovládač samostatného prístupu `Rudel\Connection`: `auto`, `mysqli` alebo `pdo`. Požiadavky WordPress vždy používajú `$wpdb`. |
| `RUDEL_GIT_AUTHOR_NAME` | `Rudel` | Meno autora, ktoré Rudel zapíše do konfigurácie Git checkoutu, ak neobsahuje `user.name`; používa sa pre commity `wp rudel push`. |
| `RUDEL_GIT_AUTHOR_EMAIL` | `rudel@localhost` | E-mail autora, ktorý Rudel zapíše, ak checkout neobsahuje `user.email`. |

## Konštanty v požiadavke sandboxu

Keď požiadavka vyberie sandbox, inicializačný kód definuje konštanty, ktoré môže kód čítať. Najužitočnejšie sú:

| Konštanta | Hodnota |
|----------|-------|
| `RUDEL_ID` | ID sandboxu |
| `RUDEL_PATH` | adresár sandboxu |
| `RUDEL_TABLE_PREFIX` | prefix tabuliek sandboxu |
| `RUDEL_THEME_SLUG` | téma poskytovaná zo sandboxu |
| `RUDEL_HOST_URL`, `RUDEL_ENVIRONMENT_URL` | adresy URL hostiteľského prostredia a sandboxu |
| `RUDEL_DISABLE_EMAIL` | `true`; odchádzajúca pošta je blokovaná |

Uprednostnite metódy [API](https://rudel.inline0.dev/sk/docs/api), napríklad `Rudel::id()`, pred priamym čítaním konštánt.

Inicializačný kód tiež definuje `WP_DEBUG`, `WP_DEBUG_LOG`, `WP_DEBUG_DISPLAY`, `WP_TEMP_DIR`, `WP_CACHE_KEY_SALT` a osem autentifikačných kľúčov a solí, ale iba tie, ktoré `wp-config.php` ešte nedefinoval. Pozrite si časti [Zaznamenávanie chýb](https://rudel.inline0.dev/sk/docs/features/logging) a [Izolácia](https://rudel.inline0.dev/sk/docs/environments/isolation).
