PT
Iniciar sessão Criar conta

Como instalar o Directus na Saplo (headless CMS)

O Contentful, para um projeto com tráfego real, pode emitir uma fatura de milhares de euros por mês, porque pagas por cada chamada API, e não apenas pelo alojamento do conteúdo. O Directus é um CMS headless de código aberto que gera um painel de administração diretamente a partir do esquema da tua base de dados e expõe REST e GraphQL sem escrever backend. Tu instalas na tua própria Box sem limite de consultas.

Grzegorz Kalmus ·

Mais cedo ou mais tarde, uma agência que cria um site ou uma aplicação para um cliente depara-se com a questão de onde deve estar o conteúdo: textos, fotos de produtos, posts de blog, dados apresentados no frontend. O Contentful resolve este problema, mas cobra pelo número de chamadas da API, pelo que a fatura aumenta com o tráfego do site do cliente, mesmo que o conteúdo em si não mude. O Directus é um CMS headless de código aberto que faz o mesmo sem um contador de queries: ligas uma base de dados, obténs um painel de administração pronto, gerado automaticamente a partir do esquema dessa base de dados, e uma API REST e GraphQL de imediato. Abaixo, passo a passo, como configurar o Directus no Saplo.

Porquê Directus em vez de Contentful

O Contentful e outros CMS headless pagos têm duas características que mais incomodam as agências que trabalham para vários clientes ao mesmo tempo:

  • faturação por número de chamadas de API - quanto mais tráfego o site do cliente gera, maior a fatura mensal, e com vários projetos numa só conta, os custos somam-se,
  • o modelo de conteúdo tem de ser construído manualmente a partir do zero no painel do fornecedor - o Directus, em vez disso, lê um esquema de base de dados existente e gera um painel de administração a partir dele, as coleções correspondem a tabelas e os campos correspondem a colunas.

O Directus não é uma base de dados de conteúdo separada do resto do sistema, mas uma camada sobre a tua própria base de dados. Se a agência já tem um modelo de dados desenhado para um projeto específico, o Directus expõe-no como uma API em vez de te forçar a reescrever a estrutura para um formato de terceiros.

Requisitos

Para instalares o Directus no Saplo, precisas de:

  • Um Box com o Docker a funcionar (o motor ativa-o automaticamente ao instalar a partir do catálogo, é necessário o nesting num contentor, algo que o Saplo tem por padrão),
  • No mínimo 1 GB de RAM livre no Box e 3 GB de espaço em disco, ou seja, o plano Box M ou superior,
  • Um domínio ou subdomínio *.saploapp.pl incluído em cada plano, onde será instalado o painel do Directus,
  • O teu próprio contentor PostgreSQL. O motor Saplo tem uma base de dados partilhada apenas para MySQL/MariaDB, então o Directus recebe um contentor dedicado postgres:16-alpine no mesmo docker-compose. Não precisas de configurar nada manualmente.

Instalação passo a passo

  1. No Painel Saplo, acede ao Catálogo de aplicações e seleciona Directus (categoria "Dados").
  2. Indica uma Box com, no mínimo, 1 GB de RAM livre, onde será instalado o Directus, e o domínio ou subdomínio sob o qual o painel irá operar.
  3. Confirma a instalação. O motor irá criar um contentor Postgres dedicado e um contentor Directus a partir da imagem oficial directus/directus, gerar valores aleatórios KEY e SECRET necessários para a aplicação, expor o painel apenas no loopback da Box e conectar ao Nginx, que o servirá sob o domínio indicado com SSL gratuito. Apenas a porta 443 é exposta externamente, não a porta bruta do contentor.
  4. O contentor Directus só inicia depois de o Postgres reportar que está pronto (healthcheck pg_isready), e o motor verifica adicionalmente, após docker compose up, se o contentor está realmente a funcionar, pois o sucesso do comando por si só não significa que o processo interno não tenha falhado momentos depois.
  5. Após a conclusão da instalação, o painel Directus estará disponível sob o domínio indicado.

