Retourner sur le site

Installer MongoDB Community

Installez MongoDB Community Edition sur VPS HolyCloud via dépôt officiel, sécurisez l'accès, créez utilisateurs et activez le service systemd.

Installer MongoDB Community

MongoDB stocke des documents JSON (BSON), adapté aux APIs Node.js, analytics ou caches structurés. Sur un VPS Linux HolyCloud Ubuntu/Debian, l'installation passe par le dépôt officiel MongoDB Inc. — ce guide couvre l'installation, la configuration minimale, l'authentification et le pare-feu.

Prérequis

  • VPS HolyCloud Ubuntu 22.04/24.04 (guide testé sur Ubuntu ; Debian nécessite le dépôt adapté)
  • Au moins 2 Go RAM (4 Go recommandé en production)
  • Accès sudo
  • Snapshot HolyCloud avant exposition du port 27017
  • WiredTiger est le moteur par défaut (inclus)

Conseil : liez mongod à 127.0.0.1 sauf besoin explicite d'accès distant filtré par IP.

Étape 1 : dépendances et clé GPG

sudo apt update
sudo apt install -y gnupg curl ca-certificates

Import de la clé MongoDB 7.0 (vérifiez la documentation MongoDB pour la version courante) :

curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \
  sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

Étape 2 : dépôt APT

Ubuntu 22.04 (jammy) :

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

Ubuntu 24.04 (noble) — remplacez jammy par noble si le dépôt 7.0 le supporte ; sinon utilisez la série documentée pour votre version.

sudo apt update
sudo apt install -y mongodb-org

Paquets installés :

dpkg -l | grep mongodb-org

Étape 3 : démarrage et service

sudo systemctl enable --now mongod
sudo systemctl status mongod

Fichier de log :

sudo tail -30 /var/log/mongodb/mongod.log

Étape 4 : configuration de base

sudo cp /etc/mongod.conf /etc/mongod.conf.bak.$(date +%F)
sudo nano /etc/mongod.conf

Extrait recommandé pour un VPS web/API :

storage:
  dbPath: /var/lib/mongodb
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
net:
  port: 27017
  bindIp: 127.0.0.1
processManagement:
  timeZoneInfo: /usr/share/zoneinfo
sudo systemctl restart mongod
sudo ss -tlnp | grep 27017

Étape 5 : activer l'authentification

Connexion locale sans auth (première fois) :

mongosh

Dans mongosh :

db.getSiblingDB('admin').createUser({
  user: 'adminMongo',
  pwd: 'MotDePasseFortIci!',
  roles: [ { role: 'root', db: 'admin' } ]
})
db.getSiblingDB('monapp').createUser({
  user: 'appUser',
  pwd: 'MotDePasseAppIci!',
  roles: [ { role: 'readWrite', db: 'monapp' } ]
})
exit

Activez la sécurité dans /etc/mongod.conf :

security:
  authorization: enabled
sudo systemctl restart mongod
mongosh -u adminMongo -p --authenticationDatabase admin

Étape 6 : pare-feu et accès distant (optionnel)

Par défaut, ne ouvrez pas 27017 sur Internet. Si une app distante doit se connecter :

sudo ufw allow from IP_APP_AUTORISEE to any port 27017 proto tcp

Dans mongod.conf, ajoutez l'IP locale du VPS ou 0.0.0.0 uniquement avec pare-feu strict :

net:
  bindIp: 127.0.0.1,10.0.0.2

Étape 7 : sauvegarde logique

mongodump --uri="mongodb://appUser:[email protected]:27017/monapp" --out=/var/backups/mongo-$(date +%F)
tar -czf /var/backups/mongo-$(date +%F).tar.gz /var/backups/mongo-$(date +%F)

Restauration test :

mongorestore --uri="mongodb://appUser:[email protected]:27017" --drop /var/backups/mongo-$(date +%F)/monapp

Vérification

systemctl is-active mongod
mongosh --eval 'db.runCommand({ connectionStatus: 1 })' -u appUser -p --authenticationDatabase monapp
sudo ss -tlnp | grep 27017

bindIp doit refléter votre politique (souvent 127.0.0.1 seul).

Besoin d'aide HolyCloud

  • apt ne trouve pas le paquet : mauvaise série Ubuntu dans le .list
  • mongod crash au démarrage : permissions dbPath, espace disque df -h, log /var/log/mongodb/mongod.log
  • Auth failed : utilisateur créé avant authorization: enabled — recréez via localhost
  • Support HolyCloud : mongod --version, extrait log, RAM free -h