Aller au contenu

Déploiement

Comment mettre LObsTer en production.

Référence complète : demo-conductor/docs/TUTO_MISE_EN_LIGNE.md.

Architecture cible

flowchart TB
    user[Utilisateur] -->|HTTPS| caddy[Caddy
reverse proxy] caddy --> front[React frontend
Vite build] caddy --> api[FastAPI backend
uvicorn] api --> pg[(PostgreSQL 15
+ PostGIS)] api --> llm[Claude API
Sonnet 4.6] api --> stripe[Stripe
webhook] api --> brevo[Brevo
emails] api --> r2[R2 storage
rapports PDF] classDef front fill:#e87722,stroke:#0d1f3c,color:#fff classDef back fill:#0d1f3c,stroke:#e87722,color:#fff classDef ext fill:#2a7f7f,stroke:#0d1f3c,color:#fff class caddy,front front class api,pg back class llm,stripe,brevo,r2 ext

Checklist déploiement

Phase 1 — Prérequis (15 min)

  • Acheter domaine (OVH/Gandi) ~10€/an → l-obster.fr acheté ✅
  • Créer serveur Hetzner CX22 (4,51€/mois : 2 vCPU, 4 Go RAM, 40 Go SSD)
  • Ajouter sa clé SSH au serveur
  • Installer Docker : curl -fsSL https://get.docker.com | sh

Phase 2 — Déploiement (15 min)

  • Cloner le repo sur le serveur : git clone ... /root/app
  • Copier .env.examplebackend/.env
  • Remplir les variables d'environnement (voir tableau ci-dessous)
  • Générer JWT_SECRET : openssl rand -hex 32
  • Configurer DNS A record → IP serveur
  • chmod +x deploy/*.sh && ./deploy/deploy.sh
  • Attendre build Docker (2-3 min)
  • Vérifier https://l-obster.fr charge en HTTPS

Phase 3 — Intégrations (10 min)

  • Webhook Stripe : https://l-obster.fr/api/webhooks/stripe · event checkout.session.completed · copier le signing secret
  • Brevo sender : ajouter noreply@l-obster.fr · configurer SPF/DKIM DNS
  • Tester paiement test (carte 4242 4242 4242 4242)

Phase 4 — Sécurité & backups (5 min)

  • Cron backup : 0 3 * * * /root/app/deploy/backup.sh
  • UFW firewall : autoriser 22, 80, 443
  • Test restauration backup

Variables d'environnement

Variable Source Priorité Note
JWT_SECRET openssl rand -hex 32 🔴 CRITIQUE Invalide tous les tokens si changé
DATABASE_URL Docker Compose auto 🟢 auto
STRIPE_SECRET_KEY dashboard.stripe.com 🟡 haute sk_test_ puis sk_live_
STRIPE_WEBHOOK_SECRET config webhook 🟡 haute whsec_
BREVO_API_KEY app.brevo.com 🟡 haute xkeysib-
ANTHROPIC_API_KEY console.anthropic.com 🟡 moyenne sk-ant-
APP_BASE_URL 🟢 config https://l-obster.fr
CORS_ORIGINS 🟢 config https://l-obster.fr

Vérifications finales

  • Cadenas HTTPS vert sur le domaine
  • Page login fonctionne
  • Tunnel souscription complet (test card)
  • Email confirmation reçu
  • Dashboard admin accessible

Mises à jour

Depuis le PC de dev : bash git push origin main

Sur le serveur : bash cd /root/app && ./deploy/deploy.sh

Passage en mode live Stripe

  1. Remplacer sk_test_ par sk_live_ dans .env
  2. Recréer le webhook en mode live
  3. ./deploy/deploy.sh

Attention

Avant le switch live, faire au moins 5 transactions test complètes et vérifier les emails Brevo, la génération du rapport, et le téléchargement depuis l'espace client.