workshop

Arpeteria — Savoyard Cultural Heritage Platform (Astro, Directus, Docker)

Cultural heritage platform built solo: Astro/Directus/PostgreSQL monorepo, Docker orchestration (6 services), Caddy reverse proxy, webhook CI/CD.

Live site: arpeteria.net-flow.fr — Code: github.com/Radiowar1792/arpeteria (public repository)

Context

My brother is a museum curator, passionate about Savoyard/Arpitan culture and language. He needed a way to reference, digitise and publish this heritage — old texts, songs, grammars, contemporary works — without depending on me every time he wanted to publish something. I designed and deployed Arpeteria end-to-end, on my own, for a real non-technical user, not as an academic exercise.

What I did

Architecture & infrastructure — the core of the project

Development & data modelling — proving this isn't infra-only

Production architecture

Caddy (reverse proxy, auto HTTPS)
  ├── arpeteria.net-flow.fr        → web (Astro static build)
  └── admin.arpeteria.net-flow.fr  → directus:8055
                                 │
                                 ├── database (PostgreSQL 16) — network: internal only
                                 └── /uploads volume (PDFs, images)

umami (analytics) + umami-database  — isolated "umami" network

Publishing pipeline

Curator publishes a work in Directus
        │
        ▼
Directus Flow (trigger: "item published")
        │  webhook
        ▼
systemd service (arpeteria-rebuild-webhook)
        │
        ├── npm ci && npm run build   (Astro queries the Directus API,
        │                              generates one HTML page per work + sitemap)
        ├── npx pagefind --site dist  (search index)
        └── Astro container restart (Caddy reverse-proxies to it)
        │
        ▼
Site live in ~2 minutes — the curator never touches a terminal

Skills demonstrated

Led solo, from architecture to production, for a real non-technical end user — a complete project rather than a training exercise. It directly covers infrastructure design (B2.1 — multi-service Docker architecture, network segmentation), installation & configuration (B2.2 — VPS deployment, Caddy, systemd), project management (B1.4 — monorepo, roadmap, handover docs), hardening (B3.3 — automatic HTTPS, CSP, network isolation, secrets kept out of the repo), and project governance (B3.5 — 3-2-1 backups, handover documentation). The frontend/CMS side (B1.3 — online presence, B1.5 — service availability) shows that web development and data modelling complement, rather than replace, the systems and network skills that remain the core of this project.