Rudel
Ambienti overlay WordPress selezionati per richiesta.
composer require rudel/rudelUltima versione v0.10.0 GPL-2.0-or-later WordPress 6.4+, PHP 8.2+
wp rudel create \
--name=feature-a \
--owner=dennis \
--labels=agent,qa \
--purpose="Test checkout changes" \
--ttl-days=7Nella pratica
Create una sandbox dal sito host, quindi indirizzate WP-CLI o una richiesta HTTP verso di essa.
Create una sandbox e instradatevi al suo interno
wp rudel create clona le tabelle dell’host con un nuovo prefisso, copia il tema nella directory della sandbox e stampa l’ID della sandbox.
Passate l’ID in RUDEL_ENVIRONMENT per WP-CLI, oppure nell’header X-Rudel-Environment o nel cookie rudel_environment per HTTP. Il comando PHP API crea la stessa sandbox con i metadati del ciclo di vita.
wp rudel create --name=alpha --theme=twentytwentyfour
RUDEL_ENVIRONMENT=alpha-1234 wp option get siteurl
curl -H 'X-Rudel-Environment: alpha-1234' http://localhost:8000/$sandbox = Rudel::create( 'alpha', [
'theme' => 'twentytwentyfour',
'owner' => 'dennis',
'labels' => [ 'qa', 'agent' ],
'ttl_days' => 7,
] );Sandbox
Ambienti overlay temporanei per sviluppo, test e agenti AI.
Selezione per richiesta
Instradate una richiesta in una sandbox tramite l’header X-Rudel-Environment, il cookie rudel_environment o RUDEL_ENVIRONMENT in WP-CLI. La selezione avviene solo tramite l’ID della sandbox, senza autenticazione.
Runtime overlay
L’attivazione aggiunge una riga di bootstrap a wp-config.php. Ogni sandbox riceve quindi tabelle clonate con un proprio prefisso e una copia del tema attivo; il nucleo di WordPress, i file dei plugin e i caricamenti restano condivisi.
Worktree Git
Flussi integrati di clonazione, push e gestione delle worktree, nativi di PHP-Git, senza necessità del binario git sull’host.
Snapshot
Punti di ripristino con nome che copiano le tabelle e i file dei temi gestiti di una sandbox. Createli e ripristinateli da WP-CLI o PHP.
Isolamento delle richieste
Prefissi delle tabelle, directory radice dei temi, directory temporanea, salt della cache degli oggetti e blocco delle email distinti per richiesta.
WP-CLI & PHP API
I comandi wp rudel e i metodi statici di Rudel\Rudel consentono di creare, elencare, aggiornare, acquisire snapshot, ripristinare e distruggere sandbox.
Pronto per gli agenti
Fornisce agli agenti di programmazione una copia temporanea di WordPress, con WP-CLI limitato da RUDEL_ENVIRONMENT e la posta in uscita bloccata.
Perché Rudel
Una sola installazione, tante sandbox
Rudel viene eseguito all’interno di una normale installazione WordPress, senza multisito né una seconda installazione WordPress. Il sito host continua a fornire i propri dati a ogni richiesta che non specifichi una sandbox.
Copia le tabelle e un tema
Una sandbox riceve una copia delle tabelle dell’host, utenti inclusi, con un proprio prefisso e una copia del tema attivo, più quello genitore se si tratta di un tema child. WordPress core, i file dei plugin e i caricamenti restano sull’host.
Sandbox con scadenza
Assegnate a una sandbox un proprietario, delle etichette, uno scopo e un TTL in giorni. Un job orario WP-Cron rimuove le sandbox scadute e ignora quelle contrassegnate come protette.
Sicure da visualizzare in anteprima
Le richieste della sandbox bloccano le email in uscita e registrano ogni messaggio bloccato. A meno che wp-config.php non ne imposti uno proprio, il salt della chiave della cache degli oggetti viene derivato dall’ID della sandbox, così le cache persistenti mantengono separate le chiavi dell’host e della sandbox.
A confronto con
Rudel funziona all’interno del sito che già gestite. Questi strumenti rispondono a esigenze correlate.
| Strumento | Ideale per | Differenze rispetto a Rudel |
|---|---|---|
| WordPress Multisite | Ideale perEsegue una rete di siti virtuali su un unico set di file core, con plugin e temi condivisi e tabelle del database e directory di caricamento separate per ogni sito. | Differenze rispetto a RudelRudel non richiede il multisito. Una sandbox è una copia delle tabelle e del tema attivo del sito esistente, selezionata per ogni richiesta tramite un header, un cookie o una variabile d’ambiente WP-CLI. |
| wp-env | Ideale perConfigura un sito locale WordPress con Docker per sviluppare e testare plugin e temi, senza configurazioni aggiuntive. | Differenze rispetto a RudelRudel non richiede una seconda installazione di WordPress. Crea sandbox dai contenuti del sito che già gestite e le relative tabelle risiedono nello stesso database MySQL dell’host. Non assegna a una sandbox un runtime o un server database PHP propri. |
| WordPress Playground | Ideale perEsegue WordPress lato client in WebAssembly, senza backend, isolato nel browser e senza effetti persistenti al di fuori di esso. | Differenze rispetto a RudelRudel viene eseguito sul server accanto a un sito reale e al suo database MySQL. Una sandbox parte dai contenuti attuali di quel sito ed è accessibile da WP-CLI e da qualsiasi client HTTP. |
Domande e risposte
Risposte brevi dalla documentazione di Rudel.
WordPress core, i file dei plugin e i media caricati. Ogni sandbox riceve una propria copia delle tabelle del database, utenti inclusi, con un prefisso generato e una propria copia del tema attivo.
Inviate l’header X-Rudel-Environment o il cookie rudel_environment con una richiesta HTTP, oppure impostate RUDEL_ENVIRONMENT per WP-CLI. Rudel accetta l’ID da qualsiasi client, quindi la selezione non è un controllo degli accessi.
No. Le richieste all’interno di una sandbox bloccano la posta in uscita tramite il filtro pre_wp_mail e registrano il destinatario e l’oggetto di ogni messaggio bloccato.
In due tabelle nel database dell’host, wp_rudel_environments e wp_rudel_worktrees, con il prefisso predefinito. Non ci sono configurazioni runtime JSON né uno store SQLite.
L’attivazione crea le tabelle runtime, aggiunge una riga di bootstrap a wp-config.php e pianifica l’evento di pulizia, quindi in quel momento WordPress deve poter scrivere in wp-config.php. La disattivazione rimuove la riga.
Sì. wp rudel snapshot salva le tabelle della sandbox e i file del tema con un nome; wp rudel restore con --snapshot li ripristina.
Installate il plugin, create una sandbox dal vostro sito e inviate la vostra prima richiesta al suo interno seguendo la guida introduttiva.