
# Aanmaken

## Aanmaken vanaf de host

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

Rudel genereert een ID op basis van de naam plus vier hexadecimale tekens (bijvoorbeeld `alpha-3be7`), kloont de host-WordPress-tabellen naar een gegenereerd tabelvoorvoegsel, kopieert het geselecteerde thema naar de sandboxmap en registreert de sandbox in de WordPress-database van de host. De `siteurl` en `home` van de sandbox behouden de URL van de host.

Als `--theme` wordt weggelaten, gebruikt Rudel het actieve thema van de hostsite. Het thema moet op de host zijn geïnstalleerd. Een child-thema neemt het bovenliggende thema mee.

Elke tabel met het tabelvoorvoegsel van de host wordt gekopieerd, inclusief `users` en `usermeta`, behalve de eigen tabellen van Rudel. In de huidige release omvat dit ook de tabellen van bestaande sandboxes, zodat elke nieuwe sandbox groter is dan de vorige. Zie [issue #3](https://github.com/inline0/rudel/issues/3).

## Aanmaken vanuit een andere sandbox

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

De nieuwe sandbox krijgt een kopie van elke tabel met het voorvoegsel van de bronsandbox, inclusief de momentopnametabellen van de bron, en het thema ervan. Momentopnamemappen worden niet gekopieerd, dus die tabellen worden niet gebruikt in de nieuwe sandbox ([issue #12](https://github.com/inline0/rudel/issues/12)). Wanneer de themamap van de bron een Git-repository is, maakt Rudel een gekoppelde worktree aan op de branch `rudel/{new-id}` in plaats van een gewone kopie. De bron-ID wordt in het nieuwe record opgeslagen.

## Levenscyclusmetadata

Sandboxes kunnen metadata bevatten voor opruiming en eigenaarschap:

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

Gebruik `--protected` wanneer automatische opruiming de sandbox niet mag verwijderen. Zie [Beleid](https://rudel.inline0.dev/nl/docs/features/policy).

## Limieten

Het aanmaken mislukt wanneer de instellingen `max_sandboxes` of `max_disk_mb` zijn bereikt. Beide zijn standaard ingesteld op `0`, wat betekent dat er geen limiet geldt. Zie [Configuratie](https://rudel.inline0.dev/nl/docs/configuration).

## Git-checkouts

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

Rudel maakt de sandbox aan, kloont de remote naar `themes/my-theme` in de sandboxmap en schakelt de checkout over naar branch `rudel/{id}`. Voeg `--type=plugin` toe om in plaats daarvan naar `plugins/my-theme` te klonen. Bij een mislukte kloon blijft de sandbox bestaan en wordt er een waarschuwing weergegeven. Zie [Git](https://rudel.inline0.dev/nl/docs/features/git) voor wat de sandbox vanuit die checkout serveert.

## Mapstructuur

```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
```
