← Retour au blog Guide Technique

Guide d'Installation : Odoo 19 (Community & Enterprise) sur Ubuntu 24.04

Ce guide couvre l'installation des éditions Odoo 19 Community et Enterprise à partir des sources sur un VPS Ubuntu 24.04.

Prérequis

  • OS : Ubuntu 24.04
  • Python : Version 3.10 ou supérieure
  • Accès : SSH avec privilèges sudo

1. Préparation du système et dépendances

Assurez-vous d'abord que les repos de votre système sont à jour et installez les dépendances nécessaires pour Python et la base de données.

  1. Télécharger les sources : Téléchargez et extrayez les dossiers sources d'Odoo Community et Enterprise sur votre serveur .

  2. Installer l'environnement virtuel Python :

    bash
    sudo apt install python3-venv
  3. Installer PostgreSQL :

    bash
    sudo apt install postgresql postgresql-client
  4. Configurer l'utilisateur PostgreSQL :

    Créez un nouvel utilisateur postgres. Remplacez $USER par votre nom d'utilisateur système réel.

    bash
    sudo -u postgres createuser -d -R -S $USER
    createdb $USER
  5. Installer les bibliothèques de développement :

    bash
    sudo apt install python3-pip libldap2-dev libpq-dev libsasl2-dev

