> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gestugroup.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Déploiement

> Déploiement de la plateforme Gëstu sur Vercel, configuration DNS et CI/CD.

## Architecture de déploiement

| Composant           | Service  | URL                   |
| ------------------- | -------- | --------------------- |
| Application SaaS    | Vercel   | `app.gestugroup.com`  |
| Site institutionnel | Vercel   | `gestugroup.com`      |
| Documentation       | Mintlify | `docs.gestugroup.com` |
| Base de données     | Supabase | `xxxxx.supabase.co`   |
| DNS                 | OVH      | `gestugroup.com`      |

***

## Application SaaS

### Stack

* **Framework** : React 18 + TypeScript + Vite
* **State** : Zustand
* **Router** : React Router v6
* **Backend** : Supabase (PostgreSQL + Auth + Storage)

### Déploiement Vercel

Le déploiement est automatique à chaque push sur la branche `main` :

```
git push origin main → Vercel détecte → Build → Deploy
```

Durée : 2 à 3 minutes.

### Variables d'environnement Vercel

À configurer dans **Vercel → Project → Settings → Environment Variables** :

```
VITE_SUPABASE_URL        = https://xxxxx.supabase.co
VITE_SUPABASE_ANON_KEY   = eyJ...
```

<Warning>
  Ces variables sont préfixées `VITE_` pour être exposées au client. Ne jamais y mettre de clé secrète (service\_role key). La `anon key` est conçue pour être publique avec RLS activée.
</Warning>

***

## Site institutionnel (Astro)

### Stack

* **Framework** : Astro v6
* **Repo** : `github.com/gueyesoumar/gestu-website`

### Déploiement

Même principe : push sur `main` → build Astro → déploiement automatique sur Vercel.

```bash theme={null}
cd gestu-website
git add .
git commit -m "feat: description du changement"
git push
```

### Configuration du domaine racine

Dans Vercel (projet `gestu-website`) → Settings → Domains :

```
gestugroup.com
www.gestugroup.com
```

Dans OVH (Zone DNS) :

| Type    | Sous-domaine | Cible                   |
| ------- | ------------ | ----------------------- |
| `A`     | `@`          | `76.76.21.21`           |
| `CNAME` | `www`        | `cname.vercel-dns.com.` |

***

## Documentation (Mintlify)

### Configuration

1. Créer un compte sur [mintlify.com](https://mintlify.com)
2. Connecter le repo `gestu-docs` (GitHub)
3. Mintlify détecte `mint.json` automatiquement
4. Déploiement sur `xxxxx.mintlify.app`

### Domaine personnalisé `docs.gestugroup.com`

Dans Mintlify → Settings → Custom Domain : `docs.gestugroup.com`

Dans OVH (Zone DNS) :

| Type    | Sous-domaine | Cible                 |
| ------- | ------------ | --------------------- |
| `CNAME` | `docs`       | `cname.mintlify.com.` |

***

## Plan Vercel

**Plan actuel : Hobby**

Limitations à connaître :

* Pas de wildcard `*.gestugroup.com` — chaque sous-domaine partenaire doit être ajouté manuellement
* Pas de protection par mot de passe des previews
* Bandwidth : 100 GB/mois

Pour passer en Pro (wildcard, team collaboration) : [vercel.com/pricing](https://vercel.com/pricing)

***

## CI/CD

Pas de pipeline CI configuré actuellement. Le workflow est :

1. Développement en local
2. Tests manuels
3. `git push origin main`
4. Vercel build + deploy automatique
5. Vérification sur l'URL de production

<Tip>
  Pour ajouter des tests automatiques avant déploiement, configurez une GitHub Action qui exécute `npm run build` sur chaque PR. Vercel ne déploie que si le build passe.
</Tip>
