Skip to main content

Odoo18

sudo apt-get update
sudo apt-get upgrade -y
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update

Creating the user

sudo useradd -m -d /opt/odoo18 -U -r -s /bin/bash odoo18
apt list | grep python3.12
sudo apt-get install python3.12
sudo apt install -y git python3-pip python3.12-dev libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev build-essential libssl-dev libffi-dev libmysqlclient-dev libjpeg-dev libpq-dev libjpeg8-dev liblcms2-dev libblas-dev libatlas-base-dev
creating the web dependency
sudo apt-get install -y npm
sudo ln -s /usr/bin/nodejs/usr/bin/node 
sudo npm install -g less less-plugin-clean-css 
sudo apt-get install -y node-less

html to pdf

sudo wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb

sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb
sudo apt install -f

 Install and configure PostgreSQL

sudo apt install postgresql -y
sudo su - postgres

createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo18
psql
ALTER USER odoo18 WITH SUPERUSER;
\q
exit

Install Odoo

sudo su - odoo18
git clone https://www.github.com/odoo/odoo --depth 1 --branch 18.0 odoo18
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1

python3 -m venv odoo18-venv
source odoo18-venv/bin/activate
(odoo18-venv) odoo18@ubuntu22:~$ pip3 install wheel
(odoo18-venv) odoo18@ubuntu22:~$ pip3 install -r odoo18/requirements.txt

Create a directory for the 3rd party addons:

mkdir /opt/odoo18/odoo18/custom-addons

Create a configuration file for the Odoo Installation

sudo nano /etc/odoo18.conf

[options]
admin_passwd = admin_passwd
db_host = False
db_port = False
db_user = odoo18
db_password = False
addons_path = /opt/odoo18/odoo18/addons,/opt/odoo18/odoo18/custom-addons
xmlrpc_port = 8069

Create Odoo Systemd Unit file

sudo nano /etc/systemd/system/odoo18.service
[Unit]
Description=Odoo18
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo18
PermissionsStartOnly=true
User=odoo18
Group=odoo18
ExecStart=/opt/odoo18/odoo18-venv/bin/python3 /opt/odoo18/odoo18/odoo-bin -c /etc/odoo18.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload

sudo systemctl enable --now odoo18
sudo systemctl status odoo18
sudo journalctl -u odoo18