Rudel
요청별로 선택하는 WordPress 샌드박스용 오버레이 환경.
composer require rudel/rudel최신 릴리스 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=7실제 사용
호스트 사이트에서 샌드박스를 만든 다음 WP-CLI 또는 HTTP 요청을 해당 샌드박스로 보냅니다.
샌드박스를 만들고 요청을 라우팅하세요
wp rudel create은 호스트 테이블을 새 접두사 아래에 복제하고, 테마를 샌드박스 디렉터리에 복사한 다음 샌드박스 ID를 출력합니다.
해당 ID를 RUDEL_ENVIRONMENT에 전달해 WP-CLI을 실행하거나, X-Rudel-Environment 헤더 또는 rudel_environment 쿠키에 담아 HTTP 요청을 보냅니다. PHP API으로도 동일한 샌드박스를 만들 수 있으며 수명 주기 메타데이터도 기록됩니다.
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,
] );샌드박스
개발, 테스트, AI 에이전트를 위한 폐기 가능한 오버레이 환경입니다.
요청별 선택
X-Rudel-Environment 헤더, rudel_environment 쿠키 또는 WP-CLI의 RUDEL_ENVIRONMENT로 요청을 샌드박스에 라우팅합니다. 인증 없이 샌드박스 ID만으로 선택합니다.
오버레이 런타임
활성화하면 wp-config.php에 부트스트랩 줄이 추가됩니다. 그러면 각 샌드박스에는 자체 접두사를 사용하는 복제된 테이블과 활성 테마 사본이 제공되며, WordPress 코어, 플러그인 파일, 업로드 파일은 공유 상태로 유지됩니다.
Git 워크트리
호스트의 git 바이너리가 없어도 PHP에 맞춘 기본 Git 복제, 푸시, 워크트리 작업 흐름을 사용할 수 있습니다.
스냅샷
샌드박스의 테이블과 관리되는 테마 파일을 복사하는 이름 있는 복구 지점입니다. WP-CLI 또는 PHP에서 만들고 복원하세요.
요청 격리
요청별 테이블 접두사, 테마 루트, 임시 디렉터리, 객체 캐시 키 솔트 및 이메일 차단을 제공합니다.
WP-CLI & PHP API
wp rudel 명령과 Rudel\Rudel 정적 메서드로 샌드박스를 만들고, 나열하고, 업데이트하고, 스냅샷을 생성하고, 복원하고, 삭제할 수 있습니다.
에이전트 사용 준비 완료
코딩 에이전트에 폐기 가능한 WordPress 사본을 제공하며, RUDEL_ENVIRONMENT로 범위를 제한한 WP-CLI과 발신 이메일 차단을 지원합니다.
Rudel를 사용하는 이유
한 번 설치해 여러 샌드박스 사용
Rudel은 멀티사이트나 두 번째 WordPress 설치 없이 일반 WordPress 설치 안에서 실행됩니다. 샌드박스를 지정하지 않은 모든 요청에는 호스트 사이트가 자체 데이터를 제공합니다.
테이블과 테마 하나를 복사
샌드박스는 사용자까지 포함한 호스트 테이블을 자체 접두사 아래에 복사하고, 활성 테마도 복사합니다. 하위 테마의 경우 상위 테마도 복사합니다. WordPress 코어, 플러그인 파일, 업로드 파일은 호스트에 그대로 있습니다.
만료되는 샌드박스
샌드박스에 소유자, 레이블, 용도 및 TTL(일수)을 지정하세요. 매시간 실행되는 WP-Cron 작업이 만료된 샌드박스를 삭제하고 보호됨으로 표시된 샌드박스는 건너뜁니다.
안심하고 미리보기
샌드박스 요청은 발신 이메일을 차단하고 차단된 메시지를 각각 기록합니다. wp-config.php에서 별도로 설정하지 않으면 객체 캐시 키 솔트는 샌드박스 ID에서 파생되므로 영구 캐시에서 호스트 키와 샌드박스 키가 분리됩니다.
비교 대상
Rudel은 이미 운영 중인 사이트 안에서 작동합니다. 다음 도구들은 인접한 요구 사항을 충족합니다.
| 도구 | 잘하는 점 | Rudel와의 차이점 |
|---|---|---|
| WordPress Multisite | 잘하는 점하나의 코어 파일 집합으로 가상 사이트 네트워크를 실행하고 플러그인과 테마는 공유하며, 각 사이트별 데이터베이스 테이블과 업로드 디렉터리는 분리합니다. | Rudel와의 차이점Rudel에는 멀티사이트가 필요하지 않습니다. 샌드박스는 기존 사이트의 테이블과 활성 테마를 복사하며, 헤더, 쿠키 또는 WP-CLI 환경 변수로 요청별 선택이 가능합니다. |
| wp-env | 잘하는 점로컬 WordPress 사이트를 설정하고 Docker을 사용해 별도의 구성 없이 플러그인과 테마를 개발하고 테스트합니다. | Rudel와의 차이점Rudel에는 두 번째 WordPress 설치가 필요하지 않습니다. 현재 운영 중인 사이트의 콘텐츠에서 샌드박스를 만들며, 테이블은 호스트와 동일한 MySQL 데이터베이스에 저장됩니다. 샌드박스에 별도의 PHP 런타임이나 데이터베이스 서버를 제공하지는 않습니다. |
| WordPress Playground | 잘하는 점WordPress은 백엔드 없이 WebAssembly에서 클라이언트 측으로 실행됩니다. 브라우저 안에 격리되며 브라우저 외부에는 지속적인 부작용을 남기지 않습니다. | Rudel와의 차이점Rudel은 실제 사이트 및 해당 MySQL 데이터베이스와 나란히 서버에서 실행됩니다. 샌드박스는 해당 사이트의 현재 콘텐츠에서 시작하며 WP-CLI와 모든 HTTP 클라이언트에서 접근할 수 있습니다. |
질문과 답변
Rudel 문서의 간단한 답변.
WordPress 코어, 플러그인 파일, 업로드된 미디어입니다. 각 샌드박스에는 생성된 접두사 아래에 사용자까지 포함한 데이터베이스 테이블 사본과 활성 테마 사본이 제공됩니다.
X-Rudel-Environment 헤더 또는 rudel_environment 쿠키에 ID를 담아 HTTP 요청을 보내거나, WP-CLI용으로 RUDEL_ENVIRONMENT을 설정하세요. Rudel은 모든 클라이언트에서 ID를 허용하므로 선택 기능은 접근 제어 수단이 아닙니다.
아니요. 샌드박스 내부의 요청은 pre_wp_mail 필터를 통해 발신 메일을 차단하며, 차단된 메시지마다 수신자와 제목을 기록합니다.
호스트 데이터베이스의 두 테이블인 wp_rudel_environments와 wp_rudel_worktrees에 기본 접두사를 사용해 저장합니다. 런타임 JSON 설정 파일은 없으며 SQLite 저장소도 없습니다.
활성화하면 런타임 테이블이 생성되고 wp-config.php에 부트스트랩 줄이 추가되며 정리 이벤트가 예약됩니다. 따라서 이 시점에 WordPress은 wp-config.php에 대한 쓰기 권한이 필요합니다. 비활성화하면 해당 줄이 제거됩니다.
예. wp rudel snapshot은 샌드박스 테이블과 테마 파일을 이름과 함께 저장하며, wp rudel restore와 --snapshot을 사용하면 복원할 수 있습니다.
플러그인을 설치하고, 자신의 사이트에서 샌드박스를 만든 다음 시작하기 안내에 따라 첫 요청을 샌드박스로 보내세요.