Aller au contenu

Odoo 18

Prérequis

Bash
apt install -y python3 python3-venv python3-dev git build-essential libpq-dev libldap2-dev libsasl2-dev libxml2-dev libxslt1-dev libjpeg-dev zlib1g-dev libfreetype6-dev

Utilisateur odoo

Bash
useradd -m -U -r -d /opt/odoo -s /bin/bash odoo

Wkhtmltox

Bash
wget -O /tmp/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb
apt install -y /tmp/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb

Postgresql

Installation

Bash
apt update && apt install -y postgresql

Création utilisateur

Bash
su - postgres -c "createuser -s odoo"

Configuration

Bash
nano /etc/postgresql/17/main/conf.d/odoo.conf
Text Only
# Mémoire
shared_buffers = 2GB
effective_cache_size = 4GB
work_mem = 16MB
maintenance_work_mem = 512MB

# Workers
max_connections = 100
max_worker_processes = 4
max_parallel_workers_per_gather = 2
max_parallel_workers = 4

# WAL & Checkpoints
wal_buffers = 64MB
checkpoint_completion_target = 0.9
min_wal_size = 1GB
max_wal_size = 4GB

# Planificateur
random_page_cost = 4.0
effective_io_concurrency = 2
default_statistics_target = 100

Redémarrage du service

Bash
systemctl restart postgresql

Odoo

Installation

On passe sur l'utilisateur odoo

Bash
su - odoo

Clone du core Odoo

Bash
git clone https://github.com/odoo/odoo.git --depth 1 --branch 18.0 /opt/odoo/odoo

Création du venv

Bash
1
2
3
python3 -m venv /opt/odoo/venv
echo 'source /opt/odoo/venv/bin/activate' >> /opt/odoo/.bashrc
source /opt/odoo/venv/bin/activate

Dépendances Python

Bash
pip install -r /opt/odoo/odoo/requirements.txt

Création des dossiers pour les modules

Bash
1
2
3
mkdir /opt/odoo/oca-addons
mkdir /opt/odoo/custom-addons
mkdir /opt/odoo/data

Configration

odoo.conf

Créer le fichier
Bash
1
2
3
4
5
exit
touch /etc/odoo.conf
chown odoo:odoo /etc/odoo.conf
chmod 640 /etc/odoo.conf
su - odoo
Remplir le fichier
Bash
nano /etc/odoo.conf
Text Only
[options]
admin_passwd = un_mot_de_passe_fort
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/odoo/addons,/opt/odoo/oca-addons,/opt/odoo/custom-addons
data_dir = /opt/odoo/data
logfile = /opt/odoo/odoo.log
db_name = grid_telecom

; Sécurité
list_db = False
proxy_mode = True

; Performance
workers = 5
max_cron_threads = 1
limit_memory_soft = 681574400
limit_memory_hard = 1363148800
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 1200

Repasser en root

Bash
exit

Service

SystemD

Bash
nano /etc/systemd/system/odoo.service
Text Only
[Unit]
Description=Odoo 18
After=postgresql.service
Requires=postgresql.service

[Service]
Type=simple
User=odoo
Group=odoo
ExecStart=/opt/odoo/venv/bin/python3 /opt/odoo/odoo/odoo-bin -c /etc/odoo.conf
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Démarrage

Bash
1
2
3
4
systemctl daemon-reload
systemctl enable odoo
systemctl start odoo
systemctl status odoo