
# Creación

## Crear desde el host

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

Rudel genera un ID a partir del nombre y cuatro caracteres hexadecimales (por ejemplo, `alpha-3be7`), clona las tablas WordPress del host con un prefijo de tabla generado, copia el tema seleccionado en el directorio del sandbox y registra el sandbox en la base de datos WordPress del host. `siteurl` y `home` del sandbox conservan el URL del host.

Si se omite `--theme`, Rudel usa el tema activo del sitio del host. El tema debe estar instalado en el host. Si es un tema hijo, también se incluye el tema principal.

Se copia cada tabla que tenga el prefijo de tabla del host, incluidas `users` y `usermeta`, excepto las tablas propias de Rudel. En la versión actual también se incluyen las tablas de los sandboxes existentes, así que cada sandbox nuevo es más grande que el anterior. Consulte [el problema n.º 3](https://github.com/inline0/rudel/issues/3).

## Crear desde otro sandbox

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

El nuevo sandbox recibe una copia de todas las tablas con el prefijo del sandbox de origen, incluidas las tablas de instantáneas de origen, y de su tema. No se copian los directorios de instantáneas, por lo que esas tablas no se usan en el nuevo sandbox ([problema n.º 12](https://github.com/inline0/rudel/issues/12)). Cuando el directorio del tema de origen es un repositorio de Git, Rudel crea un worktree vinculado en la rama `rudel/{new-id}` en lugar de una copia simple. El ID de origen se registra en el nuevo registro.

## Metadatos del ciclo de vida

Los sandboxes pueden incluir metadatos para la limpieza y la propiedad:

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

Use `--protected` cuando la limpieza automatizada no deba eliminar el sandbox. Consulte [Política](https://rudel.inline0.dev/es/docs/features/policy).

## Límites

La creación falla al alcanzar los ajustes `max_sandboxes` o `max_disk_mb`. Ambos son `0` de forma predeterminada, lo que significa que no hay límite. Consulte [Configuración](https://rudel.inline0.dev/es/docs/configuration).

## Checkouts de Git

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

Rudel crea el sandbox, clona el remoto en `themes/my-theme` dentro del directorio del sandbox y cambia el checkout a la rama `rudel/{id}`. Añada `--type=plugin` para clonar en `plugins/my-theme`. Si la clonación falla, el sandbox permanece y se muestra una advertencia. Consulte [Git](https://rudel.inline0.dev/es/docs/features/git) para saber qué contenido del sandbox se sirve desde ese checkout.

## Estructura de directorios

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