IT
Accedi Crea un account

Come installare Directus su Saplo (headless CMS)

Contentful per un progetto con traffico reale può emettere una fattura di migliaia di euro al mese, perché paghi ogni singola chiamata API, non solo l'hosting dei contenuti. Directus è un CMS headless open source che genera un pannello di amministrazione direttamente dallo schema del tuo database ed espone REST e GraphQL senza scrivere un backend, e tu lo installi sul tuo Box senza limiti di richieste.

Grzegorz Kalmus ·

Un'agenzia che crea un sito web o un'applicazione personalizzata per un cliente si imbatte prima o poi nella questione di dove debbano risiedere i contenuti: testi, foto dei prodotti, post di blog, dati visualizzati nel frontend. Contentful risolve questo problema, ma fattura in base al numero di chiamate API, quindi la fattura aumenta con il traffico sul sito del cliente, anche se il contenuto stesso non cambia. Directus è un CMS headless open source che fa la stessa cosa senza un contatore di query: colleghi un database, ottieni un pannello di amministrazione pronto, generato automaticamente dallo schema di quel database, e API REST e GraphQL immediatamente disponibili. Di seguito, passo dopo passo, come installare Directus su Saplo.

Perché Directus al posto di Contentful

Contentful e CMS headless a pagamento simili hanno due caratteristiche che sono particolarmente problematiche per le agenzie che lavorano per più clienti contemporaneamente:

  • Fatturazione in base al numero di chiamate API - maggiore è il traffico generato dal sito web del cliente, maggiore è la fattura mensile, e con diversi progetti su un unico account, i costi si sommano.
  • Il modello di contenuto deve essere costruito manualmente da zero nel pannello del fornitore - Directus, invece, legge uno schema di database esistente e genera automaticamente un pannello di amministrazione da esso; le collezioni corrispondono alle tabelle, i campi corrispondono alle colonne.

Directus non è un database di contenuti separato dal resto del sistema, ma uno strato sopra il tuo database. Se un'agenzia ha già un modello di dati progettato per un progetto specifico, Directus lo espone come API invece di costringere a riscrivere la struttura in un formato proprietario.

Requisiti

