C4-arkitektur (LikeC4)
Status: under opbygning. Vi dokumenterer al software-arkitektur med C4-modellen, skrevet som LikeC4-DSL (
*.c4) — se beslutningen i../adr/0002-c4-med-likec4.md.model.c4er single source of truth; billeder + interaktiv viewer genereres fra den.
C4 kort fortalt
Fire zoom-niveauer — vi bruger normalt kun de to første:
| Niveau | Viser | Bruger vi? |
|---|---|---|
| 1 · System Context | Systemet + brugere + eksterne systemer (ingen teknologi) | Ja |
| 2 · Container | De deploybare dele inde i systemet (web-app, API, DB, worker …) + teknologi | Ja |
| 3 · Component | Komponenter inde i én container | Kun ved behov |
| 4 · Code | Klasser/kode | Nej (springes over) |
Plus supplerende: System Landscape (hele porteføljen), Dynamic (et flow), Deployment (kør-på-infra).
⚠️ Vigtigt begreb: en C4-"Container" er IKKE en Docker/OCI-container. Det er et deploybart/ eksekverbart element (fx en web-app, et API, en database, en worker). Vi bruger "container" om OCI andre steder i repoet — forveksl dem ikke.
Konventioner
- Minimum Context + Container pr. system. Skip Code-niveau.
- Ét diagram = ét view på ét niveau; bland aldrig niveauer.
- Titel + (ved behov) beskrivelse på hvert view. Predikat-rækkefølge er betydende (
excluderammer kun detincludeallerede har taget med). - Diagrammer opdateres i samme PR som den arkitekturændring de afspejler (levende dokumentation).
- Værktøjsvalg er fanget i ADR-0002; ændres det, skrives en ny ADR.
Filer
model.c4— hele modellen (specification + model + views). Aktuelt: System Landskab + Website OS Context + Website OS Container. Udvid trinvist pr. system.assets/— genererede billeder (PNG) som MkDocs embedder. Genereres (ikke håndlavet) — se nedenfor.
Render lokalt (kræver Node ≥ 22)
```bash
Interaktiv preview i browseren (hot reload) — brug denne til at validere/justere views:
npx likec4@1.59.1 serve
Validér DSL:
npx likec4@1.59.1 validate
Eksportér billeder til MkDocs (kræver Playwright/Chromium — CLI'en prompter install):
npx likec4@1.59.1 export png -o assets
→ assets/index.png, assets/websiteos_context.png, assets/websiteos_container.png
```
Kør export png og commit billederne i assets/ når du ændrer model.c4, så portalen (MkDocs) viser
det opdaterede diagram. (Vi kan senere flytte dette til et CI-step.)
Den rigtige, interaktive viewer (senere)
Samme model.c4 kan drive LikeC4's egen interaktive, zoombare viewer som et separat Cloudflare
Pages-site — nul genoptegning:
bash
npx likec4@1.59.1 build -o dist # statisk interaktivt site (Node ≥ 22)
Se ../../docs-portal.md for hvordan man kobler både MkDocs-portalen og (senere)
LikeC4-vieweren på Cloudflare Pages.
Diagrammer
Når billederne er genereret (export png -o assets), vises de her:



Ses billederne ikke endnu? Så er
export pngikke kørt/committet endnu — kør kommandoen ovenfor.