Guide d'Installation
Ce guide explique comment installer et configurer l'API 2MN Services.
📋 Prérequis
- Node.js v14 ou supérieur
- MongoDB (local ou MongoDB Atlas)
- npm ou yarn
🚀 Installation Rapide
1. Cloner le projet
bash
git clone <repository-url>
cd api-entreprises2. Installer les dépendances
bash
npm install3. Configurer les variables d'environnement
bash
cp .env.example .envÉditez le fichier .env :
env
# Application
NODE_ENV=development
PORT=3000
# Base de données
MONGODB_URI=mongodb://localhost:27017/entreprises
# Sécurité
JWT_SECRET=votre_secret_jwt_tres_long_et_securise_ici
# API Externe (optionnel)
API_ENTREPRISE_TOKEN=votre_token_api_entreprise
# CORS
CORS_WHITELIST=https://2mnservices.alwaysdata.net,http://localhost:8080
# Cache (en secondes)
CACHE_TTL=36004. Importer les données des communes
Pour utiliser l'API Géographique, vous devez importer les données :
bash
npm run import:communesCela va :
- Télécharger ~59 Mo de données depuis data.gouv.fr
- Importer ~35 000 communes dans MongoDB
- Créer les index nécessaires
⏱️ Durée : 2-5 minutes selon votre connexion
5. Démarrer le serveur
Mode développement (avec rechargement automatique) :
bash
npm run devMode production :
bash
npm start6. Vérifier l'installation
bash
# Health check
curl https://2mnservices.alwaysdata.net/health
# Test API Geo
curl "https://2mnservices.alwaysdata.net/communes?nom=Paris&limit=1"
# Test API NAF
curl "https://2mnservices.alwaysdata.net/api/naf/code?professionalField=serrurerie"⚙️ Configuration Avancée
Variables d'environnement
| Variable | Description | Défaut | Requis |
|---|---|---|---|
NODE_ENV | Environnement (development/production) | development | ✅ |
PORT | Port du serveur | 3000 | ❌ |
MONGODB_URI | URI MongoDB | - | ✅ |
JWT_SECRET | Clé secrète JWT | - | ✅ |
API_ENTREPRISE_TOKEN | Token API Entreprise | - | ❌ |
CORS_WHITELIST | Origines CORS autorisées | * | ❌ |
CACHE_TTL | Durée du cache (secondes) | 3600 | ❌ |
MongoDB
Local :
bash
# Démarrer MongoDB
mongod --dbpath /chemin/vers/data
# URI
MONGODB_URI=mongodb://localhost:27017/entreprisesMongoDB Atlas :
bash
MONGODB_URI=mongodb+srv://user:password@cluster.mongodb.net/entreprises?retryWrites=true&w=majoritySécurité
⚠️ Important :
-
Utilisez un
JWT_SECRETlong et aléatoire (> 32 caractères) -
Ne commitez jamais le fichier
.env - En production, utilisez HTTPS
-
Limitez les origines CORS (
CORS_WHITELIST)
📊 Scripts Disponibles
bash
# Démarrage
npm start # Mode production
npm run dev # Mode développement
# Import de données
npm run import:communes # Importer les communes
# Maintenance
npm run lint # Vérifier le code
npm run lint:fix # Corriger le code
npm run clean # Nettoyer et réinstaller🐛 Dépannage
Problème : "Cannot connect to MongoDB"
Solution :
bash
# Vérifier que MongoDB tourne
mongo --eval "db.adminCommand('ping')"
# Ou avec mongosh
mongosh --eval "db.adminCommand('ping')"Problème : "Import des communes échoue"
Solution :
bash
# Vérifier la connexion MongoDB
npm start
# Puis réessayer l'import
npm run import:communesProblème : "Port déjà utilisé"
Solution :
bash
# Changer le port dans .env
PORT=3001
# Ou tuer le processus existant
npx kill-port 3000🔄 Mise à jour des données
Pour mettre à jour les données des communes :
bash
# Supprimer les anciennes données
mongo entreprises --eval "db.communes.drop()"
# Réimporter
npm run import:communes📈 Production
Optimisations
- Cache : Activez le cache (déjà configuré par défaut)
- Compression : Activez la compression gzip (déjà actif)
- PM2 : Utilisez PM2 pour la gestion des processus
bash
# Installer PM2
npm install -g pm2
# Démarrer avec PM2
pm2 start server.js --name "api-entreprises"
# Sauvegarder la configuration
pm2 save
pm2 startupMonitoring
bash
# Logs
pm2 logs api-entreprises
# Statistiques
pm2 monit🎯 Prochaines étapes
Une fois l'installation terminée :
- 📖 Consultez la documentation des APIs
- 🔧 Configurez votre client API
- 🚀 Commencez à développer !
🆘 Besoin d'aide ?
- 📧 Email : support@2mn.services
- 🐛 Issues : GitHub Issues