atelier

Arpeteria — Plateforme de diffusion culturelle savoyarde (Astro, Directus, Docker)

Plateforme de diffusion culturelle : monorepo Astro/Directus/PostgreSQL, orchestration Docker (6 services), reverse proxy Caddy, CI/CD par webhook.

Site en ligne : arpeteria.net-flow.fr — Code : github.com/Radiowar1792/arpeteria (dépôt public)

Contexte

Mon frère est conservateur dans un musée et passionné par la culture et la langue savoyarde (arpitan) : textes anciens, chansons, grammaires, créations contemporaines. Il avait besoin d’un outil pour référencer, numériser et diffuser ce patrimoine — sans dépendre de moi à chaque publication. J’ai conçu et déployé Arpeteria de bout en bout, seul, pour un vrai utilisateur non-technique — pas un exercice académique.

Ce que j’ai fait

Architecture & infrastructure — le cœur du projet

Développement & modélisation — pour prouver que ce n’est pas que de l’infra

Architecture de production

Caddy (reverse proxy, HTTPS auto)
  ├── arpeteria.net-flow.fr        → web (build statique Astro)
  └── admin.arpeteria.net-flow.fr  → directus:8055

                                 ├── database (PostgreSQL 16) — réseau "internal" uniquement
                                 └── volume /uploads (PDF, images)

umami (analytics) + umami-database  — réseau "umami" isolé

Pipeline de publication

Le conservateur publie une œuvre dans Directus


Flow Directus (déclencheur : "item publié")
        │  webhook

Service systemd (arpeteria-rebuild-webhook)

        ├── npm ci && npm run build   (Astro interroge l'API Directus,
        │                              génère une page HTML par œuvre + sitemap)
        ├── npx pagefind --site dist  (index de recherche)
        └── Redémarrage du conteneur Astro (Caddy route vers lui)


Site en ligne en ~2 minutes — le conservateur ne touche jamais à un terminal

Compétences mobilisées

Mené seul, de la conception à la mise en production, pour un vrai utilisateur non-technique : un projet complet plutôt qu’un exercice de formation. Il mobilise directement la conception d’infrastructure (B2.1 — architecture Docker multi-services, segmentation réseau), l’installation et configuration (B2.2 — déploiement VPS, Caddy, systemd), le travail en mode projet (B1.4 — monorepo, feuille de route, documentation de passation), la sécurisation (B3.3 — HTTPS automatique, CSP, cloisonnement réseau, secrets hors dépôt), et la conduite de projet (B3.5 — sauvegardes 3-2-1, documentation de passation). Le volet frontend/CMS (B1.3 — présence en ligne, B1.5 — mise à disposition de service) montre que la maîtrise du développement web et de la modélisation de données vient compléter, et non remplacer, les compétences systèmes et réseaux qui restent le cœur de ce projet.