Primeira configuração

A imagem do Directus cria automaticamente uma conta de administrador na primeira inicialização, numa base de dados vazia. Assim, como no Listmonk ou no Paperless-ngx, não passas por um assistente de registo separado.

  1. Acede ao endereço do domínio, por exemplo cms.saploapp.pl, os dados de acesso (e-mail e palavra-passe gerada aleatoriamente) podem ser encontrados no ficheiro DIRECTUS-SETUP.txt no diretório da aplicação na Box.
  2. Altera a palavra-passe do administrador imediatamente após o primeiro login em Definições -> Utilizadores. Mantém os dados do ficheiro de configuração apenas até esta alteração.
  3. Em Definições de dados, cria a primeira Coleção. O Directus propõe imediatamente campos para casos típicos, por exemplo, texto, número, imagem, relação com outra coleção, e cada coleção é uma tabela na base de dados Postgres.
  4. Abre o separador Definições -> Funções e permissões e configura a função Público. Se o frontend tiver de ler conteúdo da API sem login, é aqui que lhe dás acesso apenas de leitura a coleções selecionadas.
  5. Verifica os endpoints gerados em https://cms.saploapp.pl/items/<collection_name> (REST) e https://cms.saploapp.pl/graphql (GraphQL). Ambos funcionam imediatamente, sem configuração adicional.

Directus na Saplo vs. Contentful

Contentful Directus na Saplo
Modelo de Preços A taxa aumenta com o número de chamadas de API e registos Custo fixo da Box, sem limite de consultas
Modelo de Conteúdo Criado manualmente no painel do fornecedor a partir do zero Gerado automaticamente a partir do esquema da tua base de dados
Base de Dados Fechada, acesso apenas através da API do fornecedor PostgreSQL próprio, com acesso total
API REST e GraphQL, limite de consultas dependente do plano REST e GraphQL sem contador de chamadas
Onde estão os dados Infraestrutura da Contentful A tua Box

Perguntas Frequentes

O Directus é adequado para um projeto que já tem uma base de dados projetada? Sim, esse é o seu ponto forte. O painel de administração e a API são gerados automaticamente a partir do esquema da base de dados existente, para que não precises de reescrever o modelo de dados para o formato imposto pelo fornecedor do CMS.

Preciso de configurar a base de dados Postgres manualmente antes da instalação? Não, o motor Saplo configura um contentor Postgres dedicado juntamente com o Directus no mesmo docker-compose e injeta as informações de conexão automaticamente. Não precisas de nenhuma configuração externa para a instalação.

A API do Directus tem um limite de chamadas? Não, ao contrário do Contentful ou serviços pagos semelhantes, o número de consultas REST e GraphQL é limitado apenas pelos recursos da Box, e não por um contador na tabela de preços.

É possível ligar o Directus a um frontend em Next.js ou a uma aplicação móvel? Sim, é para isso que o Directus serve. O frontend ou a aplicação móvel obtém o conteúdo através da API REST ou GraphQL gerada, e a equipa editorial do cliente edita-o num painel separado, sem acesso ao código.

Por que motivo as primeiras credenciais de login devem ser procuradas num ficheiro na Box, e não num e-mail? O Directus cria a conta de administrador automaticamente na primeira vez que o contentor é iniciado. O motor Saplo guarda a palavra-passe gerada no ficheiro DIRECTUS-SETUP.txt no diretório da aplicação, em vez de a enviar por e-mail. É o mesmo padrão usado em outras aplicações com contas iniciais automáticas.

Se estás a construir um projeto com um frontend separado e precisas de um backend de conteúdo sem faturas por cada chamada de API, contacta-nos. Ajudaremos a escolher a Box certa para a escala do teu projeto.

  • #Agências
  • #API
  • #Directus
  • #Headless CMS
  • #Guia