ES
Inicia sesión Crea tu cuenta

Cómo instalar Directus en Saplo (headless CMS)

Contentful puede facturar miles de euros al mes por un proyecto con tráfico real, porque pagas por cada llamada a la API, no por el simple hosting del contenido. Directus es un CMS headless de código abierto que genera un panel de administración directamente desde el esquema de tu base de datos y expone REST y GraphQL sin necesidad de escribir backend, y lo instalas en tu propio Box sin límite de consultas.

Grzegorz Kalmus ·

Una agencia que crea un sitio web o una aplicación a medida para un cliente, tarde o temprano se encuentra con la pregunta de dónde debe residir el contenido: textos, fotos de productos, entradas de blog, datos que se muestran en el frontend. Contentful resuelve este problema, pero cobra por el número de llamadas a la API, por lo que la factura crece con el tráfico del sitio web del cliente, incluso si el contenido en sí no cambia. Directus es un CMS headless de código abierto que hace lo mismo sin un contador de consultas: conectas una base de datos, obtienes un panel de administración listo, generado automáticamente a partir del esquema de esa base de datos, y API REST y GraphQL al instante. A continuación, te explicamos paso a paso cómo instalar Directus en Saplo.

Por qué Directus en lugar de Contentful

Contentful y otros CMS headless de pago tienen dos características que más afectan a las agencias que trabajan para varios clientes a la vez:

  • facturación basada en el número de llamadas a la API: cuanto más tráfico genera la web del cliente, mayor es la factura mensual, y con varios proyectos en la misma cuenta, los costes se suman.
  • el modelo de contenido debe construirse manualmente desde cero en el panel del proveedor: Directus, en cambio, lee el esquema de la base de datos existente y genera automáticamente un panel de administración a partir de él; las colecciones corresponden a las tablas y los campos a las columnas.

Directus no es una base de datos de contenido separada del resto del sistema, sino una capa sobre tu propia base de datos. Si la agencia ya tiene un modelo de datos diseñado para un proyecto específico, Directus lo expone como una API en lugar de obligar a reescribir la estructura a un formato de terceros.

Requisitos

Para instalar Directus en Saplo, necesitas:

  • Un Box con Docker en ejecución (el motor lo activa automáticamente al instalar desde el Catálogo de aplicaciones; se requiere anidamiento en el contenedor, lo cual Saplo tiene por defecto).
  • Mínimo 1 GB de RAM libre en el Box y 3 GB de espacio en disco, es decir, el plan Box M o superior.
  • Un dominio o subdominio *.saploapp.pl incluido en el precio de cada plan, donde se alojará el panel de Directus.
  • Tu propio contenedor PostgreSQL. El motor de Saplo tiene una base de datos compartida solo para MySQL/MariaDB, por lo que Directus recibe un contenedor dedicado postgres:16-alpine en el mismo docker-compose. No necesitas configurar nada manualmente.

Instalación paso a paso

  1. En el panel de Saplo, ve a Catálogo de aplicaciones y elige Directus (categoría "Datos").
  2. Indica la Box con un mínimo de 1 GB de RAM libre donde se instalará Directus, y el dominio o subdominio bajo el cual funcionará el panel.
  3. Confirma la instalación. El motor crea un contenedor dedicado de Postgres y un contenedor de Directus a partir de la imagen oficial directus/directus, genera los valores aleatorios KEY y SECRET requeridos por la aplicación, expone el panel únicamente en el loopback de la Box y lo conecta a nginx, que lo sirve bajo el dominio especificado con SSL gratuito. Solo se expone el puerto 443, no el puerto crudo del contenedor.
  4. El contenedor de Directus se inicia solo después de que Postgres informa que está listo (healthcheck pg_isready), y el motor verifica adicionalmente a través de docker compose up si el contenedor realmente funciona, porque el éxito del comando por sí solo no significa que el proceso interno no haya fallado poco después.
  5. Una vez finalizada la instalación, el panel de Directus está disponible en el dominio especificado.

