
# Configuración

Rudel tiene dos tipos de configuración: ajustes guardados en la opción `rudel_config` WordPress y constantes que se definen en `wp-config.php`.

## La opción `rudel_config`

Los ajustes se almacenan en una matriz de `wp_options` bajo `rudel_config`. Hasta que se escriba la opción, cada clave usa su valor predeterminado. Las claves desconocidas se ignoran y los valores se guardan como enteros.

| Clave | Valor predeterminado | Significado |
|-------|----------------------|-------------|
| `max_sandboxes` | `0` | Impide crear un sandbox cuando hay esta cantidad. `0` significa que no hay límite. |
| `max_disk_mb` | `0` | Impide crear un sandbox cuando los directorios de sandbox ocupan esta cantidad de megabytes. No se cuentan las tablas clonadas. `0` significa que no hay límite. |
| `default_ttl_days` | `0` | Vencimiento de los nuevos sandboxes creados sin `ttl_days` ni `expires_at`. `0` significa que no vencen. |
| `max_age_days` | `0` | La limpieza elimina los sandboxes más antiguos que este valor. `0` desactiva la regla de antigüedad. |
| `max_idle_days` | `0` | La limpieza elimina los sandboxes sin actividad registrada (una solicitud de sandbox o una instantánea) durante este tiempo. `0` desactiva la regla de inactividad. |
| `auto_cleanup_enabled` | `1` | Ejecuta cada hora la política de limpieza de WP-Cron. |
| `auto_cleanup_merged` | `0` | También ejecuta la limpieza de ramas fusionadas de WP-Cron. |
| `expiring_environment_notice_days` | `0` | Recopila en cada ejecución de automatización los sandboxes que vencen dentro de esta cantidad de días y los pasa a la acción `rudel_after_automation_expiring_environments`. |
| `auto_snapshot_before_restore` | `1` | Guarda una instantánea de `pre-restore-...` antes de cada restauración. |

`wp rudel status` muestra los valores actuales.

Escriba la opción con WP-CLI. Las claves que omita conservan sus valores predeterminados:

```bash
wp option update rudel_config '{"max_age_days":14,"max_idle_days":3,"auto_cleanup_merged":1}' --format=json
```

O desde PHP:

```php
$config = new Rudel\RudelConfig();
$config->set( 'max_sandboxes', 20 );
$config->save();
```

El evento WP-Cron se programa o se elimina en la siguiente solicitud después de un cambio. Consulte [Automatización](https://rudel.inline0.dev/es/docs/features/automation).

## Constantes

Defínalas en `wp-config.php` antes de la línea de arranque de Rudel.

| Constante | Valor predeterminado | Significado |
|-----------|----------------------|-------------|
| `RUDEL_CLI_COMMAND` | `rudel` | Nombre del comando raíz de WP-CLI. |
| `RUDEL_ENVIRONMENTS_DIR` | `wp-content/rudel-environments` | Directorio que contiene los directorios de sandbox. Los recursos del tema siempre se sirven desde `/wp-content/rudel-environments/{id}/themes`, por lo que cualquier otro directorio debe seguir siendo accesible desde ese URL. |
| `RUDEL_RUNTIME_TABLE_PREFIX` | `rudel_` | Parte de los nombres de las tablas de Rudel después del prefijo WordPress. Consulte [Estado de ejecución](https://rudel.inline0.dev/es/docs/features/runtime-state). |
| `RUDEL_RUNTIME_TABLE_ENVIRONMENTS` | | Nombre completo alternativo para la tabla de entornos, después del prefijo WordPress. |
| `RUDEL_RUNTIME_TABLE_WORKTREES` | | Nombre completo alternativo para la tabla de worktrees, después del prefijo WordPress. |
| `RUDEL_DB_DRIVER` | `auto` | Controlador para el acceso independiente a `Rudel\Connection`: `auto`, `mysqli` o `pdo`. Las solicitudes de WordPress siempre usan `$wpdb`. |
| `RUDEL_GIT_AUTHOR_NAME` | `Rudel` | Nombre del autor que Rudel escribe en la configuración de Git de un checkout si no tiene `user.name`; se usa para las confirmaciones de `wp rudel push`. |
| `RUDEL_GIT_AUTHOR_EMAIL` | `rudel@localhost` | Correo electrónico del autor que Rudel escribe si el checkout no tiene `user.email`. |

## Constantes dentro de una solicitud de sandbox

Cuando una solicitud selecciona un sandbox, el arranque define constantes que el código puede leer. Las más útiles son:

| Constante | Valor |
|-----------|-------|
| `RUDEL_ID` | ID del sandbox |
| `RUDEL_PATH` | Directorio del sandbox |
| `RUDEL_TABLE_PREFIX` | Prefijo de tabla del sandbox |
| `RUDEL_THEME_SLUG` | Tema servido desde el sandbox |
| `RUDEL_HOST_URL`, `RUDEL_ENVIRONMENT_URL` | URL del host y del sandbox |
| `RUDEL_DISABLE_EMAIL` | `true`; el correo saliente está bloqueado |

Prefiera los métodos [API](https://rudel.inline0.dev/es/docs/api), como `Rudel::id()`, en lugar de leer las constantes directamente.

El arranque también define `WP_DEBUG`, `WP_DEBUG_LOG`, `WP_DEBUG_DISPLAY`, `WP_TEMP_DIR`, `WP_CACHE_KEY_SALT` y las ocho claves y sales de autenticación, pero solo aquellas que `wp-config.php` no haya definido ya. Consulte [Registro de errores](https://rudel.inline0.dev/es/docs/features/logging) y [Aislamiento](https://rudel.inline0.dev/es/docs/environments/isolation).
