By: Faslu Rahman

Step by Step to Install Odoo v10 on Ubuntu16.04 LTS

Technical Odoo 10


Odoo is an open source all-in-one enterprise resource planning (ERP) application developed by Odoo S.A.  The new release of Odoo 10.0 is introducing many new features with great speed.

Odoo gives you endless possibilities. You can extend your business scope from CRM to E-commerce with Odoo. Also, you can customize Odoo to suit your business flow. I am sure you'll enjoy working Odoo.


How To:

Before we going through the steps of installation of Odoo, We can download and install a .deb package of Odoo. But it won't give you the full control over the installation. Also, it will make the customization/ modification difficult. So we are using a manual approach here.

We are using a clone of Odoo 10.0 branch from Odoo's GitHub repository. This will make things easier when it comes to the installation of updates and bug fixes.


Let’s move on to the steps


Open your terminal and run these commands step by step, and feel the difference Odoo can do.


Step1: Build Your Server

sudo apt-get install openssh-server fail2ban

This is to make your server secure and to let you connect to the system remotely. If you have another method for this, Skip this one.

sudo apt-get update
sudo apt-get upgrade

This will make your server up-to-date with all the latest versions and patches.

It is a good idea to restart your server after this.

Step2: Create a user for Odoo.

This system user is to own and run Odoo on your server. Login of this user will be disabled. We are going to place the source code of Odoo inside the home directory of this user.

sudo adduser --system --home=/opt/odoo --group odoo

Here I have put home directory as /opt/odoo. If you want to change the location, it is your choice. But, you’ll have to alter some of the configuration and instruction are given below.

Don’t worry about how we can run Odoo with a system user that has no shell. The next command will help you.

sudo su - odoo -s /bin/bash

This will switch the current login user of a terminal with Odoo user. Then you will be using /bin/bash shell. And your home directory will be /opt/odoo.

Enter exit to leave odoo user


Step3: Install and configure PostgreSQL (Database Server)

sudo apt-get install postgresql

This command will install database server PostgreSQL on your server.


Now we have to configure Odoo user in Postgres. To do this we need some privileges. For that, we will switch into Postgres user. To do so, run

sudo su - postgres

Now, create a database user for Odoo. So that odoo can delete, create and restore databases.


createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo

The system will ask you for a password. Don’t forget it. You'll need it later.

exit to leave postgres user

Step 4. Install Dependencies for Odoo

There are some Python packages odoo depends on. This command will


sudo apt-get install python-dateutil python-docutils python-feedparser python-jinja2 python-ldap python-libxslt1 python-lxml python-mako python-mock python-openid python-psycopg2 python-psutil python-pybabel python-pychart python-pydot python-pyparsing python-reportlab python-simplejson python-tz python-unittest2 python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi poppler-utils python-pip python-pypdf python-passlib python-decorator gcc python-dev mc bzr python-setuptools python-markupsafe python-reportlab-accel python-zsi python-yaml python-argparse python-openssl python-egenix-mxdatetime python-usb python-serial lptools make python-pydot python-psutil python-paramiko poppler-utils python-pdftools antiword python-requests python-xlsxwriter python-suds python-psycogreen python-ofxparse python-gevent

for Odoo web dependencies


sudo apt-get install -y npm
sudo ln -s /usr/bin/nodejs /usr/bin/node
sudo npm install -g less less-plugin-clean-css

for Odoo reports, Install wkhtmltopdf

Here we are using 0.12.1 version of wkhtmltopdf.

sudo wget

This will download wkhtmltopdf package for 64 bit system arch.

Or download manually from

To install the package

sudo dpkg -i wkhtmltox-0.12.1_linux-trusty-amd64.deb

To ensure wkhtmltopdf functions properly:

sudo cp /usr/local/bin/wkhtmltopdf /usr/bin
sudo cp /usr/local/bin/wkhtmltoimage /usr/bin


Step 5. Clone Odoo from its repository

First, We have to install Git.

