
# Guida introduttiva

## Requisiti

- PHP 8.2+
- WordPress 6.4+
- MySQL o MariaDB tramite la normale connessione al database WordPress
- un `wp-config.php` scrivibile all’attivazione del plugin

## Installazione

Installate Rudel con Composer e attivatelo come un normale plugin WordPress.

```bash
composer require rudel/rudel
wp plugin activate rudel
```

Composer installa Rudel in `vendor/rudel/rudel`, a meno che il progetto non mappi i plugin WordPress in `wp-content/plugins`, per esempio con `composer/installers`. Il plugin deve trovarsi nella directory dei plugin perché `wp plugin activate rudel` possa individuarlo.

## Cosa fa l’attivazione

L’attivazione crea le tabelle di Rudel, pianifica l’evento di pulizia oraria e aggiunge una riga di bootstrap in `wp-config.php`, direttamente sopra la riga che carica `wp-settings.php`. Questa riga consente a Rudel di selezionare una sandbox prima che WordPress completi il caricamento. Rudel scrive prima una copia di backup chiamata `wp-config.php.rudel-backup-{timestamp}`.

Non esiste un comando di installazione separato. Se `wp-config.php` non è scrivibile, l’attivazione non riesce. La disattivazione rimuove la riga e l’evento pianificato.

Controllate lo stato di runtime:

```bash
wp rudel status
```

`Bootstrap installed` dovrebbe mostrare `yes`.

## Creare una sandbox

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

Rudel stampa l’ID generato della sandbox, per esempio `alpha-3be7`. Clona le tabelle WordPress dell’host con un prefisso specifico per la sandbox, copia il tema nella directory della sandbox e salva il record nel database WordPress dell’host. Gli esempi seguenti usano `alpha-3be7`; usate l’ID stampato dal vostro comando.

## Usare WP-CLI all’interno di una sandbox

```bash
RUDEL_ENVIRONMENT=alpha-3be7 wp option get blogname
```

Senza `RUDEL_ENVIRONMENT`, WP-CLI comunica con l’host.

## Instradare HTTP in una sandbox

```bash
curl -H 'X-Rudel-Environment: alpha-3be7' http://localhost:8000/
```

Per una sessione nel browser, impostate un cookie `rudel_environment` con l’ID della sandbox. Rudel legge il cookie, ma non lo imposta né lo cancella mai. Eliminate il cookie per tornare all’host.

La sandbox viene eseguita sull’host URL. Senza l’header o il cookie, lo stesso URL serve l’host.

## Passaggi successivi

- [Creare ambienti](https://rudel.inline0.dev/it/docs/environments/creating)
- [Gestire ambienti](https://rudel.inline0.dev/it/docs/environments/managing)
- [Isolamento](https://rudel.inline0.dev/it/docs/environments/isolation)
- [CLI](https://rudel.inline0.dev/it/docs/cli)
