C O D E L

Smart Technologies & Artificial Intelligence co.

Odoo is a framework of Business Management Software suite that is growing exponentially fast and now being used with millions of companies across the world. Odoo is developed using Python programming, which allows developers to catch quickly. The great advantage of Odoo over its competitors like SAP, Quickbooks, Microsoft Dynamics, etc is that it can be customised quickly by writing your business apps from scratch and it comes loaded with nice apps that are integrated to each other like Website builder, CRM, Expense powered by AI, e-Commerce, Invoicing, Sales to name a few, straight out-of-the-box. Odoo recently unveiled Odoo 14 which came with significant improvements plus tons of features as compared to the previous version of Odoo 13. Odoo 14 has been unveiled in September at the #OdooExperience which is the biggest Odoo event hosted online.

Like before Odoo comes with Enterprise and Community Version. We are going to focus on Community Version today which will allow us to download, install and deploy Odoo 14 from official Odoo Open Source repo inside Python Virtual Environment on our online Virtual Private Server (VPS) running Ubuntu 20.04 LTS that has been purchased from Linode (Linode is one of the best VPS providers which provide latest OS).

Prerequisites

  1. Purchase a $5 VPS from Linode and choose Ubuntu 20.04 LTS as the OS of your server. NB: Linode allows you to just signup with a credit card and they deduct a small fee then you pay later based on usage.
  2. Locate the SSH details so that you will be able to connect to your remote server from Ubuntu terminal or Windows Putty. We will use Ubuntu terminal in this tutorial

Getting Started

Now that you have a server from linode up and running, are connect to it via SSH in Ubuntu terminal using ssh user@your_vps_public_ip_address, its time to install Odoo.

Install Git, Pip, NodeJs and tools required to build by Odoo dependencies,

sudo apt update
sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev

Create a System User

Running Odoo under the root user is very risk and not allowed. We’ll create a new user and group with home directory /opt/odoo14 that will run the Odoo service. To do so, enter the following command:

sudo useradd -m -d /opt/odoo14 -U -r -s /bin/bash odoo14

You can name the user anything you want, as long you create a PostgreSQL user with the same name.

Installing and Configuring Postgres

Odoo uses PostgreSQL as the database back-end. PostgreSQL is included in the standard Ubuntu repositories. To install it, run:

sudo apt install postgresql

After complete installation of Postgres, create a PostgreSQL user with the same name as the previously created system user. In this example, that is odoo14

sudo su - postgres -c "createuser -s odoo14"

Installing wkhtmltopdf tool

Its a set of open-source command-line tools that renders html and various image formats to PDF and generation and printing of reports. Install version 0.12.5 of wkhtmltox package by:

sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb

…after file download is complete, install by

sudo apt install ./wkhtmltox_0.12.6-1.bionic_amd64.deb

Installing and configuring Odoo14

We are going to install Odoo 14 from the source inside our Python Virtual Environment.

But first, change to “odoo14”

sudo su - odoo14

Clone the Odoo 14 source code from GitHub,

git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo

Creating a new Python virtual environment for Odoo,

cd /opt/odoo14
python3 -m venv odoo-venv

Activate the virtual environment,

source odoo-venv/bin/activate

Install all required Python modules with pip3,

(odoo-venv) $ pip3 install wheel
(odoo-venv) $ pip3 install -r odoo/requirements.txt

After installation complete, deactivate virtual environment

(odoo-venv) $ deactivate

The interesting thing about Odoo is that you can create your own apps and run them in Odoo. Your 3rd part apps can be housed in a directory that you can create by

mkdir /opt/odoo14/odoo-custom-apps

We will add this directory to addons_path parameters where Odoo searches for modules

Go back to sudo user,

$ exit

Create a configuration file and add following configurations,

sudo nano /etc/odoo14.conf
[options]
; This is the password that allows database operations:
admin_passwd = my_admin_passwd
db_host = False
db_port = False
db_user = odoo14
db_password = False
addons_path = /opt/odoo14/odoo/addons,/opt/odoo14/odoo-custom-apps

Replace my_admin_passwd to something more secure.

Creating Systemd Unit file

Create a service called odoo14.service like below,

sudo nano /etc/systemd/system/odoo14.service
[Unit]
Description=Odoo14
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo14
PermissionsStartOnly=true
User=odoo14
Group=odoo14
ExecStart=/opt/odoo14/odoo-venv/bin/python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target

Notify systemd about new unit file,

sudo systemctl daemon-reload

Start the Odoo service and enabled it to start on boot by running,

sudo systemctl enable --now odoo14

Verify the service status,

sudo systemctl status odoo14
● odoo14.service - Odoo14 Loaded: loaded (/etc/systemd/system/odoo14.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-10-16 19:05:32 UTC; 3s ago ...

You should get something like that.

To see messages logged by Odoo server, run,

sudo journalctl -u odoo14

This should be it, test your installation in the browser by putting your VPS public IP address followed with a port number like your_vps_public_ip_address:8069

You should see this:

Congradulations, its time to enjoy great system!

Conclusion

If you have individual software solutions that work, but don’t talk to each other, you are probably entering things more than once and missing a comprehensive overview of what’s going on. Odoo is a great software that allows you to enter data about your business once and get overview using its unified range of apps.

Get in touch with us today and get Odoo into your company for sales(Quotations, Invoicing), Accounting, Expenses, etc. We are experienced Odoo developers we can develop modules that suit your business needs. It’s cheaper than what you have ever heard before.

Comment below if you face any installation glitches and our team will be more than happy to assist for FREE. Enjoy!

Leave a Comment