3.2.1. Installer Dolibarr et Talerbarr en ligne de commande#

Important : ceci n’est pas un tutoriel d’installation officiel de Dolibarr. Il est fourni uniquement comme un guide complet de bout en bout pour installer le module Talerbarr, en utilisant spécifiquement une installation basée sur un dossier plutôt qu’une installation via l’interface Dolibarr ou Dolistore.

Ce tutoriel est destiné aux utilisateurs ayant des connaissances en développement ou en administration système. Si vous n’avez jamais utilisé d’outils en ligne de commande auparavant, envisagez une manière plus conviviale d’obtenir Dolibarr, comme une solution SaaS approuvée par l’équipe Dolibarr.

3.2.1.1. Avoir un serveur Debian#

Assurez-vous de disposer d’un serveur Debian opérationnel avec un accès sudo avant de continuer. Pour cette installation, Dolibarr fonctionnera en Podman sans privilèges (rootless) en tant qu’utilisateur normal, tandis que sudo n’est utilisé que pour l’installation des paquets et la configuration initiale du système. Podman sans privilèges est un mode officiellement pris en charge, et pour les services utilisateur qui doivent survivre à la déconnexion et démarrer au démarrage du système, la documentation Podman/systemd recommande d’activer le « lingering » pour cet utilisateur.

3.2.1.2. Avoir un enregistrement DNS#

Créez un enregistrement DNS auprès de votre registraire de domaine ou de votre fournisseur DNS :

Type : A

Nom : erp, dolibarr, ou un autre sous-domaine de votre choix

Valeur : Adresse IP publique de votre serveur

3.2.1.3. Installer Podman#

Installez Podman et les outils nécessaires pour les conteneurs sans privilèges :

sudo apt update
sudo apt upgrade -y
sudo apt install -y podman podman-compose uidmap slirp4netns fuse-overlayfs passt aardvark-dns

3.2.1.4. Créer un utilisateur dédié pour Dolibarr#

Créez un utilisateur dédié sans privilèges qui possédera et exécutera la pile Dolibarr :

sudo adduser --disabled-password --gecos "" dolibarr
sudo loginctl enable-linger dolibarr

La commande loginctl enable-linger est importante car les services systemd au niveau utilisateur sont sinon arrêtés après la fin de la dernière session de cet utilisateur.

3.2.1.5. Créer un proxy inverse#

Vous êtes absolument libre de le configurer de la manière qui vous convient le mieux ; il n’y a généralement pas de bonne ou de mauvaise façon de faire. Ici, nous décrivons simplement comment nous avons préparé le système pour réaliser le texte et les images de ces tutoriels.

Installez Nginx et Certbot sur l’hôte :

sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx

Créez /etc/nginx/sites-available/dolibarr.conf avec le contenu suivant, en remplaçant erp.example.com par votre domaine réel :

server {
    listen 80;
    listen [::]:80;
    server_name erp.example.com;

    client_max_body_size 64M;

    location / {
        proxy_pass http://127.0.0.1:2793;
        proxy_http_version 1.1;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Port $server_port;
    }
}

Activez le site et rechargez Nginx :

sudo ln -s /etc/nginx/sites-available/dolibarr.conf /etc/nginx/sites-enabled/dolibarr.conf
sudo nginx -t
sudo systemctl reload nginx

Demandez un certificat Let’s Encrypt :

sudo certbot --nginx -d erp.example.com

Une fois le certificat émis avec succès, Certbot mettra à jour la configuration Nginx pour activer HTTPS et rediriger le trafic HTTP vers HTTPS.

3.2.1.6. Devenir l’utilisateur Dolibarr#

Basculez vers le nouvel utilisateur :

sudo -iu dolibarr

Toutes les commandes Podman restantes de ce tutoriel doivent être exécutées avec cet utilisateur afin que le déploiement reste sans privilèges.

3.2.1.7. Créer des répertoires persistants#

Créez les répertoires qui contiendront les données persistantes :

mkdir -p ~/dolibarr/{mariadb,documents,custom}
cd ~/dolibarr

Tout cela doit être fait afin de ne pas perdre de données en cas de redémarrage ou de mise à niveau de Dolibarr vers une version plus récente.

3.2.1.8. Créer le fichier d’environnement#

Create a .env file for database and Dolibarr settings:

cat > .env <<'EOF'
MYSQL_ROOT_PASSWORD=CHANGE_THIS_ROOT_PASSWORD
MYSQL_DATABASE=dolidb
MYSQL_USER=dolidbuser
MYSQL_PASSWORD=CHANGE_THIS_DB_PASSWORD

DOLI_INSTALL_AUTO=1
DOLI_INIT_DEMO=0
DOLI_PROD=1
DOLI_DB_HOST=mariadb
DOLI_DB_HOST_PORT=3306
DOLI_DB_NAME=dolidb
DOLI_DB_USER=dolidbuser
DOLI_DB_PASSWORD=CHANGE_THIS_DB_PASSWORD
DOLI_URL_ROOT=https://erp.example.com
DOLI_ADMIN_LOGIN=admin
DOLI_ADMIN_PASSWORD=CHANGE_THIS_ADMIN_PASSWORD

WWW_USER_ID=1000
WWW_GROUP_ID=1000
EOF

Ces variables font partie de l’interface officielle du conteneur Dolibarr. Vérifiez toujours qu’elles n’ont pas changé et qu’aucune nouvelle contrainte ou recommandation n’a été introduite avant de poursuivre.

3.2.1.9. Créer le fichier compose#

Créez compose.yml :

cat > compose.yml <<'EOF'
services:
  mariadb:
    image: docker.io/library/mariadb:latest
    container_name: dolibarr-mariadb
    env_file:
      - .env
    volumes:
      - ./mariadb:/var/lib/mysql:Z
    restart: unless-stopped

  web:
    image: docker.io/dolibarr/dolibarr:latest
    container_name: dolibarr-web
    env_file:
      - .env
    depends_on:
      - mariadb
    ports:
      - "2793:80"
    volumes:
      - ./documents:/var/www/documents:Z
      - ./custom:/var/www/html/custom:Z
    restart: unless-stopped
EOF

3.2.1.10. Démarrer Dolibarr#

Lancez la pile :

podman-compose up -d
podman-compose logs

Vérifiez que les conteneurs sont actifs :

podman ps
podman-compose logs

Ouvrez votre navigateur et accédez à :

https://erp.example.com

Si tout est configuré correctement, vous devriez voir l’interface web de Dolibarr en HTTPS.

3.2.1.11. Installer des modules personnalisés#

Vous pouvez désormais placer des modules dans le répertoire ~/dolibarr/custom. Pour l’exemple du module TalerBarr, poursuivez avec Installer à partir du dépôt source.