
# Konfiguracja

Rudel ma dwa rodzaje konfiguracji: ustawienia zapisane w opcji `rudel_config` WordPress oraz stałe definiowane w `wp-config.php`.

## Opcja `rudel_config`

Ustawienia znajdują się w jednej tablicy w `wp_options` pod `rudel_config`. Dopóki nic nie zapisze tej opcji, każdy klucz przyjmuje wartość domyślną. Nieznane klucze są ignorowane, a wartości zapisywane jako liczby całkowite.

| Klucz | Domyślnie | Znaczenie |
|-----|---------|---------|
| `max_sandboxes` | `0` | Odmowa utworzenia piaskownicy po osiągnięciu tej liczby. `0` oznacza brak limitu. |
| `max_disk_mb` | `0` | Odmowa utworzenia piaskownicy po przekroczeniu tej liczby megabajtów przez katalogi piaskownic. Sklonowane tabele nie są wliczane. `0` oznacza brak limitu. |
| `default_ttl_days` | `0` | Termin wygaśnięcia nowych piaskownic tworzonych bez `ttl_days` lub `expires_at`. `0` oznacza brak terminu wygaśnięcia. |
| `max_age_days` | `0` | Czyszczenie usuwa piaskownice starsze niż ten okres. `0` wyłącza regułę wieku. |
| `max_idle_days` | `0` | Czyszczenie usuwa piaskownice bez zarejestrowanej aktywności (żądania dotyczącego piaskownicy lub zrzutu) przez ten okres. `0` wyłącza regułę bezczynności. |
| `auto_cleanup_enabled` | `1` | Uruchamiaj co godzinę zasady czyszczenia z WP-Cron. |
| `auto_cleanup_merged` | `0` | Uruchamiaj również czyszczenie scalonych gałęzi z WP-Cron. |
| `expiring_environment_notice_days` | `0` | Przy każdym uruchomieniu automatyzacji zbieraj piaskownice, których termin wygaśnięcia przypada w ciągu tej liczby dni, i przekazuj je do działania `rudel_after_automation_expiring_environments`. |
| `auto_snapshot_before_restore` | `1` | Zapisuj zrzut `pre-restore-...` przed każdym przywróceniem. |

`wp rudel status` wyświetla bieżące wartości.

Zapisz opcję za pomocą WP-CLI. Pominięte klucze zachowują wartości domyślne:

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

Lub z poziomu PHP:

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

Zdarzenie WP-Cron zostanie zaplanowane lub usunięte przy następnym żądaniu po zmianie. Zobacz [Automatyzacja](https://rudel.inline0.dev/pl/docs/features/automation).

## Stałe

Zdefiniuj je w `wp-config.php` przed wierszem inicjalizacyjnym Rudel.

| Stała | Domyślnie | Znaczenie |
|----------|---------|---------|
| `RUDEL_CLI_COMMAND` | `rudel` | Nazwa głównego polecenia WP-CLI. |
| `RUDEL_ENVIRONMENTS_DIR` | `wp-content/rudel-environments` | Katalog przechowujący katalogi piaskownic. Zasoby motywu są zawsze udostępniane z `/wp-content/rudel-environments/{id}/themes`, więc inny katalog musi być nadal dostępny pod tą URL. |
| `RUDEL_RUNTIME_TABLE_PREFIX` | `rudel_` | Część nazw tabel Rudel po prefiksie WordPress. Zobacz [Stan środowiska uruchomieniowego](https://rudel.inline0.dev/pl/docs/features/runtime-state). |
| `RUDEL_RUNTIME_TABLE_ENVIRONMENTS` | | Pełna nazwa tabeli środowisk, po prefiksie WordPress. |
| `RUDEL_RUNTIME_TABLE_WORKTREES` | | Pełna nazwa tabeli drzew roboczych, po prefiksie WordPress. |
| `RUDEL_DB_DRIVER` | `auto` | Sterownik dostępu do samodzielnego `Rudel\Connection`: `auto`, `mysqli` lub `pdo`. Żądania WordPress zawsze używają `$wpdb`. |
| `RUDEL_GIT_AUTHOR_NAME` | `Rudel` | Nazwa autora Rudel zapisuje w konfiguracji Git katalogu roboczego, gdy nie ma tam `user.name`; używana przy zatwierdzeniach `wp rudel push`. |
| `RUDEL_GIT_AUTHOR_EMAIL` | `rudel@localhost` | Adres e-mail autora Rudel zapisywany, gdy w katalogu roboczym brakuje `user.email`. |

## Stałe w żądaniu dotyczącym piaskownicy

Gdy żądanie wybiera piaskownicę, skrypt inicjalizacyjny definiuje stałe, które może odczytać kod. Najprzydatniejsze z nich to:

| Stała | Wartość |
|----------|-------|
| `RUDEL_ID` | identyfikator piaskownicy |
| `RUDEL_PATH` | katalog piaskownicy |
| `RUDEL_TABLE_PREFIX` | prefiks tabel piaskownicy |
| `RUDEL_THEME_SLUG` | motyw udostępniany z piaskownicy |
| `RUDEL_HOST_URL`, `RUDEL_ENVIRONMENT_URL` | adresy URL hosta i piaskownicy |
| `RUDEL_DISABLE_EMAIL` | `true`; poczta wychodząca jest blokowana |

Preferuj metody [API](https://rudel.inline0.dev/pl/docs/api), takie jak `Rudel::id()`, zamiast bezpośredniego odczytywania stałych.

Skrypt inicjalizacyjny definiuje również `WP_DEBUG`, `WP_DEBUG_LOG`, `WP_DEBUG_DISPLAY`, `WP_TEMP_DIR`, `WP_CACHE_KEY_SALT` oraz osiem kluczy uwierzytelniania i soli, ale tylko te, których `wp-config.php` jeszcze nie zdefiniował. Zobacz [Rejestrowanie błędów](https://rudel.inline0.dev/pl/docs/features/logging) i [Izolacja](https://rudel.inline0.dev/pl/docs/environments/isolation).