sudo apt-get install git

Before we clone Odoo, we should switch to Odoo user

sudo su - odoo -s /bin/bash

Now clone the latest code of Odoo from repo using git clone.

git clone --depth 1 --branch 10.0 --single-branch .

Note the '. ' at the end of the command. 

This will download Odoo to /opt/odoo

If you get a message like this

“fatal: destination path '.' already exists and is not an empty directory.”

remove the '. ' from command and try again. This time odoo code will be downloaded to /opt/odoo/odoo-10.0/.  In this case, you'll have to alter some of the configuration given below according to this directory path.

Step 6. Configuring Odoo application

·    copy the configuration files that comes with odoo to a more convenient location

sudo cp /opt/odoo/debian/odoo.conf /etc/odoo-server.conf

·    Modify the file using

 sudo nano /etc/odoo-server.conf

Minimal of 'odoo-server.conf' file

; This is the password that allows database operations:
; admin_passwd = admin
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/addons
logfile = /var/log/odoo/odoo.log

in this configuration file
; admin_passwd = admin : this line currently commented. This is the password that allows database operations. Remove the preceding ';' to uncomment the line and change 'admin' to something more secure to make your Odoo more secure.

db_host = False: This is used when you are using a different server for the database. Put your database server address in that case.

db_port = False : Postgresql uses port no: 5432 as default. If you are running with a custom configuration, give the appropriate port number here.

db_user = odoo : Name of the PostgreSQL user we created in step 3

db_password = False: Change the FALSE to the db_user's password.
addons_path = /opt/odoo/addons : This where Odoo addons lies. If you have any other add-ons in a different location, add that path to this line after a ','

logfile = /var/log/odoo/odoo.log : This is the path to odoo log file.

By default odoo uses 8069 port, If you are planning to run odoo in a different port, add this line

xmlrpc_port = <port no>

·    Change ownership and permission of Odoo.conf

sudo chown odoo: /etc/odoo-server.conf
sudo chmod 640 /etc/odoo-server.conf

·    We should create the path we mentioned for Odoo log in configuration file and set the Odoo user as its owner

sudo mkdir /var/log/odoo
sudo chown odoo:root /var/log/odoo

Step 7. Creating Odoo service

We have to create a systemd unit for Odoo So that it behaves like a service.

Create a new file at /etc/systemd/system/odoo.service


# Ubuntu/Debian convention:
ExecStart=/opt/odoo/odoo-bin -c /etc/odoo-server.conf
We need to change the permission and ownership of this file.
sudo chmod 755 /etc/systemd/system/odoo.service
sudo chown root: /etc/systemd/system/odoo.service


Step 8. Testing

start the Odoo server

sudo systemctl start odoo.service

check the log file

sudo tail -f /var/log/odoo/odoo.log

Step 9. Automating startup and shutdown of Odoo

This will enable the Odoo to start and stop the server

sudo systemctl enable odoo.service

Step 10. Access Odoo on your browser

Open a new browser window and enter http://<your_domain_or_IP_address>:8069 in the address bar

If everything is working properly, you will redirect to Odoo's database creation page.



cybrosys youtube



Faslu Rahman

@Hanshad There must be some extra spaces in your command. Please check





While clonig odoo by git clone --depth 1 --branch 10 .0 --single-branch . command it shows error as too many arguments. i am also trying without that '.' .





Very useful blog




Leave a comment


Cybrosys Technologies Pvt. Ltd.
Neospace, Kinfra Techno Park
Kakkancherry, Calicut
Kerala, India - 673635


Cybrosys Limited
Alpha House,
100 Borough High Street, London,
SE1 1LB, United Kingdom


Cybrosys Technologies Pvt. Ltd.
1st Floor, Thapasya Building,
Infopark, Kakkanad,
Kochi, India - 682030.


Cybrosys Techno Solutions
The Estate, 8th Floor,
Dickenson Road,
Bangalore, India - 560042

Send Us A Message