Avant de commencer
Ce guide vous accompagne de A à Z pour installer Dolibarr 23 (ERP/CRM open source) sur un serveur Linux vierge. Aucune connaissance préalable en administration serveur n'est nécessaire — chaque commande est expliquée.
Ce dont vous avez besoin
| Élément | Détail |
|---|---|
| Un VPS ou serveur dédié | Debian 12 fraîchement installé (OVH, Hetzner, Scaleway…) — 1 Go RAM minimum |
| Un nom de domaine | Ex : erp.monentreprise.fr avec un enregistrement DNS A pointant vers l'IP du serveur |
| Un accès SSH root | Terminal + connexion ssh root@IP_DU_SERVEUR |
| Un mot de passe fort | Pour la base de données — préparez-le à l'avance |
Sommaire des étapes
① Se connecter au serveur
Ouvrez un terminal sur votre poste (Terminal sur Mac/Linux, PowerShell ou PuTTY sur Windows) et connectez-vous :
# Remplacez par l'IP réelle de votre serveur
ssh root@123.45.67.89
Tapez yes pour accepter la clé SSH la première fois, puis entrez votre mot de passe root.
root@monserveur:~# ? — Vous êtes connecté. Toutes les commandes suivantes se tapent dans ce terminal.② Installer les paquets nécessaires
On installe Apache (serveur web), MariaDB (base de données), PHP et ses extensions requises par Dolibarr. Copiez-collez ce bloc en entier :
# Mise à jour du système
apt update && apt upgrade -y
# Installation de tous les composants
apt install -y apache2 mariadb-server \
php8.2 php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring \
php8.2-xml php8.2-intl php8.2-zip php8.2-imap php8.2-calendar \
php8.2-ldap unzip wget certbot python3-certbot-apache
# Activer mod_rewrite (réécriture d'URL)
a2enmod rewrite
systemctl restart apache2
php8.2 par php8.3 partout. Sur Debian 11, utilisez php7.4.Vérifiez que tout est installé :
php -v # Doit afficher PHP 8.2.x
apache2 -v # Doit afficher Apache/2.4.x
mariadb --version # Doit afficher 10.11.x
③ Créer la base de données
D'abord, sécurisez MariaDB :
mysql_secure_installation
# Répondez aux questions :
# → Mot de passe root actuel : [Entrée] (vide par défaut)
# → Switch to unix_socket auth : n
# → Nouveau mot de passe root : [votre choix]
# → Remove anonymous users : Y
# → Disallow root login remotely : Y
# → Remove test database : Y
# → Reload privileges : Y
Puis créez la base de données et l'utilisateur dédié :
# Se connecter à MariaDB
mysql -u root -p
Dans le prompt MariaDB (MariaDB [(none)]>), tapez :
CREATE DATABASE dolibarr
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
CREATE USER 'dolibarr'@'localhost'
IDENTIFIED BY 'VotreMotDePasseFort!';
GRANT ALL PRIVILEGES ON dolibarr.*
TO 'dolibarr'@'localhost';
FLUSH PRIVILEGES;
EXIT;
VotreMotDePasseFort! par un vrai mot de passe sécurisé. Notez-le, vous en aurez besoin à l'étape 7.④ Télécharger et installer Dolibarr 23
Téléchargement de l'archive officielle depuis SourceForge :
# Téléchargement
cd /tmp
wget https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/23.0.1/dolibarr-23.0.1.tgz
# Extraction
tar xzf dolibarr-23.0.1.tgz
# Déplacer les fichiers web dans Apache
mv dolibarr-23.0.1/htdocs /var/www/dolibarr
# Créer le dossier documents EN DEHORS du web (sécurité !)
mkdir -p /var/lib/dolibarr/documents
Dolibarr 23 contient un fichier
install.forced.php qui verrouille tous les champs du setup (noedit=2) et force HTTPS (mainforcehttps=true). Si vous ne le supprimez pas, l'installation sera bloquée.
# OBLIGATOIRE : supprimer le fichier qui bloque l'installation
rm -f /var/www/dolibarr/install/install.forced.php
Mettre les bons droits pour qu'Apache puisse lire les fichiers :
# Permissions
chown -R www-data:www-data /var/www/dolibarr
chown -R www-data:www-data /var/lib/dolibarr
chmod 644 /var/www/dolibarr/conf/conf.php
⑤ Configurer Apache
Créez un fichier de configuration pour que votre domaine pointe vers Dolibarr :
nano /etc/apache2/sites-available/dolibarr.conf
Collez ce contenu (remplacez erp.mondomaine.fr par votre domaine) :
<VirtualHost *:80>
ServerName erp.mondomaine.fr
DocumentRoot /var/www/dolibarr
<Directory /var/www/dolibarr>
AllowOverride All
Require all granted
</Directory>
# Bloquer l'accès direct au dossier conf
<LocationMatch "^/conf/">
Require all denied
</LocationMatch>
ErrorLog ${APACHE_LOG_DIR}/dolibarr_error.log
CustomLog ${APACHE_LOG_DIR}/dolibarr_access.log combined
</VirtualHost>
Ctrl+O puis Entrée. Pour quitter : Ctrl+X.# Activer le nouveau site
a2ensite dolibarr.conf
# Désactiver le site par défaut (optionnel)
a2dissite 000-default.conf
# Vérifier la config (doit afficher "Syntax OK")
apache2ctl configtest
# Appliquer
systemctl reload apache2
⑥ Activer HTTPS (certificat gratuit)
Let's Encrypt fournit un certificat SSL gratuit et renouvelé automatiquement. Votre domaine doit déjà pointer vers le serveur (enregistrement DNS A).
# Obtenir et installer le certificat automatiquement
certbot --apache -d erp.mondomaine.fr
# Répondez aux questions :
# → Email : votre@email.fr
# → Accepter les conditions : Y
# → Rediriger HTTP vers HTTPS : 2 (oui, recommandé)
Vérifiez le renouvellement automatique :
certbot renew --dry-run # Doit afficher "Congratulations"
dig erp.mondomaine.fr doit retourner l'IP de votre VPS. La propagation DNS peut prendre jusqu'à 24h.⑦ Lancer l'installation web
C'est l'étape la plus simple ! Ouvrez votre navigateur et allez sur :
https://erp.mondomaine.fr/install/
L'assistant Dolibarr se lance. Suivez les écrans :
① Vérification des prérequis
Tout doit être au vert. Si un module PHP est en rouge, installez-le avec apt install php8.2-[nom] puis rechargez Apache.
② Paramètres de la base de données
| Champ | Valeur à saisir |
|---|---|
| Serveur | localhost |
| Port | 3306 |
| Nom de la base | dolibarr |
| Login base | dolibarr |
| Mot de passe base | Celui de l'étape 3 |
| Type | mysqli |
| Préfixe tables | llx_ |
| Dossier documents | /var/lib/dolibarr/documents |
③ Création du compte administrateur
Choisissez un login et un mot de passe fort. Ce n'est pas le même que le mot de passe de la base de données.
④ Fin
Dolibarr confirme que l'installation est terminée. Cliquez sur le lien pour accéder à votre ERP.
⑧ Verrouiller l'installation
# 1. Créer le fichier de verrouillage
touch /var/lib/dolibarr/documents/install.lock
chmod 444 /var/lib/dolibarr/documents/install.lock
# 2. Rendre conf.php en lecture seule
chmod 444 /var/www/dolibarr/conf/conf.php
# 3. Bloquer l'accès au dossier install
echo "Require all denied" > /var/www/dolibarr/install/.htaccess
Vérifiez en allant sur https://erp.mondomaine.fr/install/ — vous devez voir une erreur 403 Forbidden.
⑨ Sécuriser le serveur
🛡 Pare-feu (UFW)
# N'autoriser que SSH, HTTP et HTTPS
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
# Vérifier
ufw status # Doit lister les 3 ports
🚫 Fail2ban (anti brute-force)
apt install -y fail2ban
systemctl enable fail2ban
systemctl start fail2ban
🔐 Headers de sécurité Apache
# Activer le module headers
a2enmod headers
# Éditer le VirtualHost SSL
nano /etc/apache2/sites-available/dolibarr-le-ssl.conf
# Ajouter AVANT la balise </VirtualHost> :
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Strict-Transport-Security "max-age=31536000"
Header always set X-XSS-Protection "1; mode=block"
# Puis recharger Apache
systemctl reload apache2
⑩ Sauvegardes automatiques
Un script cron sauvegarde la base de données et les documents chaque nuit :
nano /etc/cron.daily/backup-dolibarr
Collez ce contenu :
#!/bin/bash
# Sauvegarde quotidienne Dolibarr
DATE=$(date +%Y%m%d)
BACKUP_DIR="/var/backups/dolibarr"
# Créer le dossier si nécessaire
mkdir -p ${BACKUP_DIR}
# Sauvegarde base de données
mysqldump -u dolibarr -p'VotreMotDePasse' dolibarr \
| gzip > ${BACKUP_DIR}/db-${DATE}.sql.gz
# Sauvegarde fichiers documents
tar czf ${BACKUP_DIR}/docs-${DATE}.tar.gz \
/var/lib/dolibarr/documents
# Supprimer les backups de plus de 30 jours
find ${BACKUP_DIR} -mtime +30 -delete
# Rendre le script exécutable
chmod +x /etc/cron.daily/backup-dolibarr
# Tester immédiatement
bash /etc/cron.daily/backup-dolibarr
ls -lh /var/backups/dolibarr/
rsync ou rclone.⭐ Checklist finale
Cliquez sur chaque point une fois vérifié :
- Le site est accessible en HTTPS avec un cadenas vert
- La connexion admin fonctionne
/install/retourne une erreur 403conf.phpest en lecture seule (444)- Le fichier
install.lockexiste - Le pare-feu est actif — seuls les ports 22, 80, 443 sont ouverts
- Fail2ban est actif
- Le backup cron est en place et a été testé
- Le certificat SSL se renouvelle automatiquement
Commandes de vérification rapide :
ufw status # Ports ouverts
fail2ban-client status # Fail2ban actif
ls -la /var/lib/dolibarr/documents/install.lock # Lock existe
stat -c "%a" /var/www/dolibarr/conf/conf.php # Doit afficher 444
certbot renew --dry-run # Renouvellement OK
run-parts --test /etc/cron.daily # Backup planifié
⚡ Script automatisé tout-en-un
Ce script réalise les étapes 2 à 6 et la sécurisation automatiquement. Idéal pour les déploiements suivants ou la création d'un serveur reproductible.
Utilisation
# Télécharger le script (ou le créer avec nano)
nano deploy-dolibarr.sh
# Lancer le déploiement
sudo bash deploy-dolibarr.sh erp.mondomaine.fr 'MotDePasseBDD'
Contenu du script
#!/bin/bash
# ═══════════════════════════════════════════════════
# Déploiement Dolibarr 23.0.1 sur Debian 12
# Usage : sudo bash deploy-dolibarr.sh DOMAINE MOT_DE_PASSE_BDD
# ═══════════════════════════════════════════════════
set -euo pipefail
DOMAIN="${1:?Usage: $0 <domaine> <mot_de_passe_bdd>}"
DB_PASS="${2:?Usage: $0 <domaine> <mot_de_passe_bdd>}"
DOL_VERSION="23.0.1"
DB_NAME="dolibarr"
DB_USER="dolibarr"
DOC_DIR="/var/lib/dolibarr/documents"
WEB_DIR="/var/www/dolibarr"
echo "== Déploiement Dolibarr ${DOL_VERSION} sur ${DOMAIN} =="
# 1. Paquets
apt update && apt install -y apache2 mariadb-server \
php8.2 php8.2-{mysql,curl,gd,mbstring,xml,intl,zip,imap,calendar,ldap} \
unzip wget certbot python3-certbot-apache
# 2. Base de données
mysql -u root <<SQL
CREATE DATABASE IF NOT EXISTS ${DB_NAME}
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER IF NOT EXISTS '${DB_USER}'@'localhost'
IDENTIFIED BY '${DB_PASS}';
GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';
FLUSH PRIVILEGES;
SQL
# 3. Téléchargement
cd /tmp
[ -f "dolibarr-${DOL_VERSION}.tgz" ] || \
wget "https://sourceforge.net/projects/dolibarr/files/\
Dolibarr%20ERP-CRM/${DOL_VERSION}/dolibarr-${DOL_VERSION}.tgz"
tar xzf "dolibarr-${DOL_VERSION}.tgz"
rm -rf "${WEB_DIR}"
mv "dolibarr-${DOL_VERSION}/htdocs" "${WEB_DIR}"
mkdir -p "${DOC_DIR}"
# 4. Supprimer le verrou d'installation (piège Dolibarr 23)
rm -f "${WEB_DIR}/install/install.forced.php"
# 5. Permissions
chown -R www-data:www-data "${WEB_DIR}" "${DOC_DIR}"
chmod 644 "${WEB_DIR}/conf/conf.php"
# 6. Apache VirtualHost
cat > /etc/apache2/sites-available/dolibarr.conf <<APACHE
<VirtualHost *:80>
ServerName ${DOMAIN}
DocumentRoot ${WEB_DIR}
<Directory ${WEB_DIR}>
AllowOverride All
Require all granted
</Directory>
<LocationMatch "^/conf/">
Require all denied
</LocationMatch>
</VirtualHost>
APACHE
a2enmod rewrite
a2ensite dolibarr.conf
a2dissite 000-default.conf 2>/dev/null || true
systemctl reload apache2
# 7. HTTPS
certbot --apache -d "${DOMAIN}" \
--non-interactive --agree-tos -m "contact@gigarun.re"
# 8. Firewall
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
echo "y" | ufw enable
# 9. Fail2ban
apt install -y fail2ban
systemctl enable fail2ban
echo ""
echo "========================================"
echo " TERMINÉ ! Ouvrez https://${DOMAIN}/install/"
echo " Serveur BDD : localhost"
echo " Nom BDD : ${DB_NAME}"
echo " User BDD : ${DB_USER}"
echo " Pass BDD : ${DB_PASS}"
echo " Documents : ${DOC_DIR}"
echo "========================================"
echo " Après le wizard, exécutez :"
echo " touch ${DOC_DIR}/install.lock"
echo " chmod 444 ${DOC_DIR}/install.lock ${WEB_DIR}/conf/conf.php"
echo "========================================"