Primera configuración

La imagen de Directus asume automáticamente una cuenta de administrador en el primer inicio con una base de datos vacía, por lo que, al igual que con Listmonk o Paperless-ngx, no tienes que pasar por un asistente de registro separado.

  1. Accede a la dirección de tu dominio, por ejemplo cms.saploapp.pl; los datos de inicio de sesión (correo electrónico y contraseña generada aleatoriamente) los encontrarás en el archivo DIRECTUS-SETUP.txt en el directorio de la aplicación en el Box.
  2. Cambia la contraseña de administrador inmediatamente después del primer inicio de sesión en Ajustes -> Usuarios; guarda los datos del archivo de configuración solo hasta que realices este cambio.
  3. En Ajustes de datos, crea tu primera Colección. Directus te sugiere campos para casos típicos, como texto, número, imagen o relación con otra colección, y cada colección es una tabla en la base de datos de Postgres.
  4. Abre la pestaña Ajustes -> Roles y permisos y configura el rol Público. Si tu frontend necesita leer contenido de la API sin iniciar sesión, desde aquí le otorgas acceso de solo lectura a las colecciones seleccionadas.
  5. Comprueba los endpoints generados en https://cms.saploapp.pl/items/<collection_name> (REST) y https://cms.saploapp.pl/graphql (GraphQL); ambos funcionan de inmediato, sin configuración adicional.

Directus en Saplo vs. Contentful

Contentful Directus en Saplo
Modelo de precios la tarifa aumenta con el número de llamadas a la API y registros coste fijo del Box, sin límite de consultas
Modelo de contenido lo construyes manualmente desde cero en el panel del proveedor generado automáticamente a partir del esquema de tu base de datos
Base de datos cerrada, acceso solo a través de la API del proveedor tu propio Postgres, tienes acceso completo a ella
API REST y GraphQL, límite de consultas dependiente del plan REST y GraphQL sin contador de llamadas
Dónde están los datos infraestructura de Contentful Tu Box

Preguntas frecuentes

¿Es Directus adecuado para un proyecto que ya tiene una base de datos diseñada? Sí, esa es su fortaleza: el panel de administración y la API se generan automáticamente a partir del esquema de la base de datos existente, por lo que no necesitas reescribir el modelo de datos para adaptarlo a un formato impuesto por el proveedor del CMS.

¿Es necesario configurar una base de datos Postgres antes de la instalación? No, el motor de Saplo configura un contenedor Postgres dedicado junto con Directus en el mismo docker-compose e inyecta los datos de conexión automáticamente. Para la instalación, no necesitas ninguna configuración externa.

¿La API de Directus tiene un límite en el número de llamadas? No, a diferencia de Contentful o servicios de pago similares, el número de consultas a REST y GraphQL está limitado exclusivamente por los recursos de Box, no por un contador en la lista de precios.

¿Se puede conectar Directus a un frontend en Next.js o a una aplicación móvil? Sí, para eso sirve Directus: el frontend o la aplicación móvil recupera el contenido a través de la API REST o GraphQL generada, y el equipo editorial del cliente lo edita en un panel separado, sin acceso al código.

¿Por qué las primeras credenciales de inicio de sesión deben buscarse en un archivo en el Box, y no en un correo electrónico? Directus crea automáticamente la cuenta de administrador al iniciar el contenedor por primera vez. El motor de Saplo guarda la contraseña generada en el archivo DIRECTUS-SETUP.txt en el directorio de la aplicación en lugar de enviarla por correo electrónico, siguiendo el mismo patrón que con otras aplicaciones con cuenta de inicio automática.

Si estás construyendo un proyecto con un frontend separado y necesitas un backend de contenido sin una factura por cada llamada a la API, escríbenos. Te ayudaremos a elegir el Box adecuado para la escala de tu proyecto.

  • #Agencias
  • #API
  • #Directus
  • #Headless CMS
  • #Guía