Déployer sur Vercel
Configurer trois projets Vercel pour web, app et admin avec les bons paramètres de build et variables d'environnement.
Vue d'ensemble
ScaleRocket se déploie en trois projets Vercel séparés -- un pour chaque application. Chaque projet pointe vers le même dépôt Git mais utilise des répertoires racines et des commandes de build différents.
Configuration des projets
1. Site Marketing (apps/web)
| Paramètre | Valeur |
|---|---|
| Framework | Next.js |
| Root Directory | apps/web |
| Build Command | cd ../.. && pnpm turbo build --filter=web |
| Output Directory | .next |
| Install Command | cd ../.. && pnpm install |
2. Tableau de bord utilisateur (apps/app)
| Paramètre | Valeur |
|---|---|
| Framework | Vite |
| Root Directory | apps/app |
| Build Command | cd ../.. && pnpm turbo build --filter=app |
| Output Directory | dist |
| Install Command | cd ../.. && pnpm install |
3. Panneau d'administration (apps/ops)
| Paramètre | Valeur |
|---|---|
| Framework | Vite |
| Root Directory | apps/ops |
| Build Command | cd ../.. && pnpm turbo build --filter=ops |
| Output Directory | dist |
| Install Command | cd ../.. && pnpm install |
Étape par étape
Créer le premier projet
- Allez sur vercel.com/new.
- Importez votre dépôt Git.
- Définissez le Root Directory sur
apps/web. - Remplacez la Build Command par :
cd ../.. && pnpm turbo build --filter=web - Ajoutez les variables d'environnement (voir ci-dessous).
- Cliquez sur Deploy.
Créer les deuxième et troisième projets
Répétez les mêmes étapes pour apps/app et apps/ops, en changeant le répertoire racine et le nom du filtre.
Astuce : Vous pouvez importer le même dépôt plusieurs fois dans Vercel. Chaque import crée un projet séparé.
Variables d'environnement
apps/web
NEXT_PUBLIC_WEB_URL = https://yourdomain.com
NEXT_PUBLIC_APP_URL = https://app.yourdomain.comNote : Le site marketing n'a PAS besoin de clés Supabase ou Stripe. Il a seulement besoin de connaître les URLs pour pouvoir créer des liens vers le tableau de bord.
apps/app
VITE_SUPABASE_URL = https://xxx.supabase.co
VITE_SUPABASE_ANON_KEY = eyJ...
VITE_WEB_URL = https://yourdomain.comapps/ops
VITE_SUPABASE_URL = https://xxx.supabase.co
VITE_SUPABASE_ANON_KEY = eyJ...
# ⚠ ATTENTION : Les clés service role ne doivent JAMAIS être préfixées avec VITE_ —
# Vite expose toutes les variables VITE_ dans le bundle client. Utilisez un nom
# sans préfixe pour que la clé reste côté serveur uniquement.
SUPABASE_SERVICE_ROLE_KEY = eyJ...Définissez-les dans chaque projet Vercel sous Settings > Environment Variables.
Domaines personnalisés
Structure de domaines recommandée :
| Application | Domaine |
|---|---|
apps/web | yourdomain.com |
apps/app | app.yourdomain.com |
apps/ops | admin.yourdomain.com |
Configurer dans Vercel
- Allez dans les Settings > Domains de votre projet.
- Ajoutez votre domaine personnalisé.
- Suivez les instructions DNS (ajoutez un enregistrement CNAME ou A).
- Vercel provisionne automatiquement un certificat SSL.
Mettre à jour la configuration
Après avoir configuré les domaines, mettez à jour packages/config/src/site.ts :
export const siteConfig = {
url: "https://yourdomain.com",
appUrl: "https://app.yourdomain.com",
opsUrl: "https://admin.yourdomain.com",
// ...
};Et mettez à jour les secrets des Edge Functions Supabase :
pnpm supabase secrets set SITE_URL=https://yourdomain.com
pnpm supabase secrets set APP_URL=https://app.yourdomain.comDétection du monorepo
Vercel détecte automatiquement les workspaces pnpm. Si les builds échouent :
- Assurez-vous que
pnpm-workspace.yamlest à la racine du dépôt. - Définissez correctement le Root Directory dans chaque projet.
- Activez Include source files outside of the Root Directory dans les paramètres du projet (généralement auto-détecté).
Cache de build
Le cache distant de Turborepo accélère les builds CI. Pour l'activer :
- Exécutez
pnpm turbo loginetpnpm turbo linkdans votre dépôt. - Ou définissez les variables d'environnement
TURBO_TOKENetTURBO_TEAMdans chaque projet Vercel.
Cela permet à Turborepo de sauter la reconstruction des packages qui n'ont pas changé.
Déclencheurs de déploiement
Par défaut, Vercel déploie à chaque push sur main. Chaque projet ne se reconstruit que lorsque ses fichiers pertinents changent (Vercel détecte cela via le paramètre root directory).
Pour affiner, ajoutez des commandes Ignored Build Step dans chaque projet :
# apps/web -- only deploy if web or packages changed
npx turbo-ignore webFini ? Marquez cette page comme terminée.