Skip to content

Instantly share code, notes, and snippets.

@Sinnnnak
Last active October 1, 2025 06:57
Show Gist options
  • Select an option

  • Save Sinnnnak/3d689c9fd0c7f39f5d2d1def18bce3bf to your computer and use it in GitHub Desktop.

Select an option

Save Sinnnnak/3d689c9fd0c7f39f5d2d1def18bce3bf to your computer and use it in GitHub Desktop.
Odoo 18 Installation

Odoo 18 Installation Guide

i.) Update & Upgrade Ubuntu Packages

sudo apt update
sudo apt upgrade

iii.) Install Python Dependencies and Create New User

sudo apt install build-essential wget git python3.12-dev python3.12-venv \
libfreetype-dev libxml2-dev libzip-dev libsasl2-dev node-less libjpeg-dev \
zlib1g-dev libpq-dev libxslt1-dev libldap2-dev libtiff5-dev libopenjp2-7-dev \
libcap-dev

iv.) Create New System User for Odoo

/usr/sbin/adduser --system --shell /bin/bash --gecos 'Odoo' --group --home /opt/odoo odoo

v.) Install PostgreSQL and Create New User for PostgreSQL

sudo apt install postgresql
su - postgres -c "createuser -s odoo"

vi.) Install Wkhtmltopdf

Wkhtmltopdf is required for converting HTML data to PDF format.

sudo apt install wkhtmltopdf

vii.) Download Odoo Files and Create Python Virtual Environment

su - odoo
git clone https://www.github.com/odoo/odoo --depth 1 --branch 18.0 odoo

python3.12 -m venv odoo-venv
source odoo-venv/bin/activate

viii.) Install Odoo and Configure Odoo Files

pip3 install wheel setuptools pip --upgrade
pip3 install -r odoo/requirements.txt

# Create directories for custom addons and logs
mkdir /opt/odoo/custom
exit

mkdir /var/log/odoo
sudo touch /var/log/odoo/odoo.log

ix.) Create Odoo Config File

sudo nano /etc/odoo.conf

Configuration File Content:

[options]
admin_passwd = admin1234
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/odoo/addons,/opt/odoo/custom
logfile=/var/log/odoo/odoo.log

x.) Create Odoo Service

sudo nano /etc/systemd/system/odoo.service

Service File Content:

[Unit]
Description=Odoo
Requires=postgresql.service
After=network.target postgresql.service

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

[Install]
WantedBy=multi-user.target

xi.) Enable and Start Odoo Service

sudo systemctl daemon-reload
sudo systemctl enable odoo
sudo systemctl start odoo
sudo systemctl status odoo

xii.) Open Odoo

Open your browser and go to:

http://publicip:8069
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment