
# Création

## Créer depuis l’hôte

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

Rudel génère un ID à partir du nom et de quatre caractères hexadécimaux (par exemple `alpha-3be7`), clone les tables WordPress de l’hôte avec un préfixe de table généré, copie le thème sélectionné dans le répertoire du bac à sable et enregistre celui-ci dans la base de données WordPress de l’hôte. Le `siteurl` et le `home` du bac à sable conservent le URL de l’hôte.

Si `--theme` est omis, Rudel utilise le thème actif du site hôte. Le thème doit être installé sur l’hôte. Un thème enfant entraîne la copie de son thème parent.

Chaque table portant le préfixe de table de l’hôte est copiée, y compris `users` et `usermeta`, à l’exception des tables propres à Rudel. Dans la version actuelle, cela inclut également les tables des bacs à sable existants : chaque nouveau bac à sable est donc plus volumineux que le précédent. Voir [le problème n° 3](https://github.com/inline0/rudel/issues/3).

## Créer depuis un autre bac à sable

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

Le nouveau bac à sable reçoit une copie de chaque table portant le préfixe du bac à sable source, y compris ses tables d’instantanés, ainsi que son thème. Les répertoires d’instantanés ne sont pas copiés ; ces tables ne sont donc pas utilisées dans le nouveau bac à sable ([problème n° 12](https://github.com/inline0/rudel/issues/12)). Lorsque le répertoire du thème source est un dépôt Git, Rudel crée un worktree lié sur la branche `rudel/{new-id}` au lieu d’une simple copie. L’ID source est enregistré dans le nouvel enregistrement.

## Métadonnées du cycle de vie

Les bacs à sable peuvent contenir des métadonnées de nettoyage et de propriété :

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

Utilisez `--protected` lorsque le nettoyage automatisé ne doit pas supprimer le bac à sable. Voir [Politique](https://rudel.inline0.dev/fr/docs/features/policy).

## Limites

La création échoue lorsque les limites définies par `max_sandboxes` ou `max_disk_mb` sont atteintes. Les deux valent par défaut `0`, ce qui signifie qu’il n’y a aucune limite. Voir [Configuration](https://rudel.inline0.dev/fr/docs/configuration).

## Checkouts Git

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

Rudel crée le bac à sable, clone le dépôt distant dans `themes/my-theme` à l’intérieur de son répertoire et bascule le checkout sur la branche `rudel/{id}`. Ajoutez `--type=plugin` pour cloner plutôt dans `plugins/my-theme`. En cas d’échec du clonage, le bac à sable est conservé et un avertissement s’affiche. Voir [Git](https://rudel.inline0.dev/fr/docs/features/git) pour savoir ce que le bac à sable sert depuis ce checkout.

## Structure des répertoires

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