generated from bisco/codex-bootstrap
27 lines
1.3 KiB
Markdown
27 lines
1.3 KiB
Markdown
# Architecture
|
|
|
|
The system has four runtime components on the Docker Compose default network:
|
|
|
|
1. NGINX accepts requests for `azionelab.org` and routes them by path.
|
|
2. Astro renders the public single page and requests one aggregate JSON document.
|
|
3. Wagtail/Django manages editorial content, serves media in development, and exposes
|
|
the read-only `/api/site/home/` endpoint.
|
|
4. PostgreSQL persists Wagtail content and metadata.
|
|
|
|
NGINX sends `/admin`, `/api`, `/documents`, `/health`, `/media`, and `/static` paths to
|
|
Wagtail. All remaining paths go to Astro. Unknown virtual hosts receive a 404 response.
|
|
|
|
The aggregate response contains `settings`, `homepage`, `feature_cards`, `teacher`,
|
|
`lesson_info`, `shows`, and `gallery_items`. Image values contain browser-facing URLs
|
|
and alternative text. Only published home content and records marked for home display
|
|
are exposed. Astro validates/normalizes the response and falls back to checked-in
|
|
Italian demo content if fetching fails.
|
|
|
|
Wagtail's authenticated admin remains the only editing interface. The public frontend
|
|
has no database access and no public write API. Uploaded media is stored in a dedicated
|
|
Compose volume.
|
|
|
|
The deployment topology and content model are recorded in
|
|
[ADR-0001](adr/0001-headless-wagtail-astro.md) and
|
|
[ADR-0002](adr/0002-nginx-reverse-proxy.md).
|