Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code : Skills Commencer
Sections
Administration Linux Serveurs virtuels

Comment installer et configurer MongoDB sur un VPS (Guide complet 2024)

MongoDB est l’une des bases de données NoSQL les plus largement adoptées au monde — et pour une bonne raison. Son modèle de document flexible, ses performances élevées en lecture/écriture, et sa scalabilité horizontale native en font le backend incontournable pour les APIs modernes, les plateformes SaaS, les CRM, les moteurs e-commerce et les applications gourmandes en données. Contrairement aux services de bases de données cloud gérés, l’exécution de MongoDB sur votre propre VPS Hosting vous donne un contrôle complet sur l’optimisation des performances, le renforcement de la sécurité et les coûts à long terme.

Ce guide vous accompagne à travers une installation de MongoDB Community Edition 8.0 de qualité production sur un VPS Linux — couvrant la configuration du référentiel officiel pour Debian 12 et Ubuntu LTS, la gestion des services, la création d’utilisateurs et de bases de données, le renforcement de la sécurité (authentification, liaison réseau, règles de pare-feu), les stratégies de sauvegarde et les étapes courantes de dépannage. Que vous lanciez votre première application ou que vous migriez une charge de travail existante, ce guide fait fonctionner MongoDB de manière fiable dès le premier jour.

1. Conditions préalables

Avant de commencer, assurez-vous que les conditions suivantes sont remplies :

ExigenceDétails
Accès VPSAccès SSH au niveau root ou sudo
Système d’exploitationDebian 12 (Bookworm) 64 bits ou Ubuntu 22.04/24.04 LTS
RAMMinimum 1 GB ; 2 GB+ recommandé pour la production
StockageStockage SSD fortement recommandé
Pare-feuUFW ou iptables disponible

> Important : MongoDB 8.0 supporte officiellement Debian 12 et les versions LTS d’Ubuntu. Installez toujours à partir des référentiels officiels de MongoDB — n’utilisez jamais le package mongodb fourni avec votre distribution Linux, car il est obsolète, non supporté et peut entrer en conflit avec le package officiel mongodb-org.

Si vous n’avez pas encore de serveur, les plans VPS Hosting d’AlexHost offrent des instances VPS Linux avec stockage SSD sur une infrastructure haute performance — idéales pour exécuter des charges de travail de base de données en production.

Mettez à jour votre système d’abord

Commencez toujours par un système entièrement à jour :

sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install -y gnupg curl

2. Installer MongoDB sur Debian 12 (Bookworm)

MongoDB n’est pas disponible dans les dépôts Debian par défaut, vous devez donc ajouter manuellement le dépôt APT officiel de MongoDB.

Étape 1 — Importer la clé de signature GPG de MongoDB

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | 
  sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-8.0.gpg

Cela télécharge et stocke la clé GPG utilisée pour vérifier l’intégrité des paquets. Sans cette étape, APT refusera d’installer les paquets du dépôt MongoDB.

Étape 2 — Ajouter le dépôt officiel de MongoDB

echo "deb [signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg] 
https://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list > /dev/null

Étape 3 — Installer MongoDB Community Edition

sudo apt-get update
sudo apt-get install -y mongodb-org

APT extraira maintenant la dernière version de MongoDB 8.0 directement depuis le CDN officiel de MongoDB.

3. Installer MongoDB sur Ubuntu LTS (24.04 / 22.04)

Le processus est presque identique à Debian, mais l’URL du référentiel diffère selon le nom de code Ubuntu.

Étape 1 — Importer la clé de signature GPG MongoDB

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | 
  sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor

Étape 2 — Ajouter le référentiel pour votre version Ubuntu

Ubuntu 24.04 (Noble Numbat) :

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] 
https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Ubuntu 22.04 (Jammy Jellyfish) :

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] 
https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Étape 3 — Installer MongoDB Community Edition

sudo apt-get update
sudo apt-get install -y mongodb-org

4. Démarrer et activer le service MongoDB

Une fois installé, utilisez systemctl pour démarrer MongoDB et le configurer pour qu’il se lance automatiquement au redémarrage du serveur.

sudo systemctl daemon-reload
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod --no-pager

Pourquoi daemon-reload?

La documentation officielle de MongoDB recommande spécifiquement d’exécuter systemctl daemon-reload avant de démarrer le service. Si vous ignorez cette étape et voyez l’erreur "Unit mongod.service not found", exécutez d’abord daemon-reload — cela force systemd à relire les fichiers d’unité à partir du disque.

Résultat attendu

Un service MongoDB sain affichera une sortie similaire à:

● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled)
     Active: active (running) since ...

Si le statut affiche failed ou inactive, passez à la section Dépannage.

5. Créer des bases de données et des utilisateurs

MongoDB n’applique pas l’authentification par défaut après une installation récente. Cela signifie que vous devez créer vos utilisateurs administrateur et application avant d’activer l’authentification — sinon vous risquez de vous verrouiller.

Ouvrir le shell MongoDB

Connectez-vous à MongoDB localement sur le VPS :

mongosh

Étape 1 — Créer un utilisateur administrateur

Basculez vers la base de données admin et créez un compte administrateur privilégié :

use admin

db.createUser({
  user: "admin",
  pwd: "STRONG_PASSWORD_HERE",
  roles: [
    { role: "userAdminAnyDatabase", db: "admin" },
    { role: "readWriteAnyDatabase", db: "admin" }
  ]
})

> Conseil de sécurité : Remplacez STRONG_PASSWORD_HERE par un mot de passe généré aléatoirement d’au moins 20 caractères. Utilisez un gestionnaire de mots de passe ou exécutez openssl rand -base64 24 sur votre serveur pour en générer un.

Étape 2 — Créer une base de données d’application et un utilisateur

Créez une base de données dédiée et un utilisateur avec privilèges minimaux limité à cette base de données uniquement :

use myapp

db.createUser({
  user: "myapp_user",
  pwd: "STRONG_PASSWORD_HERE",
  roles: [
    { role: "readWrite", db: "myapp" }
  ]
})

Cela suit le principe du moindre privilège — votre application n’a accès en lecture/écriture qu’à sa propre base de données, pas à l’ensemble de l’instance MongoDB.

Étape 3 — Vérifier que les utilisateurs ont été créés

use admin
db.getUsers()

Quittez le shell :

exit

6. Sécurisez votre instance MongoDB

Ceci est la section la plus critique du guide. Les instances MongoDB mal configurées exposées à l’internet public ont été responsables de nombreuses violations de données très médiatisées. La propre liste de contrôle de sécurité de MongoDB est explicite : renforcez votre instance avant de l’exposer à n’importe quel réseau.

A) Lier MongoDB à Localhost uniquement (Défaut recommandé)

Par défaut, MongoDB peut écouter sur toutes les interfaces réseau. Limitez-le à localhost sauf si vous avez un besoin spécifique et justifié d’accès à distance.

Modifiez /etc/mongod.conf :

net:
  bindIp: 127.0.0.1

Appliquez la modification :

sudo systemctl restart mongod

Cela garantit que MongoDB n’est accessible que depuis le serveur lui-même — pas depuis l’internet public.

B) Activez l’authentification

Sans authentification activée, tout processus local peut se connecter à MongoDB sans mot de passe. Modifiez /etc/mongod.conf :

security:
  authorization: enabled

Redémarrez le service :

sudo systemctl restart mongod

Testez maintenant que l’authentification est appliquée :

mongosh -u admin -p --authenticationDatabase admin

C) Configurez le pare-feu

Si vous devez autoriser les connexions à distance (par exemple, depuis un serveur d’application sur une machine différente), limitez le port 27017 à une adresse IP de confiance spécifique uniquement. N’ouvrez jamais le port 27017 à 0.0.0.0/0.

Utilisation d’UFW :

sudo ufw allow from YOUR.TRUSTED.IP.ADDRESS to any port 27017 proto tcp
sudo ufw enable
sudo ufw status

Vérifiez que la règle est active :

sudo ufw status verbose

D) Utilisez le tunneling SSH pour un accès à distance sécurisé (Meilleure pratique)

Le moyen le plus sûr d’accéder à MongoDB à distance est via un tunnel SSH. Cela évite d’ouvrir complètement le port 27017 et chiffre tout le trafic en transit.

Depuis votre machine locale :

ssh -L 27017:127.0.0.1:27017 root@YOUR_VPS_IP

Connectez-vous ensuite depuis votre shell MongoDB local comme s’il était local :

mongosh "mongodb://myapp_user:PASS@127.0.0.1:27017/myapp?authSource=myapp"

Cette approche est fortement recommandée pour les développeurs accédant aux bases de données de production depuis des ordinateurs portables ou des postes de travail distants.

Résumé du renforcement de la sécurité

Mesure de sécuritéEmplacement de configurationPriorité
Lier à localhost uniquement/etc/mongod.confnet.bindIpCritique
Activer l’authentification/etc/mongod.confsecurity.authorizationCritique
Restriction du port pare-feuUFW / iptablesÉlevée
Tunnel SSH pour accès à distanceConfiguration SSH côté clientÉlevée
Utiliser les utilisateurs de base de données avec privilèges minimauxmongoshdb.createUser()Élevée
Maintenir MongoDB à jourapt-get upgrade mongodb-orgMoyen

7. Sauvegarde et restauration

Les sauvegardes régulières sont indispensables pour toute base de données en production. MongoDB inclut mongodump et mongorestore dans le package MongoDB Database Tools.

Créer une archive de sauvegarde compressée

mongodump 
  --username admin 
  --password STRONG_PASSWORD_HERE 
  --authenticationDatabase admin 
  --archive=/root/mongo-backup.archive 
  --gzip

Cela crée un fichier d’archive compressé unique contenant un vidage logique de toutes les bases de données.

Restaurer à partir d’une archive de sauvegarde

mongorestore 
  --username admin 
  --password STRONG_PASSWORD_HERE 
  --authenticationDatabase admin 
  --archive=/root/mongo-backup.archive 
  --gzip

Automatiser les sauvegardes avec Cron

Planifiez les sauvegardes quotidiennes à l’aide de cron :

crontab -e

Ajoutez la ligne suivante pour exécuter une sauvegarde tous les jours à 2h00 du matin :

0 2 * * * mongodump --username admin --password PASS --authenticationDatabase admin --archive=/root/backups/mongo-$(date +%F).archive --gzip

> Conseil professionnel : Pour la redondance hors site, envisagez de synchroniser les archives de sauvegarde vers un emplacement de stockage externe à l’aide de rsync ou rclone. Ne stockez jamais votre seule sauvegarde sur le même serveur que votre base de données.

8. Dépannage des problèmes courants

Vérifier les journaux de service

Le premier endroit à consulter lorsque MongoDB ne démarre pas ou se comporte de manière inattendue :

sudo journalctl -u mongod --no-pager -n 200

Cela affiche les 200 dernières lignes du journal systemd de MongoDB — généralement suffisant pour identifier la cause racine.

Vérifier que MongoDB écoute sur le port attendu

sudo ss -lntp | grep 27017

Résultat attendu si MongoDB s’exécute et est lié à localhost :

LISTEN  0  128  127.0.0.1:27017  0.0.0.0:*  users:(("mongod",...))

S’il n’y a pas de résultat, MongoDB n’est pas en cours d’exécution ou est lié à une interface différente.

Vérifier la version MongoDB installée

mongod --version

Messages d’erreur courants et corrections

ErreurCause probableCorrection
Unit mongod.service not foundsystemd n’a pas chargé le fichier d’unitéExécutez sudo systemctl daemon-reload
Address already in useLe port 27017 est occupé par un autre processusExécutez `sudo ss -lntpgrep 27017` pour identifier le conflit
Authentication failedIdentifiants incorrects ou mauvais authSourceVérifiez le nom d’utilisateur, le mot de passe et authenticationDatabase
Connection refusedMongoDB n’est pas en cours d’exécution ou est lié à la mauvaise IPVérifiez bindIp dans mongod.conf et l’état du service
mongod.conf permission deniedProblème de permissions de fichierExécutez sudo chmod 600 /etc/mongod.conf

9. Réflexions finales

L’exécution de MongoDB sur un VPS est une approche éprouvée et rentable pour les charges de travail en production qui exigent de la flexibilité, des performances et un contrôle complet de l’infrastructure. En suivant ce guide, vous avez installé MongoDB 8.0 à partir des référentiels officiels, configuré l’authentification et la liaison réseau, créé des utilisateurs de base de données avec privilèges minimaux, configuré les règles de pare-feu et établi une routine de sauvegarde.

Quelques points clés à retenir :

  • Activez toujours l’authentification — une instance MongoDB non authentifiée est une vulnérabilité de sécurité critique.
  • N’exposez jamais le port 27017 à l’Internet public — utilisez le tunneling SSH ou limitez l’accès à des adresses IP spécifiques de confiance.
  • Maintenez MongoDB à jour — exécutez sudo apt-get upgrade mongodb-org régulièrement pour recevoir les correctifs de sécurité.
  • Testez vos sauvegardes — une sauvegarde que vous n’avez jamais restaurée est une sauvegarde à laquelle vous ne pouvez pas faire confiance.

Pour les équipes qui ont besoin d’une base fiable et haute performance pour les déploiements MongoDB, l’hébergement VPS d’AlexHost offre un stockage SSD NVMe, un accès root complet et une mise à l’échelle flexible des ressources. Si votre charge de travail dépasse un seul VPS, les serveurs dédiés offrent des ressources CPU et RAM dédiées sans effets de voisinage bruyant — idéal pour les ensembles de réplicas MongoDB ou les clusters fragmentés à fort trafic.

Besoin d’une pile d’hébergement complète ? Associez votre VPS de base de données à l’hébergement Web partagé pour votre front-end ou vos actifs statiques, et sécurisez le trafic de votre application avec un certificat SSL pour protéger les données en transit entre vos utilisateurs et vos serveurs.

*Dernière mise à jour pour MongoDB Community Edition 8.0 sur Debian 12 (Bookworm) et Ubuntu 22.04/24.04 LTS.*