Per installare Directus su Saplo, hai bisogno di:

  • Un Box con Docker avviato (il motore lo avvia automaticamente durante l'installazione dal Catalogo delle applicazioni, è richiesto il nesting nel contenitore, che Saplo ha per impostazione predefinita),
  • Minimo 1 GB di RAM libera sul Box e 3 GB di spazio su disco, ovvero un piano Box M o superiore,
  • Un Dominio o sottodominio *.saploapp.pl incluso nel prezzo di ogni piano, dove verrà ospitato il Pannello di Directus,
  • Il tuo contenitore PostgreSQL: il motore Saplo ha un database condiviso solo per MySQL/MariaDB, quindi Directus riceve un contenitore dedicato postgres:16-alpine nello stesso docker-compose, non devi configurare nulla manualmente.

Installazione passo dopo passo

  1. Nel Pannello Saplo, vai su Catalogo delle applicazioni e seleziona Directus (categoria "Dati").
  2. Scegli un Box con almeno 1 GB di RAM libera, dove installerai Directus, e il dominio o sottodominio sotto cui funzionerà il pannello.
  3. Conferma l'installazione. Il motore crea un contenitore Postgres dedicato e un contenitore Directus dall'immagine ufficiale directus/directus, genera i valori casuali KEY e SECRET richiesti dall'applicazione, espone il pannello solo sul loopback del Box e lo collega a Nginx, che lo serve sotto il dominio specificato con SSL gratuito. All'esterno è esposta solo la porta 443, non la porta raw del contenitore.
  4. Il contenitore Directus si avvia solo dopo che Postgres segnala la prontezza (healthcheck pg_isready), e il motore verifica ulteriormente dopo docker compose up se il contenitore è effettivamente in esecuzione, poiché il successo del comando da solo non significa che il processo all'interno non sia crashato poco dopo.
  5. Al termine dell'installazione, il pannello Directus è disponibile sotto il dominio specificato.

Prima configurazione

L'immagine di Directus imposta automaticamente un account amministratore al primo avvio su un database vuoto, quindi, come per Listmonk o Paperless-ngx, non devi passare attraverso una procedura di registrazione separata.

  1. Vai all'indirizzo del dominio, ad esempio cms.saploapp.pl, le credenziali di accesso (e-mail e password generate casualmente) le trovi nel file DIRECTUS-SETUP.txt nella directory dell'applicazione sul Box.
  2. Cambia la password dell'amministratore subito dopo il primo accesso in Impostazioni -> Utenti, tieni i dati dal file di configurazione solo fino a quando non effettui questa modifica.
  3. Nelle Impostazioni dati crea la prima Collezione, Directus suggerisce immediatamente i campi per i casi tipici, ad esempio testo, numero, immagine, relazione con un'altra collezione, e ogni collezione è una tabella nel database Postgres.
  4. Apri la scheda Impostazioni -> Ruoli e permessi e configura il ruolo Public, se il frontend deve leggere i contenuti dall'API senza accesso, è qui che gli dai l'accesso in sola lettura a collezioni selezionate.
  5. Controlla gli endpoint generati su https://cms.saploapp.pl/items/<collection_name> (REST) e https://cms.saploapp.pl/graphql (GraphQL), entrambi funzionano immediatamente, senza configurazioni aggiuntive.

Directus su Saplo contro Contentful

Contentful Directus su Saplo
Modello di prezzo il costo aumenta con il numero di chiamate API e di record costo fisso del Box, senza limiti di query
Modello di contenuto lo costruisci manualmente da zero nel pannello del fornitore generato automaticamente dallo schema del tuo database
Database chiuso, accesso solo tramite API del fornitore il tuo Postgres, hai accesso completo ad esso
API REST e GraphQL, limite di query dipendente dal piano REST e GraphQL senza contatore di chiamate
Dove sono i dati infrastruttura di Contentful il tuo Box

Domande frequenti

Directus è adatto a un progetto che ha già un database progettato? Sì, questo è il suo punto di forza. Il pannello di amministrazione e l'API vengono generati automaticamente dallo schema del database esistente, quindi non è necessario riscrivere il modello di dati per adattarlo al formato imposto dal fornitore del CMS.

È necessario configurare un database Postgres da soli prima dell'installazione? No, il motore Saplo configura un container Postgres dedicato insieme a Directus nello stesso docker-compose e inietta automaticamente i dati di connessione. Per l'installazione, non hai bisogno di alcuna configurazione esterna.

L'API di Directus ha un limite al numero di chiamate? No, a differenza di Contentful o servizi a pagamento simili, il numero di query REST e GraphQL è limitato solo dalle risorse di Box, non da un contatore nel listino prezzi.

È possibile collegare Directus a un frontend in Next.js o a un'applicazione mobile? Sì, questo è lo scopo di Directus. Il frontend o l'applicazione mobile recupera il contenuto tramite l'API REST o GraphQL generata, e il team editoriale del cliente lo modifica in un pannello separato, senza accesso al codice.

Perché le prime credenziali di accesso devono essere cercate in un file sul Box e non in un'e-mail? Directus crea automaticamente un account amministratore al primo avvio del container. Il motore Saplo salva la password generata nel file DIRECTUS-SETUP.txt nella directory dell'applicazione invece di inviarla via e-mail, lo stesso modello di altre applicazioni con un account iniziale automatico.

Se stai costruendo un progetto con un frontend separato e hai bisogno di un backend di contenuti senza costi per ogni chiamata API, scrivici, ti aiuteremo a scegliere il Box più adatto alle dimensioni del tuo progetto.

  • #Agenzie
  • #API
  • #Directus
  • #Headless CMS
  • #Guida