
# Membuat

## Buat dari host

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

Rudel membuat ID dari nama ditambah empat karakter heksadesimal (misalnya `alpha-3be7`), mengkloning tabel WordPress host ke prefiks tabel yang dibuat, menyalin tema yang dipilih ke direktori sandbox, dan mencatat sandbox di basis data WordPress host. `siteurl` dan `home` sandbox mempertahankan URL host.

Jika `--theme` tidak disertakan, Rudel menggunakan tema aktif situs host. Tema tersebut harus terpasang di host. Tema turunan membawa serta tema induknya.

Setiap tabel dengan prefiks tabel host akan disalin, termasuk `users` dan `usermeta`, kecuali tabel milik Rudel. Pada rilis saat ini, proses ini juga mencakup tabel sandbox yang sudah ada, sehingga setiap sandbox baru berukuran lebih besar daripada sebelumnya. Lihat [issue #3](https://github.com/inline0/rudel/issues/3).

## Buat dari sandbox lain

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

Sandbox baru menerima salinan setiap tabel dengan prefiks milik sandbox sumber, termasuk tabel snapshot sumber, serta temanya. Direktori snapshot tidak disalin, sehingga tabel tersebut tidak digunakan di sandbox baru ([issue #12](https://github.com/inline0/rudel/issues/12)). Jika direktori tema sumber adalah repositori Git, Rudel membuat worktree tertaut pada cabang `rudel/{new-id}` sebagai pengganti salinan biasa. ID sumber dicatat pada catatan baru.

## Metadata siklus hidup

Sandbox dapat memiliki metadata untuk pembersihan dan kepemilikan:

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

Gunakan `--protected` jika pembersihan otomatis tidak boleh menghapus sandbox. Lihat [Kebijakan](https://rudel.inline0.dev/id/docs/features/policy).

## Batas

Pembuatan gagal saat batas pengaturan `max_sandboxes` atau `max_disk_mb` tercapai. Nilai default keduanya adalah `0`, yang berarti tanpa batas. Lihat [Konfigurasi](https://rudel.inline0.dev/id/docs/configuration).

## Checkout Git

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

Rudel membuat sandbox, mengkloning remote ke `themes/my-theme` di dalam direktori sandbox, lalu mengganti checkout ke cabang `rudel/{id}`. Tambahkan `--type=plugin` untuk mengkloning ke `plugins/my-theme`. Jika kloning gagal, sandbox tetap ada dan sebuah peringatan ditampilkan. Lihat [Git](https://rudel.inline0.dev/id/docs/features/git) untuk mengetahui konten dari checkout tersebut yang disajikan oleh sandbox.

## Tata letak direktori

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