
# Erste Schritte

## Voraussetzungen

- PHP 8.2+
- WordPress 6.4+
- MySQL oder MariaDB über die normale WordPress-Datenbankverbindung
- ein beschreibbares `wp-config.php` bei Aktivierung des Plugins

## Installation

Installiere Rudel mit Composer und aktiviere es wie ein normales WordPress-Plugin.

```bash
composer require rudel/rudel
wp plugin activate rudel
```

Composer installiert Rudel unter `vendor/rudel/rudel`, sofern dein Projekt Plugins von WordPress nicht nach `wp-content/plugins` umleitet (zum Beispiel mit `composer/installers`). Das Plugin muss sich im Plugin-Verzeichnis befinden, damit `wp plugin activate rudel` es findet.

## Was die Aktivierung bewirkt

Bei der Aktivierung werden die Tabellen von Rudel erstellt, das stündliche Bereinigungsereignis geplant und eine Bootstrap-Zeile in `wp-config.php` eingefügt, direkt über der Zeile, die `wp-settings.php` lädt. So kann Rudel eine Sandbox auswählen, bevor WordPress vollständig geladen ist. Zuerst erstellt Rudel eine Sicherungskopie namens `wp-config.php.rudel-backup-{timestamp}`.

Es gibt keinen separaten Installationsbefehl. Wenn `wp-config.php` nicht beschreibbar ist, schlägt die Aktivierung fehl. Bei der Deaktivierung werden die Zeile und das geplante Ereignis entfernt.

Laufzeitstatus prüfen:

```bash
wp rudel status
```

`Bootstrap installed` sollte `yes` anzeigen.

## Eine Sandbox erstellen

```bash
wp rudel create --name=alpha --theme=twentytwentyfour
```

Rudel gibt die generierte Sandbox-ID aus, zum Beispiel `alpha-3be7`. Es klont die Tabellen des Hosts WordPress mit einem sandbox-spezifischen Tabellenpräfix, kopiert das Theme in das Sandbox-Verzeichnis und speichert den Datensatz in der Datenbank des Hosts WordPress. Die folgenden Beispiele verwenden `alpha-3be7`; verwende die ID, die dein Befehl ausgegeben hat.

## WP-CLI in einer Sandbox verwenden

```bash
RUDEL_ENVIRONMENT=alpha-3be7 wp option get blogname
```

Ohne `RUDEL_ENVIRONMENT` kommuniziert WP-CLI mit dem Host.

## HTTP in eine Sandbox leiten

```bash
curl -H 'X-Rudel-Environment: alpha-3be7' http://localhost:8000/
```

Setze für eine Browsersitzung ein `rudel_environment`-Cookie mit der Sandbox-ID. Rudel liest das Cookie, setzt oder löscht es aber nie. Lösche das Cookie, um zum Host zurückzukehren.

Die Sandbox läuft auf dem Host URL. Ohne Header oder Cookie stellt dasselbe URL den Host bereit.

## Nächste Schritte

- [Umgebungen erstellen](https://rudel.inline0.dev/de/docs/environments/creating)
- [Umgebungen verwalten](https://rudel.inline0.dev/de/docs/environments/managing)
- [Isolation](https://rudel.inline0.dev/de/docs/environments/isolation)
- [CLI](https://rudel.inline0.dev/de/docs/cli)