2. Configuration de l'environnement et installation

  1. Créer l'environnement virtuel :

    Créez un environnement virtuel (venv) dans le même répertoire que celui où se trouvent les dossiers Odoo Community et Enterprise, puis activez-le .

    bash
    python3 -m venv venv
    source venv/bin/activate

    (Note : Assurez-vous d'être à l'intérieur de l'environnement virtuel actif pour les étapes suivantes).

  2. Installer les prérequis Python :

    Naviguez dans le dossier community et exécutez :

    bash
    pip install -r requirements.txt
    pip install phonenumbers
  3. Installer wkhtmltopdf :

    Téléchargez et installez la version spécifique requise pour l'impression des rapports.

    bash
    wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb
    sudo dpkg -i wkhtmltox_0.12.6.1-3.jammy_amd64.deb

    Note : La commande ci-dessus échouera. Exécutez l'étape suivante pour corriger cela :

    bash
    sudo apt install -f
  4. Vérifier l'installation :

    Retournez dans le chemin community et vérifiez qu'Odoo est accessible :

    bash
    python3 -m odoo --version

3. Lancement temporaire initial

Avant de configurer complètement le service de production, effectuez un lancement test pour configurer la base de données.

  1. Démarrer Odoo manuellement :

    Exécutez la commande suivante pour pointer vers le chemin des addons Enterprise et initialiser la base de données de test.

    bash
    python3 -m odoo --addons-path=/home/ubuntu/odoo_enterprise/ -d odoo_db_test
  2. Accéder à l'interface Web :

    Ouvrez le port dans votre pare-feu et accédez au navigateur.

    bash
    sudo ufw allow 8069/tcp

    Allez sur : http://<server-ip>:8069 et vérifiez qu'Odoo démarre correctement et que le gestionnaire de base de données s'affiche.

  3. Arrêter le serveur :

    Retournez sur votre terminal et interrompez Odoo avec ctrl+c .


4. Configuration de production

Nous allons maintenant créer le fichier de configuration permanent et préparer le système pour la production.

  1. Créer et éditer odoo.conf :

    Créez le fichier de configuration :

    bash
    vim /home/ubuntu/odoo.conf

    D'abord, générez un mot de passe maître hashé. Avec votre venv activé, exécutez :

    bash
    source /home/ubuntu/venv/bin/activate
    python3 -c "from passlib.context import CryptContext; print(CryptContext(['pbkdf2_sha512']).hash('YOUR_PASSWORD_HERE'))"

    Remplacez YOUR_PASSWORD_HERE par votre mot de passe maître. Cela produira quelque chose comme :

    text
    $pbkdf2-sha512$25000$abc123...long_hash_string...

    Copiez le hash complet et ajoutez-le dans le fichier de configuration ci-dessous :

    ini
    [options]
    admin_passwd = $pbkdf2-sha512$25000$abc123...the_full_hash...
    db_user = ubuntu
    db_password = False
    db_host = False
    db_port = False
    addons_path = /home/ubuntu/odoo_enterprise/odoo/addons,/home/ubuntu/odoo_community/odoo/addons
    workers = 17
    logfile = /home/ubuntu/odoo.log
    log_level = debug
    http_port = 8069
    longpolling_port = 8072
    proxy_mode = True

    Notes de configuration :

    • admin_passwd : Le mot de passe maître hashé que vous avez généré ci-dessus .
    • db_user : Remplacez ubuntu si le $USER créé à l'étape 1.4 est différent .
    • addons_path : Ajustez si vos dossiers sources sont situés ailleurs .
    • log_level : Peut être changé en info une fois en ligne .
    • workers : Calculé en utilisant echo "workers = $(( $(nproc) * 2 + 1 ))". Ajustez ce nombre en fonction de vos cœurs CPU. Diminuez ce nombre si l'instance a peu de RAM .
    • proxy_mode : Réglé sur True car nous utiliserons Nginx .
  2. Préparer le fichier de log :

    bash
    touch /home/ubuntu/odoo.log
  3. Préparer le script de démarrage :

    Naviguez dans le dossier community et téléchargez odoo-bin.

    bash
    cd /home/ubuntu/odoo_community
    wget https://raw.githubusercontent.com/odoo/odoo/refs/heads/19.0/odoo-bin
    chmod +x odoo-bin

5. Configuration du service Systemd

Créez un service système pour gérer Odoo automatiquement.

  1. Créer le fichier de service :

    bash
    sudo vim /etc/systemd/system/odoo.service
  2. Coller la configuration du service :

    ini
    [Unit]
    Description=Odoo 19 Service
    Documentation=https://www.odoo.com
    # Wait for network and postgres before starting
    Requires=postgresql.service
    After=network.target postgresql.service
    
    [Service]
    # ---------------------------------------------------------
    # Run as your user so it can access your home dir & venv
    # ---------------------------------------------------------
    User=ubuntu
    Group=ubuntu
    
    # ---------------------------------------------------------
    # PATHS
    # ---------------------------------------------------------
    # We run from the community folder so relative paths work if needed
    WorkingDirectory=/home/ubuntu/odoo_community
    
    # IMPORTANT: Point to your VENV python, then the module, then the config
    ExecStart=/home/ubuntu/venv/bin/python3 /home/ubuntu/odoo_community/odoo-bin -c /home/ubuntu/odoo.conf
    
    # ---------------------------------------------------------
    # RELIABILITY
    # ---------------------------------------------------------
    # Restart automatically if it crashes
    Restart=always
    RestartSec=5s
    
    # Increase open
    file limit (Critical for 17 workers!)
    LimitNOFILE=65535
    
    # standard output is handled by Odoo internal logging,
    # but this catches startup errors before Odoo takes over
    StandardOutput=journal+console
    StandardError=journal+console
    
    [Install]
    WantedBy=multi-user.target
  3. Démarrer le service :

    bash
    sudo systemctl daemon-reload
    sudo systemctl start odoo

    Vérifiez le statut pour vous assurer qu'il fonctionne, puis activez-le .


6. Configuration du proxy inverse Nginx

Configurez Nginx pour gérer le trafic, le SSL et la mise en mémoire tampon.

  1. Installer Nginx :

    bash
    sudo apt install nginx -y
  2. Créer la configuration du site Odoo :

    bash
    sudo vim /etc/nginx/sites-available/odoo
  3. Coller la configuration Nginx :

    nginx
    # Upstream for the main web interface
    upstream odoo {
        server 127.0.0.1:8069;
    }
    
    # Upstream for LiveChat/Websockets
    upstream odoochat {
        server 127.0.0.1:8072;
    }
    
    server {
        listen 80;
        server_name erp.tadoo.io;
        # Increase upload size to 100MB
        client_max_body_size 100M;
    
        # Proxy Headers
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
    
        # Timeouts for long reports
        proxy_read_timeout 720s;
        proxy_connect_timeout 720s;
        proxy_send_timeout 720s;
    
        # Route Websocket traffic to port 8072
        location /websocket {
            proxy_pass http://odoochat;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    
        # Route standard traffic to port 8069
        location / {
            proxy_redirect off;
            proxy_pass http://odoo;
        }
    
        # Cache static files
        location ~* /web/static/ {
            proxy_cache_valid 200 90m;
            proxy_buffering on;
            expires 864000;
            proxy_pass http://odoo;
        }
    }

    Note : Remplacez erp.tadoo.io par votre propre nom de domaine.

  4. Activer le site :

    bash
    sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/
    sudo rm /etc/nginx/sites-enabled/default
    sudo nginx -t
    sudo systemctl reload nginx

7. Sécurité et finalisation

  1. Configurer SSL (TLS) :

    Installez Certbot et configurez le SSL pour le domaine.

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

    Puis lancez Certbot pour obtenir et configurer le certificat SSL :

    bash
    sudo certbot --nginx -d erp.tadoo.io

    Note : Remplacez erp.tadoo.io par votre propre nom de domaine.

    Vous pouvez maintenant accéder à votre instance Odoo via https://votre-domaine.com.

  2. Créer la base de données de production :

    Allez sur /web/database/manager et créez votre base de données de production en vous assurant de définir un mot de passe utilisateur fort.

  3. Verrouiller le gestionnaire de base de données :

    Pour empêcher le changement de base de données et masquer le gestionnaire, éditez à nouveau le fichier de configuration :

    bash
    vim /home/ubuntu/odoo.conf

    Ajoutez ces lignes :

    ini
    dbfilter = ^tadoo$
    list_db = False

    Note : Remplacez tadoo par le nom de votre base de données de production.

  4. Appliquer les changements :

    bash
    sudo systemctl restart odoo

Votre installation d'Odoo 19 est maintenant terminée !