Lyon 8ᵉ · Lyon et 16 communes de la métropole
Un souci ? Décrivez-le en 30 secondes ↗

Architecture de référence validée · En production sur jasir.fr

Conception et architecture du portail JASS (Next.js, PostgreSQL & Docker)

Site métier auto-hébergeable avec moteur de devis, réservation transactionnelle et administration interne

Projet personnel, pas une référence client.Ce projet documente l’architecture réelle du site jasir.fr que vous consultez actuellement : aucun service tiers opaque pour les formulaires ou la prise de rendez-vous.

Contexte

La plupart des sites de prestataires locaux empilent des extensions lourdes ou redirigent leurs visiteurs vers des plateformes externes pour prendre rendez-vous, au détriment de la confidentialité des données, de la rapidité et de la cohérence de marque.

Besoin

Offrir aux clients particuliers et professionnels une expérience fluide, accessible (WCAG 2.2 AA) et rapide entièrement hébergée sur `jasir.fr`, tout en permettant au fondateur de gérer ses demandes, ses indisponibilités et son contenu en toute autonomie.

Architecture

Application monolithique modulaire Next.js compilée en mode standalone dans un conteneur Docker non-root, adossée à une base PostgreSQL transactionnelle. Un reverse proxy Caddy assure la terminaison TLS. Les pièces jointes de devis sont validées côté serveur (MIME, taille, renommage UUID) et stockées hors du dossier public.

SCHÉMA D’ARCHITECTURE · PLATEFORME WEB JASS AUTO-HÉBERGÉEHÉBERGEMENT DÉDIÉ MAÎTRISÉ
Schéma d’architecture de la plateforme jasir.fr avec Caddy, Next.js, PostgreSQL et sauvegardes chiffréesENTRÉE HTTPSReverse Proxy CaddyTLS auto · HTTP/3Headers de sécuritéAPPLICATION NEXT.JS (STANDALONE)• Pages publiques & SEO local Schema.org• API Devis (Zod, Rate-limit, Upload isolé)• Moteur RDV (Europe/Paris, Anti-doublon)• Zone Admin (/admin, Session HMAC + 2FA)Conteneur non-root · Healthcheck /api/healthPERSISTANCE TRANSACTIONNELLEPostgreSQL 17 + VolumesDevis, Créneaux, Audit & FichiersEXPLOITATION & CONTINUITÉRelais SMTP SPF/DKIM + BackupScripts backup.sh / restore.sh chiffrés
Figure 4 — Architecture monolithe modulaire auto-hébergée : formulaires, réservations et administration restent sous contrôle sur jasir.fr.

Briques mises en œuvre.

Technologies du projet Conception et architecture du portail JASS (Next.js, PostgreSQL & Docker)
TechnologieRôleStatut
Next.js App Router & TypeScriptRendu serveur (SSR/SSG), routes API typées et interface accessibleDéployable sur périmètre client
PostgreSQL & Drizzle ORMStockage transactionnel des devis, rendez-vous, créneaux et contenusDéployable sur périmètre client
Docker Compose & CaddyConteneurisation reproductible, healthchecks et terminaison HTTPSDéployable sur périmètre client
Zod & Sécurité applicativeValidation stricte des entrées, rate-limiting, jetons HMAC et sessions signéesDéployable sur périmètre client

Décisions techniques

  • Choix d’un monolithe modulaire Next.js + PostgreSQL plutôt qu’un découpage complexe : déploiement simple en une commande (`docker compose up -d`), sauvegardes unifiées et latence minimale.
  • Moteur de créneaux calculé côté serveur en fuseau `Europe/Paris` avec temps de battement configurable entre deux interventions et protection transactionnelle contre les réservations simultanées.
  • Jetons cryptographiques HMAC à durée de validité permettant au client de consulter ou d’annuler son rendez-vous sans avoir à créer de compte mot de passe.

Précautions de sécurité

  • Validation stricte côté serveur de tous les formulaires, limitation de débit (rate-limiting) par IP et champ honeypot anti-robots.
  • Administration `/admin` protégée côté serveur par cookie `HttpOnly` signé HMAC-SHA256, mot de passe haché `scrypt`, support TOTP 2FA et en-tête `X-Robots-Tag: noindex`.
  • Script de sauvegarde automatisé chiffrant le dump PostgreSQL et les pièces jointes avec vérification de restauration.

Résultat constaté

Plateforme rapide, sobre et entièrement maîtrisée, servant à la fois d’outil de travail quotidien pour JASS et de démonstration concrète de mon savoir-faire en création web.

Compromis et limites connues

Pour limiter les messages perdus en spam des e-mails de confirmation (notamment vers les boîtes Gmail/Outlook des clients), l’application s’appuie sur un relais SMTP authentifié configuré avec SPF, DKIM et DMARC plutôt qu’un envoi direct depuis une IP résidentielle.

Prochaine étape

Étudier une architecture proche pour votre structure ?

Décrivez votre cas : je réponds franchement, y compris quand la réparation ne vaut pas le coup.

AppelerMa panne