
# Erstellen

## Auf dem Host erstellen

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

Rudel generiert aus dem Namen und vier Hexadezimalzeichen eine ID (zum Beispiel `alpha-3be7`), klont die Tabellen des Host-WordPress in ein generiertes Tabellenpräfix, kopiert das ausgewählte Theme in das Sandbox-Verzeichnis und speichert die Sandbox in der Host-WordPress-Datenbank. `siteurl` und `home` der Sandbox behalten die URL des Hosts.

Wenn `--theme` weggelassen wird, verwendet Rudel das aktive Theme der Host-Website. Das Theme muss auf dem Host installiert sein. Bei einem Child-Theme wird auch das übergeordnete Theme übernommen.

Jede Tabelle mit dem Tabellenpräfix des Hosts wird kopiert, einschließlich `users` und `usermeta`, außer den eigenen Tabellen von Rudel. In der aktuellen Version umfasst das auch die Tabellen bereits vorhandener Sandboxes, sodass jede neue Sandbox größer ist als die vorherige. Siehe [Issue #3](https://github.com/inline0/rudel/issues/3).

## Aus einer anderen Sandbox erstellen

```bash
wp rudel create --name=feature-b --clone-from=alpha-3be7
```

Die neue Sandbox erhält eine Kopie jeder Tabelle mit dem Präfix der Quell-Sandbox, einschließlich ihrer Snapshot-Tabellen, sowie ihres Themes. Snapshot-Verzeichnisse werden nicht kopiert, daher bleiben diese Tabellen in der neuen Sandbox ungenutzt ([Issue #12](https://github.com/inline0/rudel/issues/12)). Wenn das Theme-Verzeichnis der Quelle ein Git-Repository ist, erstellt Rudel einen verknüpften Worktree auf dem Branch `rudel/{new-id}` statt einer einfachen Kopie. Die Quell-ID wird im neuen Datensatz gespeichert.

## Lebenszyklus-Metadaten

Sandboxes können Metadaten für Bereinigung und Zuständigkeit enthalten:

```bash
wp rudel create \
  --name=feature-a \
  --owner=dennis \
  --labels=agent,qa \
  --purpose="Test checkout changes" \
  --ttl-days=7
```

Verwende `--protected`, wenn die automatische Bereinigung die Sandbox nicht entfernen darf. Siehe [Richtlinie](https://rudel.inline0.dev/de/docs/features/policy).

## Limits

Die Erstellung schlägt fehl, sobald die Einstellung `max_sandboxes` oder `max_disk_mb` erreicht ist. Beide sind standardmäßig auf `0` gesetzt, was unbegrenzt bedeutet. Siehe [Konfiguration](https://rudel.inline0.dev/de/docs/configuration).

## Git-Checkouts

```bash
wp rudel create --name=feature-a --git=https://example.test/my-theme.git
```

Rudel erstellt die Sandbox, klont das Remote-Repository nach `themes/my-theme` im Sandbox-Verzeichnis und wechselt im Checkout zum Branch `rudel/{id}`. Mit `--type=plugin` wird stattdessen nach `plugins/my-theme` geklont. Bei einem fehlgeschlagenen Klon bleibt die Sandbox bestehen und es wird eine Warnung ausgegeben. Unter [Git](https://rudel.inline0.dev/de/docs/features/git) erfährst du, was die Sandbox aus diesem Checkout bereitstellt.

## Verzeichnisstruktur

```text
wp-content/rudel-environments/{id}/
  themes/       copied theme, plus any Git checkout
  snapshots/    snapshot metadata and theme copies
  logs/ metadata/ tmp/
  wp-cli.yml
  debug.log     when debug logging is active
```
