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.
-
Télécharger les sources : Téléchargez et extrayez les dossiers sources d'Odoo Community et Enterprise sur votre serveur .
-
Installer l'environnement virtuel Python :
bashsudo apt install python3-venv -
Installer PostgreSQL :
bashsudo apt install postgresql postgresql-client -
Configurer l'utilisateur PostgreSQL :
Créez un nouvel utilisateur postgres. Remplacez
$USERpar votre nom d'utilisateur système réel.bashsudo -u postgres createuser -d -R -S $USER createdb $USER -
Installer les bibliothèques de développement :
bashsudo apt install python3-pip libldap2-dev libpq-dev libsasl2-dev
2. Configuration de l'environnement et installation
-
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 .
bashpython3 -m venv venv source venv/bin/activate(Note : Assurez-vous d'être à l'intérieur de l'environnement virtuel actif pour les étapes suivantes).
-
Installer les prérequis Python :
Naviguez dans le dossier community et exécutez :
bashpip install -r requirements.txt pip install phonenumbers -
Installer wkhtmltopdf :
Téléchargez et installez la version spécifique requise pour l'impression des rapports.
bashwget 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.debNote : La commande ci-dessus échouera. Exécutez l'étape suivante pour corriger cela :
bashsudo apt install -f -
Vérifier l'installation :
Retournez dans le chemin community et vérifiez qu'Odoo est accessible :
bashpython3 -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.
-
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.
bashpython3 -m odoo --addons-path=/home/ubuntu/odoo_enterprise/ -d odoo_db_test -
Accéder à l'interface Web :
Ouvrez le port dans votre pare-feu et accédez au navigateur.
bashsudo ufw allow 8069/tcpAllez sur :
http://<server-ip>:8069et vérifiez qu'Odoo démarre correctement et que le gestionnaire de base de données s'affiche. -
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.
-
Créer et éditer odoo.conf :
Créez le fichier de configuration :
bashvim /home/ubuntu/odoo.confD'abord, générez un mot de passe maître hashé. Avec votre venv activé, exécutez :
bashsource /home/ubuntu/venv/bin/activate python3 -c "from passlib.context import CryptContext; print(CryptContext(['pbkdf2_sha512']).hash('YOUR_PASSWORD_HERE'))"Remplacez
YOUR_PASSWORD_HEREpar 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 = TrueNotes de configuration :
admin_passwd: Le mot de passe maître hashé que vous avez généré ci-dessus .db_user: Remplacezubuntusi le$USERcréé à l'étape 1.4 est différent .addons_path: Ajustez si vos dossiers sources sont situés ailleurs .log_level: Peut être changé eninfoune fois en ligne .workers: Calculé en utilisantecho "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 .
-
Préparer le fichier de log :
bashtouch /home/ubuntu/odoo.log -
Préparer le script de démarrage :
Naviguez dans le dossier community et téléchargez
odoo-bin.bashcd /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.
-
Créer le fichier de service :
bashsudo vim /etc/systemd/system/odoo.service -
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 -
Démarrer le service :
bashsudo systemctl daemon-reload sudo systemctl start odooVé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.
-
Installer Nginx :
bashsudo apt install nginx -y -
Créer la configuration du site Odoo :
bashsudo vim /etc/nginx/sites-available/odoo -
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.iopar votre propre nom de domaine. -
Activer le site :
bashsudo 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
-
Configurer SSL (TLS) :
Installez Certbot et configurez le SSL pour le domaine.
bashsudo apt install certbot python3-certbot-nginx -yPuis lancez Certbot pour obtenir et configurer le certificat SSL :
bashsudo certbot --nginx -d erp.tadoo.ioNote : Remplacez
erp.tadoo.iopar votre propre nom de domaine.Vous pouvez maintenant accéder à votre instance Odoo via
https://votre-domaine.com. -
Créer la base de données de production :
Allez sur
/web/database/manageret créez votre base de données de production en vous assurant de définir un mot de passe utilisateur fort. -
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 :
bashvim /home/ubuntu/odoo.confAjoutez ces lignes :
inidbfilter = ^tadoo$ list_db = FalseNote : Remplacez
tadoopar le nom de votre base de données de production. -
Appliquer les changements :
bashsudo systemctl restart odoo
Votre installation d'Odoo 19 est maintenant terminée !