
# Konfiguration

Rudel hat zwei Arten von Konfiguration: Einstellungen, die in der Option `rudel_config` WordPress gespeichert sind, und Konstanten, die du in `wp-config.php` definierst.

## Die Option `rudel_config`

Die Einstellungen stehen in einem Array in `wp_options` unter `rudel_config`. Bis etwas in die Option schreibt, gilt für jeden Schlüssel der Standardwert. Unbekannte Schlüssel werden ignoriert und Werte als Ganzzahlen gespeichert.

| Schlüssel | Standardwert | Bedeutung |
|-----|---------|---------|
| `max_sandboxes` | `0` | Verweigert das Erstellen einer Sandbox, sobald diese Anzahl erreicht ist. `0` bedeutet unbegrenzt. |
| `max_disk_mb` | `0` | Verweigert das Erstellen einer Sandbox, sobald die Sandbox-Verzeichnisse diese Anzahl an Megabyte belegen. Geklonte Tabellen werden nicht mitgezählt. `0` bedeutet unbegrenzt. |
| `default_ttl_days` | `0` | Ablaufzeit für neue Sandboxes, die ohne `ttl_days` oder `expires_at` erstellt werden. `0` bedeutet, dass sie nicht ablaufen. |
| `max_age_days` | `0` | Die Bereinigung entfernt Sandboxes, die älter sind. `0` deaktiviert die Altersregel. |
| `max_idle_days` | `0` | Die Bereinigung entfernt Sandboxes, für die so lange keine Aktivität (eine Sandbox-Anfrage oder ein Snapshot) verzeichnet wurde. `0` deaktiviert die Inaktivitätsregel. |
| `auto_cleanup_enabled` | `1` | Führt die Bereinigungsrichtlinie stündlich über WP-Cron aus. |
| `auto_cleanup_merged` | `0` | Führt außerdem die Bereinigung zusammengeführter Branches über WP-Cron aus. |
| `expiring_environment_notice_days` | `0` | Erfasst bei jedem Automatisierungslauf Sandboxes, deren Ablauf innerhalb dieser Anzahl von Tagen liegt, und übergibt sie an die Aktion `rudel_after_automation_expiring_environments`. |
| `auto_snapshot_before_restore` | `1` | Erstellt vor jeder Wiederherstellung einen `pre-restore-...`-Snapshot. |

`wp rudel status` gibt die aktuellen Werte aus.

Schreibe die Option mit WP-CLI. Nicht angegebene Schlüssel behalten ihre Standardwerte:

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

Oder in PHP:

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

Das WP-Cron-Ereignis wird bei der nächsten Anfrage nach einer Änderung geplant oder entfernt. Siehe [Automatisierung](https://rudel.inline0.dev/de/docs/features/automation).

## Konstanten

Definiere diese in `wp-config.php` oberhalb der Bootstrap-Zeile Rudel.

| Konstante | Standardwert | Bedeutung |
|----------|---------|---------|
| `RUDEL_CLI_COMMAND` | `rudel` | Name des WP-CLI-Befehls auf oberster Ebene. |
| `RUDEL_ENVIRONMENTS_DIR` | `wp-content/rudel-environments` | Verzeichnis für Sandbox-Verzeichnisse. Theme-Dateien werden immer aus `/wp-content/rudel-environments/{id}/themes` bereitgestellt. Ein anderes Verzeichnis muss daher weiterhin unter dieser URL erreichbar sein. |
| `RUDEL_RUNTIME_TABLE_PREFIX` | `rudel_` | Teil der Rudel-Tabellennamen nach dem Präfix WordPress. Siehe [Laufzeitstatus](https://rudel.inline0.dev/de/docs/features/runtime-state). |
| `RUDEL_RUNTIME_TABLE_ENVIRONMENTS` | | Überschreibt den vollständigen Namen der Umgebungen-Tabelle nach dem Präfix WordPress. |
| `RUDEL_RUNTIME_TABLE_WORKTREES` | | Überschreibt den vollständigen Namen der Worktrees-Tabelle nach dem Präfix WordPress. |
| `RUDEL_DB_DRIVER` | `auto` | Treiber für den eigenständigen `Rudel\Connection`-Zugriff: `auto`, `mysqli` oder `pdo`. WordPress-Anfragen verwenden immer `$wpdb`. |
| `RUDEL_GIT_AUTHOR_NAME` | `Rudel` | Autorname, den Rudel in die Git-Konfiguration eines Checkouts schreibt, wenn kein `user.name` vorhanden ist; wird für `wp rudel push`-Commits verwendet. |
| `RUDEL_GIT_AUTHOR_EMAIL` | `rudel@localhost` | Autoren-E-Mail, die Rudel schreibt, wenn im Checkout kein `user.email` vorhanden ist. |

## Konstanten innerhalb einer Sandbox-Anfrage

Wenn eine Anfrage eine Sandbox auswählt, definiert der Bootstrap Konstanten, die Code auslesen kann. Die wichtigsten sind:

| Konstante | Wert |
|----------|-------|
| `RUDEL_ID` | Sandbox-ID |
| `RUDEL_PATH` | Sandbox-Verzeichnis |
| `RUDEL_TABLE_PREFIX` | Sandbox-Tabellenpräfix |
| `RUDEL_THEME_SLUG` | Aus der Sandbox bereitgestelltes Theme |
| `RUDEL_HOST_URL`, `RUDEL_ENVIRONMENT_URL` | Host- und Sandbox-URLs |
| `RUDEL_DISABLE_EMAIL` | `true`; ausgehende E-Mails sind gesperrt |

Verwende bevorzugt die Methoden von [API](https://rudel.inline0.dev/de/docs/api) wie `Rudel::id()`, statt die Konstanten direkt auszulesen.

Der Bootstrap definiert außerdem `WP_DEBUG`, `WP_DEBUG_LOG`, `WP_DEBUG_DISPLAY`, `WP_TEMP_DIR`, `WP_CACHE_KEY_SALT` sowie die acht Authentifizierungsschlüssel und -Salts, aber nur jene, die `wp-config.php` noch nicht definiert hat. Siehe [Fehlerprotokollierung](https://rudel.inline0.dev/de/docs/features/logging) und [Isolation](https://rudel.inline0.dev/de/docs/environments/isolation).
