Indholdsfortegnelse

Introduktion

Formål

Formålet med dette dokument er at beskrive hvordan et udviklingsmiljø, til videreudvikling af GM-CMS, kan sættes op, samt hvordan koden bygges, deployes og testes.

Først beskrives de softwaremæssige krav, der er til miljøet, samt hvordan kode hentes og bygges. Dernæst beskrives deployment-miljøet.

Kodestrukturen, kodemæssige afhængigheder til tredjeparts moduler og de forskellige servicemodulers ansvar og design beskrives sidst i dette dokument sammen med testdesign.

Sammenhæng med øvrige dokumenter

Dette dokument er en del af den samlede dokumentation for GM-CMS.

Dokumentets relation til de øvrige dokumenter er beskrevet i dokumentationsoversigten for GM-CMS.

Læsevejledning

Læseren af dette dokument forventes at være bekendt med opbygningen af "Min Graviditet"-projektet samt med hvilket indhold GM-CMS skal servicere "Min Graviditet"-appen med.

Introduktion til GM-CMS

GM-CMS er baseret på Strapi (v5), et populært open-source headless CMS, der muliggør hurtig udvikling af CMS-applikationer. Design og arkitektur beskrives detaljeret i de følgende afsnit med fokus på opsætning af et udviklingsmiljø og bygning af komponenterne til systemet.

Opsætning af udviklingsmiljø

Koden ligger i Git-repositoriet: git.nspop.dk/projects/bff/repos/min-graviditet-content-management-system 

Krav til software

Følgende krav skal være opfyldt i udviklingsmiljøet:

•    Node.js: Kun Active LTS eller Maintenance LTS versioner understøttes (aktuelt v18, v20 og v22). Ulige nummererede versioner af Node, kendt som "current" versioner af Node.js, understøttes ikke (f.eks. v19, v21).
•    Node.js package manager: npm (v6 og højere), yarn, pnpm eller tilsvarende.
•    Supporteret PostgreSQL database version: Anbefalet – v14.0, minimum – v12.0.

I følgende antages det at npm Node.js package manager anvendes.

Bygge komponeten

GM-CMS bygges ved at køre kommandoen:

npm run build

 Import/export af konfigurationer

Import af konfigurationer: 

npm run cs import

Eksport af konfigurationer:

npm run cs export

Konfigurationer placeres i mappen ./config/sync.

 Import/export af data

Import af data: 

npm run strapi import -- -f cms-export.tar

Eksport af data:

npm run strapi export -- --file cms-export --no-compress --no-encrypt

Eksporteret data placeres i mappen cms-export.tar i project root.

Afvikling

Efter byg kan GM-CMS afvikles i development mode vha. kommandoen:

npm run develop

Eller i production mode vha. kommandoen:

npm run strapi

Desuden skal Meilisearch op at kører. Dette kan med fordel sættes op til at køre i en Docker-container:

docker run -it --rm -p 7700:7700 getmeili/meilisearch:latest meilisearch --master-key={CMS_MEILISEARCH_API_KEY}

CMS_MEILISEARCH_API_KEY skal sættes til samme værdi i .env.

Udviklers workstation

Når man udvikler kan det være praktisk at foretage lokal deployment → Ikke relevant.

Beskrivelse af systemdesign

Systemdesign er beskrevet i GM-CMS - Design- og arkitekturbeskrivelse.

Beskrivelse af kildekodens strukturering og design

Ikke relevant - Se dokumentation for Strapi.

Dokument Historik

3/4 2025Martin Henriksen/SDSEtablering af dokumentation
10/4 2025Dikte Straadt/TriforkInitiel udfyldning af dokumentation