docv/DEPLOYMENT.md
Sadrinho27 aedd3b9f10
Some checks failed
4NK Template Sync / check-and-sync (push) Failing after 1s
first commit
2025-09-29 16:57:49 +02:00

195 lines
3.8 KiB
Markdown

# 🚀 Guide de déploiement DocV avec envoi d'emails
## 📋 Prérequis
### 1. Variables d'environnement
Configurez ces variables sur votre plateforme de déploiement :
\`\`\`env
SMTP_HOST=votre-serveur-smtp
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=votre-email@domaine.com
SMTP_PASSWORD=votre-mot-de-passe-application
SMTP_FROM=votre-email@domaine.com
\`\`\`
⚠️ **Important** : Utilisez toujours des mots de passe d'application, jamais vos mots de passe principaux.
## 🌐 Déploiement sur Vercel
### 1. Installation Vercel CLI
\`\`\`bash
npm i -g vercel
\`\`\`
### 2. Configuration des variables
\`\`\`bash
vercel env add SMTP_HOST
vercel env add SMTP_PORT
vercel env add SMTP_SECURE
vercel env add SMTP_USER
vercel env add SMTP_PASSWORD
vercel env add SMTP_FROM
\`\`\`
### 3. Déploiement
\`\`\`bash
vercel --prod
\`\`\`
## 🔧 Déploiement sur Netlify
### 1. Variables d'environnement
Dans le dashboard Netlify :
- Site settings > Environment variables
- Ajoutez toutes les variables SMTP
### 2. Build settings
\`\`\`toml
# netlify.toml
[build]
command = "npm run build"
publish = ".next"
[build.environment]
NODE_VERSION = "18"
\`\`\`
## 🐳 Déploiement Docker
### 1. Dockerfile
\`\`\`dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]
\`\`\`
### 2. Variables d'environnement
\`\`\`bash
docker run -d \
-p 3000:3000 \
-e SMTP_HOST=votre-smtp-host \
-e SMTP_PORT=587 \
-e SMTP_USER=votre-email@domaine.com \
-e SMTP_PASSWORD=votre-mot-de-passe \
-e SMTP_FROM=votre-email@domaine.com \
docv-app
\`\`\`
## ✅ Test de l'envoi d'emails
### 1. Vérification des variables
\`\`\`bash
# Sur votre serveur
echo $SMTP_HOST
echo $SMTP_USER
\`\`\`
### 2. Test des formulaires
- Accédez à \`/contact\`
- Remplissez et envoyez le formulaire
- Vérifiez les logs serveur
- Vérifiez la réception dans votre boîte email
## 🔍 Debugging
### 1. Logs serveur
\`\`\`bash
# Vercel
vercel logs
# Netlify
netlify logs
# Docker
docker logs container-name
\`\`\`
### 2. Test SMTP manuel
\`\`\`javascript
// test-smtp.js
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
host: process.env.SMTP_HOST,
port: process.env.SMTP_PORT,
secure: process.env.SMTP_SECURE === 'true',
auth: {
user: process.env.SMTP_USER,
pass: process.env.SMTP_PASSWORD,
},
});
transporter.sendMail({
from: process.env.SMTP_FROM,
to: 'test@example.com',
subject: 'Test SMTP',
text: 'Test de configuration SMTP'
}).then(() => {
console.log('✅ SMTP fonctionne');
}).catch(err => {
console.error('❌ Erreur SMTP:', err);
});
\`\`\`
## 🔐 Sécurité
### 1. Variables d'environnement
- ✅ Jamais dans le code source
- ✅ Configurées sur la plateforme de déploiement
- ✅ Différentes par environnement (dev/prod)
### 2. Mots de passe d'application
- ✅ Utilisez des mots de passe d'application
- ✅ Pas les mots de passe principaux des comptes
- ✅ Révocables si compromis
## 📧 Configuration par fournisseur
### Protonmail
\`\`\`env
SMTP_HOST=smtp.protonmail.ch
SMTP_PORT=587
SMTP_SECURE=false
\`\`\`
### Gmail
\`\`\`env
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_SECURE=false
\`\`\`
### Serveur SMTP dédié
\`\`\`env
SMTP_HOST=mail.votre-domaine.com
SMTP_PORT=587
SMTP_SECURE=false
\`\`\`
## 🎯 Résultat attendu
Une fois déployé avec les bonnes variables :
- ✅ Formulaires fonctionnels
- ✅ Emails HTML formatés
- ✅ Réception dans votre boîte email
- ✅ Logs de confirmation
- ✅ Gestion d'erreurs robuste
## 📞 Support
En cas de problème :
1. Vérifiez les variables d'environnement
2. Consultez les logs serveur
3. Testez la configuration SMTP manuellement
4. Vérifiez les paramètres de votre fournisseur email