
# Oprettelse

## Opret fra værten

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

Rudel genererer et id ud fra navnet plus fire hexadecimale tegn (for eksempel `alpha-3be7`), kloner værtens WordPress-tabeller til et genereret tabelpræfiks, kopierer det valgte tema til sandboxmappen og registrerer sandboxen i værtens WordPress-database. Sandboxens `siteurl` og `home` beholder værtens URL.

Hvis `--theme` udelades, bruger Rudel webstedets aktive tema. Temaet skal være installeret på værten. Et undertema medfører også dets overordnede tema.

Hver tabel med værtens tabelpræfiks kopieres, herunder `users` og `usermeta`, bortset fra Rudels egne tabeller. I den aktuelle version omfatter det også tabellerne fra eksisterende sandkasser, så hver ny sandkasse er større end den forrige. Se [issue #3](https://github.com/inline0/rudel/issues/3).

## Opret fra en anden sandkasse

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

Den nye sandkasse får en kopi af alle tabeller med kildesandkassens præfiks, herunder kildens snapshot-tabeller, samt dens tema. Snapshot-mapper kopieres ikke, så disse tabeller bruges ikke i den nye sandkasse ([issue #12](https://github.com/inline0/rudel/issues/12)). Når kildens temamappe er et Git-repository, opretter Rudel et tilknyttet worktree på grenen `rudel/{new-id}` i stedet for en almindelig kopi. Kilde-ID'et registreres i den nye post.

## Livscyklusmetadata

Sandkasser kan have metadata til oprydning og ejerskab:

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

Brug `--protected`, når automatisk oprydning ikke må fjerne sandkassen. Se [Politik](https://rudel.inline0.dev/da/docs/features/policy).

## Grænser

Oprettelsen mislykkes, når indstillingerne `max_sandboxes` eller `max_disk_mb` nås. Begge har som standard værdien `0`, hvilket betyder ingen grænse. Se [Konfiguration](https://rudel.inline0.dev/da/docs/configuration).

## Git-checkouts

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

Rudel opretter sandkassen, kloner fjernlageret til `themes/my-theme` i sandkassemappen og skifter checkout til grenen `rudel/{id}`. Tilføj `--type=plugin` for i stedet at klone til `plugins/my-theme`. Hvis kloningen mislykkes, bevares sandkassen, og der vises en advarsel. Se [Git](https://rudel.inline0.dev/da/docs/features/git) for at se, hvad sandkassen viser fra denne checkout.

## Mappestruktur

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