
# Primeiros passos

## Requisitos

- PHP 8.2+
- WordPress 6.4+
- MySQL ou MariaDB pela conexão normal com o banco de dados WordPress
- um `wp-config.php` com permissão de escrita quando o plugin é ativado

## Instalação

Instale Rudel com Composer e ative-o como um plugin WordPress normal.

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

Composer instala Rudel em `vendor/rudel/rudel`, a menos que seu projeto mapeie os plugins WordPress para `wp-content/plugins` (por exemplo, com `composer/installers`). O plugin precisa estar no diretório de plugins para que `wp plugin activate rudel` o encontre.

## O que a ativação faz

A ativação cria as tabelas de Rudel, agenda o evento de limpeza a cada hora e adiciona uma linha de bootstrap a `wp-config.php`, logo acima da linha que carrega `wp-settings.php`. Essa linha permite que Rudel selecione um sandbox antes que WordPress termine de carregar. Primeiro, Rudel grava uma cópia de backup chamada `wp-config.php.rudel-backup-{timestamp}`.

Não há um comando de instalação separado. Se `wp-config.php` não permitir gravação, a ativação falha. A desativação remove a linha e o evento agendado.

Verifique o status em tempo de execução:

```bash
wp rudel status
```

`Bootstrap installed` deve indicar `yes`.

## Criar um sandbox

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

Rudel exibe o ID gerado para o sandbox, por exemplo `alpha-3be7`. O comando clona as tabelas WordPress do host para um prefixo de tabela específico do sandbox, copia o tema para o diretório do sandbox e armazena o registro no banco de dados WordPress do host. Os exemplos abaixo usam `alpha-3be7`; use o ID exibido pelo seu comando.

## Usar WP-CLI dentro de um sandbox

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

Sem `RUDEL_ENVIRONMENT`, WP-CLI se conecta ao host.

## Direcionar HTTP para um sandbox

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

Para uma sessão no navegador, defina um cookie `rudel_environment` com o ID do sandbox. Rudel lê o cookie, mas nunca o define nem o limpa. Exclua o cookie para voltar ao host.

O sandbox é executado no host URL. Sem o cabeçalho ou o cookie, o mesmo URL atende ao host.

## Próximas etapas

- [Criar ambientes](https://rudel.inline0.dev/pt/docs/environments/creating)
- [Gerenciar ambientes](https://rudel.inline0.dev/pt/docs/environments/managing)
- [Isolamento](https://rudel.inline0.dev/pt/docs/environments/isolation)
- [CLI](https://rudel.inline0.dev/pt/docs/cli)
