# Complementos gestionados: Postgres y Redis

Source: https://support.kapsulehost.com/es-es/site-addons

La pestaña de Complementos le permite conectar una base de datos PostgreSQL gestionada o una instancia Redis gestionada a un sitio sin necesidad de crear o mantener un servidor para ello. KapsuleHost la aprovisiona, le entrega una cadena de conexión y la elimina de forma limpia cuando usted la retira.

## Dónde se encuentran los complementos

Abra **Sitios web**, haga clic en el sitio, abra el grupo **Aplicaciones** en el menú izquierdo del sitio y elija **Complementos**. La página se titula **Complementos gestionados**.

Hay dos opciones en el catálogo:

| Complemento | Uso habitual |
|---|---|
| PostgreSQL | El almacén de datos principal para una aplicación que no está en MySQL |
| Redis | Almacenamiento en caché, almacenamiento de sesiones y colas de tareas en segundo plano |

Estos son independientes de la base de datos MySQL que viene incluida con un sitio de alojamiento estándar. Esa se encuentra en la pestaña **Base de datos** y no necesita aprovisionamiento: consulte [Conexión a su base de datos mediante un túnel SSH](https://support.kapsulehost.com/es-es/database-ssh-tunnel).

![Página de complementos gestionados para un sitio en KPanel](https://support.kapsulehost.com/help/screenshots/site-addons.3f3b5ee3.webp)

## Solicitar un complemento

1. Busque el complemento en la sección **Añadir una base de datos gestionada**.
2. Haga clic en **Añadir al sitio**.

La solicitud se registra de inmediato y el complemento aparece en **Sus complementos** con una insignia **PENDING** y la nota *Waiting for provisioner*. La página se actualiza automáticamente cada quince segundos, por lo que puede dejarla abierta.

Un proceso en segundo plano recoge las solicitudes pendientes cada pocos minutos, crea una base de datos y un usuario dedicados para su sitio, y escribe de vuelta una cadena de conexión cifrada. El estado entonces pasa a **ACTIVE**.

> **Note:** Solicitar o eliminar un complemento requiere el permiso **sites:write**. Los miembros del equipo con acceso de solo lectura pueden ver qué complementos existen y su estado, pero los botones permanecen ocultos.

### Uno de cada tipo, por sitio

Un sitio puede tener un complemento PostgreSQL y un complemento Redis. Solicitar un segundo del mismo tipo se rechaza con un mensaje que indica que ya está aprovisionado, y el catálogo oculta una opción una vez instalada. Cuando ambos están instalados, la sección del catálogo muestra **All available addons are installed**.

## Interpretar el estado

| Estado | Significado |
|---|---|
| PENDING | Solicitado, en espera del aprovisionador |
| PROVISIONING | Creándose en este momento |
| ACTIVE | Listo para usar |
| FAILED | El aprovisionamiento no se completó; el motivo se muestra en la fila |
| DELETED | Eliminado, ya no aparece en la lista |

Una fila **FAILED** muestra el texto del error real debajo en lugar de un mensaje genérico. Si el motivo no es algo que pueda resolver, cítelo textualmente en un ticket de soporte: consulte [Abrir un ticket de soporte](https://support.kapsulehost.com/es-es/opening-a-support-ticket).

## Obtener la cadena de conexión

Una vez que un complemento está **ACTIVE**, su fila muestra una cadena de conexión enmascarada con la contraseña reemplazada por puntos, de modo que pueda confirmar el host y el nombre de la base de datos de un vistazo sin exponer la credencial.

Haga clic en **Copiar conexión** para colocar la cadena de conexión completa en su portapapeles. Se descifra en el servidor para esa única solicitud y nunca se muestra en la página, de modo que las capturas de pantalla y las pantallas compartidas no la filtran. Cada revelación queda registrada en el historial de auditoría del sitio y aparece en el [registro de actividad del sitio](https://support.kapsulehost.com/es-es/site-activity-log).

La cadena tiene el formato de URL habitual para cada motor, con el host, el puerto, el usuario, la contraseña y el nombre de la base de datos creados para este sitio.

## Usarla en su aplicación

Pegue la cadena de conexión donde su aplicación lea su configuración. En un sitio Node.js, el lugar adecuado para ella es la pestaña [Secrets](https://support.kapsulehost.com/es-es/site-secrets), bajo una clave como `DATABASE_URL` o `REDIS_URL`, en el entorno **production**.

> **Warning:** No incorpore la cadena de conexión de forma fija en un archivo que suba al repositorio. Contiene una contraseña activa. Si llega a un repositorio remoto de git, debe tratarse como filtrada, y la única solución real es eliminar el complemento y solicitar uno nuevo, ya que la credencial no se puede rotar directamente desde el panel.

## Eliminar un complemento

Haga clic en **Delete** en la fila. KPanel le pide confirmación y es directo sobre lo que ocurre: esto elimina la base de datos gestionada, y los datos no se pueden recuperar.

La fila se marca como eliminada de inmediato y el aprovisionador elimina la base de datos y el usuario subyacentes en su siguiente ciclo. Las conexiones existentes se terminan como parte de ese proceso.

> **Important:** No se realiza ninguna copia de seguridad de un complemento gestionado al eliminarlo, y no hay forma de deshacer la acción. Si hay algo en él que quiera conservar, expórtelo primero con `pg_dump` o `redis-cli --rdb` mientras el complemento sigue activo y la cadena de conexión aún funciona.

## Elegir entre las opciones

**Use PostgreSQL** cuando su aplicación necesite una base de datos relacional y esté escrita para Postgres: restricciones estrictas, transacciones, columnas JSON y búsqueda de texto completo que de otro modo tendría que añadir por su cuenta.

**Use Redis** para cosas que pueden desaparecer sin problema: fragmentos en caché, contadores de límite de velocidad, almacenamiento de sesiones y colas de tareas. Trátelo como rápido y volátil, no como un sistema de registro.

**Use la base de datos MySQL integrada** para WordPress y para cualquier cosa ya escrita para MySQL. Añadir un complemento Postgres a un sitio WordPress no sirve de nada, porque WordPress no puede comunicarse con él.

## Solución de problemas

**El complemento lleva mucho tiempo en PENDING.** El aprovisionador se ejecuta según un calendario, no de forma instantánea. Deje la página abierta, ya que se actualiza sola, y vuelva a comprobarlo más tarde. Si no ha cambiado tras varios ciclos, abra un ticket de soporte con el dominio del sitio y el tipo de complemento.

**El aprovisionamiento FAILED.** Lea el error en la fila. Elimine el complemento fallido y vuelva a solicitarlo, lo cual es seguro: una fila fallida nunca tuvo una base de datos activa detrás.

**Copiar conexión no hace nada.** Algunos navegadores bloquean la escritura en el portapapeles cuando la pestaña no está enfocada. Haga clic primero en la página y luego vuelva a hacer clic en el botón.

**La aplicación no puede conectarse.** Compruebe tres cosas en orden: que el estado del complemento sea **ACTIVE**, que haya copiado la cadena en lugar de volver a escribirla, y que su aplicación esté leyendo el valor que realmente estableció y no uno antiguo de un despliegue anterior. Por lo general es necesario reiniciar antes de que se aplique la nueva configuración.

**Las conexiones se rechazan tras un nuevo despliegue.** Confirme que la cadena de conexión en su configuración sigue coincidiendo con la de esta página. Eliminar y volver a solicitar un complemento crea un nuevo usuario y una nueva contraseña, por lo que una cadena antigua no funcionará.

## A dónde ir a continuación

- [Almacenar secretos de aplicación para un sitio](https://support.kapsulehost.com/es-es/site-secrets), el lugar adecuado para guardar la cadena de conexión.
- [Conexión a su base de datos mediante un túnel SSH](https://support.kapsulehost.com/es-es/database-ssh-tunnel) para la base de datos MySQL integrada.
- [Configuración del sitio](https://support.kapsulehost.com/es-es/site-settings) para el resto de la configuración a nivel de sitio.
