Open Source ERP Solutions, Part One: Odoo

Odoo Setup & Offerings

Over the next few weeks, we will be testing out various open source ERP solutions.  I am primarily interested in looking at ERP platforms that allow me to plug in my own custom modules. For this article, I am going to take a look at the setup procedure and initial offerings of Odoo. Next article, I will be taking the same approach with ERPNext.

In this series, I will be weighting the value of these systems from the perspective of two sample companies: SampleCorp and Ye Olde Book Shoppe. SampleCorp is a Contract Research Organization (CRO) which accessions, tracks, and performs studies on samples for contractual pharmaceutical partners. Ye Olde Book Shoppe is a small retailer which collects its used inventory from local customers and provides sales online and in-store.

I won’t be getting into too much detail regarding how these companies interact with their respective ERP platforms until later in the series, but for our immediate purposes it’s important to highlight that these companies provide very different services and rely on the same underlying system to enable their day-to-day operations.

Finally, I won’t be discussing the paid models of these systems. This isn’t to discount the attractiveness of the paid offerings that these companies provide, but instead to discover the challenges involved in maintaining and extending the open source versions of these products. Installation has been on Ubuntu 18.04 exclusively.

Odoo (version 12)

Odoo provides an app-based approach to enable your ERP/CRM to handle a wide spectrum of responsibilities from sales and purchasing to timesheets and internal messaging. The Odoo backend is written in python and has a separate JavaScript based frontend. From their github README:

“Odoo is a suite of web based open source business apps.

The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, Purchase Management, …”

Setup with Odoo is suprisingly straight-forward. Following their instructions here (, I was able to be up and running in less than a half hour. Installation steps include:

  • Install PostgreSQL (step by step guide for version 12)
  • Optionally install wkhtmltopdf (for pdf reports)
  • Add odoo to sources list, install odoo (I opted for version 12.0 source)

After installation, a service odoo status shows us that we are up and running:

● odoo.service - Odoo Open Source ERP and CRM
   Loaded: loaded (/lib/systemd/system/odoo.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-10-11 10:16:04 MDT; 14s ago
 Main PID: 6403 (odoo)
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/odoo.service
           └─6403 /usr/bin/python3 /usr/bin/odoo --config /etc/odoo/odoo.conf --logfile /var/log/odoo/odoo-server.log

Oct 11 10:16:04 andy-ubuntu systemd[1]: Started Odoo Open Source ERP and CRM.

After following the setup instructions, you can visit your running Odoo instance (typically http://localhost:8069). You should be greeted with a setup screen:

In order to play around with all of the applications, I’ve opted to load the demo data on my instance. After database creation, we see a list of available applications. Some of these are ready to install, and some of them will require the purchase of licenses.

One nicety if you’ve opted to load the demo data is that each application has an option to package demo data as part of its installation. As an administrator, I really like this. It allows me to quickly test drive the various offerings of the suite and I’m a big fan of that. As the head of engineering I like that my team can provide data setup with their modules which means I have to spend less time getting their module running and more time reviewing code and features.

Overall I’m impressed with how easy Odoo is to setup. This doesn’t answer the question of how accessible module development will be, but at this point getting my environment up and running was trivial.