
# Criação

## Criar a partir do host

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

Rudel gera um ID a partir do nome mais quatro caracteres hexadecimais (por exemplo, `alpha-3be7`), clona as tabelas WordPress do host para um prefixo de tabela gerado, copia o tema selecionado para o diretório da sandbox e registra a sandbox no banco de dados WordPress do host. O `siteurl` e o `home` da sandbox mantêm o URL do host.

Se `--theme` for omitido, Rudel usa o tema ativo do site do host. O tema precisa estar instalado no host. Um tema filho também traz seu tema pai.

Cada tabela com o prefixo de tabela do host é copiada, incluindo `users` e `usermeta`, exceto as tabelas próprias de Rudel. Na versão atual, isso também inclui as tabelas das sandboxes já existentes, então cada nova sandbox é maior que a anterior. Consulte [problema #3](https://github.com/inline0/rudel/issues/3).

## Criar a partir de outra sandbox

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

A nova sandbox recebe uma cópia de cada tabela com o prefixo da sandbox de origem, incluindo as tabelas de instantâneos da origem, além do tema dela. Os diretórios de instantâneos não são copiados, então essas tabelas ficam sem uso na nova sandbox ([problema #12](https://github.com/inline0/rudel/issues/12)). Quando o diretório do tema de origem é um repositório Git, Rudel cria uma árvore de trabalho vinculada na ramificação `rudel/{new-id}` em vez de uma cópia simples. O ID de origem é registrado no novo registro.

## Metadados do ciclo de vida

As sandboxes podem conter metadados para limpeza e propriedade:

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

Use `--protected` quando a limpeza automática não deve remover a sandbox. Consulte [Política](https://rudel.inline0.dev/pt/docs/features/policy).

## Limites

A criação falha quando os limites definidos em `max_sandboxes` ou `max_disk_mb` são atingidos. O valor padrão de ambos é `0`, que significa sem limite. Consulte [Configuração](https://rudel.inline0.dev/pt/docs/configuration).

## Checkouts de Git

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

Rudel cria o ambiente isolado, clona o repositório remoto em `themes/my-theme` dentro do diretório do ambiente e muda o checkout para o branch `rudel/{id}`. Adicione `--type=plugin` para clonar em `plugins/my-theme`. Se a clonagem falhar, o ambiente permanece e um aviso é exibido. Consulte [Git](https://rudel.inline0.dev/pt/docs/features/git) para saber o que o ambiente serve a partir desse checkout.

## Estrutura de diretórios

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