┌─────────────────┐ ┌──────────────────┐ ┌─────────────┐
│ Vercel │────▶│ Google Cloud │────▶│ Supabase │
│ (Frontend) │ │ (Backend) │ │ (Database) │
│ Next.js 16 │ │ FastAPI/Python │ │ PostgreSQL │
└─────────────────┘ └──────────────────┘ └─────────────┘
-
Connecter le repo
- Allez sur vercel.com
- Cliquez "Add New Project"
- Importez
MedouneSGB/AgriAgent - Sélectionnez le dossier
frontend
-
Configurer les variables d'environnement
NEXT_PUBLIC_SUPABASE_URL = <votre-url-supabase> NEXT_PUBLIC_SUPABASE_ANON_KEY = <votre-anon-key> NEXT_PUBLIC_API_URL = https://agriagent-backend-xxxxx-ew.a.run.app -
Déployer
- Framework: Next.js (auto-détecté)
- Root Directory:
frontend - Cliquez "Deploy"
# Installer Vercel CLI
npm i -g vercel
# Se connecter
vercel login
# Déployer (depuis le dossier frontend)
cd frontend
vercel --prod# Installer Google Cloud SDK
# https://cloud.google.com/sdk/docs/install
# Se connecter
gcloud auth login
# Configurer le projet
gcloud config set project VOTRE_PROJECT_IDcd backend
# Configurer les secrets (une seule fois)
gcloud secrets create ANTHROPIC_API_KEY --data-file=-
# Collez votre clé et appuyez Ctrl+D
gcloud secrets create SUPABASE_URL --data-file=-
gcloud secrets create SUPABASE_SERVICE_ROLE_KEY --data-file=-
gcloud secrets create SUPABASE_JWT_SECRET --data-file=-
# Optionnel: Twilio
gcloud secrets create TWILIO_ACCOUNT_SID --data-file=-
gcloud secrets create TWILIO_AUTH_TOKEN --data-file=-
gcloud secrets create TWILIO_PHONE_NUMBER --data-file=-
# Déployer avec Cloud Build
gcloud builds submit --config cloudbuild.yaml
# OU déploiement manuel
gcloud run deploy agriagent-backend \
--source . \
--region europe-west1 \
--platform managed \
--allow-unauthenticated \
--memory 512Mi \
--set-env-vars "APP_ENV=production,FRONTEND_URL=https://agriagent.vercel.app" \
--set-secrets "ANTHROPIC_API_KEY=ANTHROPIC_API_KEY:latest,SUPABASE_URL=SUPABASE_URL:latest,SUPABASE_SERVICE_ROLE_KEY=SUPABASE_SERVICE_ROLE_KEY:latest,SUPABASE_JWT_SECRET=SUPABASE_JWT_SECRET:latest"cd backend
# Déployer
gcloud app deploy app.yaml
# Configurer les variables (Console GCP > App Engine > Settings)
# Ajouter toutes les variables d'environnement manuellementVotre Supabase reste inchangé. Assurez-vous que :
- Tables créées (via
migration.sql) - RLS activé pour la sécurité
- URL autorisées dans Authentication > URL Configuration :
https://agriagent.vercel.apphttps://agriagent-backend-xxxxx-ew.a.run.app
Après le déploiement du backend, récupérez l'URL :
# Cloud Run
gcloud run services describe agriagent-backend --region europe-west1 --format="value(status.url)"
# App Engine
gcloud app browseMettez à jour NEXT_PUBLIC_API_URL dans Vercel avec cette URL.
curl https://agriagent-backend-xxxxx-ew.a.run.app/api/healthVisitez https://agriagent.vercel.app
Créez .github/workflows/deploy-backend.yml :
name: Deploy Backend to Cloud Run
on:
push:
branches: [main]
paths: ['backend/**']
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- uses: google-github-actions/deploy-cloudrun@v2
with:
service: agriagent-backend
source: ./backend
region: europe-west1| Service | Gratuit | Payant |
|---|---|---|
| Vercel | 100GB bandwidth/mois | ~$20/mois (Pro) |
| Cloud Run | 2M requêtes/mois | ~$5-20/mois |
| Supabase | 500MB DB, 50K users | ~$25/mois (Pro) |
| Anthropic | - | ~$15/1M tokens |
Total estimé pour usage modéré : $25-50/mois
Vérifiez FRONTEND_URL dans le backend pointe vers votre domaine Vercel.
Augmentez la mémoire : --memory 1Gi
Vérifiez les URLs autorisées dans Supabase Dashboard.