Learn how to install Odoo 13 on CentOS 7 with step-by-step guidance. Set up the necessary dependencies, configure the database, and deploy Odoo for business management and ERP solutions. #centlinux #linux #odoo
Table of Contents
What is Odoo?
Odoo is an all-in-one software bundle, which contains CRM, website, e-commerce, billing, inventory, accounting, manufacturing and project management. It is available in Commercial and Community editions. Community Edition is open source and it is distributed under GNU GPLv3 license.
Odoo project was started in Feb 2005 and it was initially named Tiny ERP. Later in April 2009 the project name was changed to OpenERP and finally it becomes Odoo (On-Demand Open Object) in Sep 2014.
In this article, we will install Odoo 13 on CentOS 7.
Read Also:
Odoo 13 Server Requirements
Odoo 13 server requires following software packages.
- PostgreSQL (10 or later)
- wkhtmltopdf
- Python (3.6 or later)
Hardware requirements may vary according to your specific module usage and workload.
Linux Server Specification
For this tutorial, we have set up a virtual machine running CentOS 7 with a minimal installation. This approach ensures a lightweight, secure, and optimized environment with only the essential system components, reducing unnecessary software and potential vulnerabilities.
- CPU – 3.4 Ghz (2 cores)
- Memory – 2 GB
- Storage – 20 GB
- Operating System – CentOS 7.7
- Hostname – odoo-server-01.recipes.com
- IP Address – 192.168.116.213 /24
This clean and efficient setup provides the ideal foundation for installing and configuring Odoo 13, ensuring a smooth deployment without resource overhead.
Recommended Training: Mastering Odoo Development – Technical Fundamentals from Odoo Class Videos
Install PostgreSQL on CentOS 7
To begin, connect to your Odoo server (odoo-server-01.recipes.com) as the root user via SSH. This will allow you to perform administrative tasks and configure the necessary dependencies for Odoo 13.
By default, PostgreSQL 9.2 is included in the CentOS 7 Yum repositories. However, Odoo 13 requires a newer version of PostgreSQL to function correctly and support its database operations efficiently.
To ensure compatibility and optimal performance, it is recommended to install the latest version of PostgreSQL. If you haven’t already set up PostgreSQL, you can follow our detailed guide on installing PostgreSQL on CentOS 7, where we cover adding the official PostgreSQL repository, installing the required version, and configuring the database for production use.
Install wkhtmltopdf on CentOS 7
wkhtmltopdf is a free and open-source command-line tool designed to convert HTML content into high-quality PDF documents. It is widely used for generating reports, invoices, and other documents in a structured format from web pages or applications.
One of the key advantages of wkhtmltopdf is that it operates completely headless, meaning it does not require a GUI, display server, or graphical dependencies. This makes it highly efficient for use on server environments such as CentOS 7, where running graphical applications is not ideal.
To install wkhtmltopdf, we need to download the appropriate RPM package from its official download page. Additionally, for those interested in modifications or development, the source code is available on GitHub for review and compilation.
For this tutorial, we will be downloading and installing the required RPM package from the official wkhtmltopdf download page to ensure compatibility and stability with our CentOS 7 system.
# cd /tmp
# wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
--2019-12-05 19:05:09-- https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
Resolving downloads.wkhtmltopdf.org (downloads.wkhtmltopdf.org)... 107.174.217.167
Connecting to downloads.wkhtmltopdf.org (downloads.wkhtmltopdf.org)|107.174.217.167|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14072028 (13M) [application/octet-stream]
Saving to: âwkhtmltox-0.12.5-1.centos7.x86_64.rpmâ
100%[======================================>] 14,072,028 257KB/s in 57s
2019-12-05 19:06:13 (242 KB/s) - âwkhtmltox-0.12.5-1.centos7.x86_64.rpmâ saved [14072028/14072028]
Install downloaded wkhtmltopdf package using yum command.
# yum install -y wkhtmltox-0.12.5-1.centos7.x86_64.rpm
wkhtmltopdf has been installed on CentOS 7.
Install Odoo 13 Prerequisites
Odoo requires some Python libraries that are available in Extra Packages for Enterprise Linux (EPEL) and IUS Community yum repositories. Therefore, we have to install these yum repositories.
Install IUS Community yum repository as follows.
# yum install https://centos7.iuscommunity.org/ius-release.rpm -y
Build yum cache for newly installed repositories.
# yum makecache fast
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 7.9 kB 00:00
* base: mirrors.ges.net.pk
* epel: epel.mirror.angkasa.id
* extras: mirrors.ges.net.pk
* updates: mirrors.ges.net.pk
base | 3.6 kB 00:00
extras | 2.9 kB 00:00
ius | 1.3 kB 00:00
pgdg11 | 3.6 kB 00:00
pgdg12 | 3.6 kB 00:00
updates | 2.9 kB 00:00
Metadata Cache Created
Odoo 13 requires Python 3.6 or later, therefore, we are installing Python 3.6 and other relevant packages using yum command.
# yum -y install python36u python36u-devel python36-pillow python36-lxml npm nodejs libxml2-devel libjpeg-devel libxml2 libxslt libxslt-devel libpng libjpeg openssl icu libX11 libXext libXrender xorg-x11-fonts-Type1 xorg-x11-fonts-75dpi python3-pip python3-setuptools git openldap-devel
Install Development Tools group using yum command.
# yum groupinstall 'Development Tools' -y
Install Nodejs packages as required by Odoo 13 server.
# npm install -g less less-plugin-clean-css -y
Create Users and Directories for Odoo Software
Create a PostgreSQL database user for Odoo.
# su - postgres -c "createuser -s odoo"
Create an Linux user to own CRM software and processes.
# adduser --system --home-dir=/opt/odoo --shell=/bin/bash -m odoo
Create directories as required by Odoo.
# mkdir /etc/odoo
# mkdir /var/log/odoo/
Adjust ownership of these directories.
# chown -R odoo:odoo /opt/odoo/
# chown -R odoo:odoo /var/log/odoo/
Install Odoo 13 on CentOS 7
Download the latest source of Odoo from Github using git command.
# git clone --depth=1 https://github.com/odoo/odoo.git /opt/odoo/odoo
Cloning into '/opt/odoo/odoo'...
remote: Enumerating objects: 26830, done.
remote: Counting objects: 100% (26830/26830), done.
remote: Compressing objects: 100% (22141/22141), done.
remote: Total 26830 (delta 7800), reused 12110 (delta 3826), pack-reused 0
Receiving objects: 100% (26830/26830), 114.21 MiB | 201.00 KiB/s, done.
Resolving deltas: 100% (7800/7800), done.
Checking out files: 100% (23948/23948), done.
Odoo source contains a file requirements.txt that contains list of required Python libraries. We can easily install all required Python libraries as follows.
# pip3.6 install -r /opt/odoo/odoo/requirements.txt
Start Odoo CRM and create config file.
# su - odoo -c "/opt/odoo/odoo/odoo-bin --addons-path=/opt/odoo/odoo/addons -s --stop-after-init"
2019-12-05 15:57:57,210 39135 INFO ? odoo: Odoo version 13.0
2019-12-05 15:57:57,210 39135 INFO ? odoo: Using configuration file at /opt/odoo/.odoorc
2019-12-05 15:57:57,210 39135 INFO ? odoo: addons paths: ['/opt/odoo/odoo/odoo/addons', '/opt/odoo/.local/share/Odoo/addons/13.0', '/opt/odoo/odoo/addons']
2019-12-05 15:57:57,211 39135 INFO ? odoo: database: default@default:default
2019-12-05 15:57:57,799 39135 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf
2019-12-05 15:57:59,301 39135 INFO ? odoo.service.server: Initiating shutdown
2019-12-05 15:57:59,301 39135 INFO ? odoo.service.server: Hit CTRL-C again or send a second signal to force the shutdown.
Move config file to /etc/odoo directory.
# mv /opt/odoo/.odoorc /etc/odoo/odoo.conf
Set location of Odoo logfile in config file.
# sed -i "s,^(logfile = ).*,1"/var/log/odoo/odoo-server.log"," /etc/odoo/odoo.conf
Create symbolic link for Odoo executable.
# ln -s /opt/odoo/odoo/odoo-bin /usr/bin/odoo
A predefined systemd service is provided with Odoo source, therefore, we can use it to create Odoo service on CentOS 7.
# cp /opt/odoo/odoo/debian/odoo.service /usr/lib/systemd/system/
Enable and start Odoo service.
# systemctl enable --now odoo.service
Created symlink from /etc/systemd/system/multi-user.target.wants/odoo.service to /usr/lib/systemd/system/odoo.service.
Configure CentOS 7 firewall to allow Odoo default port 8069/tcp. Optionally you can configure a Reverse Proxy using Varnish Cache to route users via default HTTP port 80/tcp.
# firewall-cmd --permanent --add-port=8069/tcp
success
# firewall-cmd --reload
success
Verify Odoo version.
# odoo --version
Running as user 'root' is a security risk.
Odoo Server 13.0
Open URL http://odoo-server-01.recipes.com:8069/ in a web browser.
Create a database for Odoo as per the above screenshot.
We are reached at the Odoo dashboard.
Final Thoughts
Installing Odoo 13 on CentOS 7 provides a powerful and flexible ERP (Enterprise Resource Planning) solution for businesses of all sizes. With its modular architecture, Odoo allows users to manage sales, inventory, accounting, HR, and more from a unified platform.
After completing the installation, ensure that Odoo services are running smoothly, apply necessary security configurations, and regularly update the system for optimal performance and security. By leveraging Odoo’s features, businesses can streamline operations, improve productivity, and enhance overall management efficiency.
Whether you need cloud optimization, server management, or automation, I provide comprehensive AWS and Linux services. Hire me on Fiverr to elevate your systems.
FAQs
1. What is Odoo 13, and why is it used?
Odoo 13 is a comprehensive business management software that provides ERP and CRM solutions. It helps businesses manage sales, inventory, accounting, human resources, and more in a single platform.
2. What are the prerequisites for installing Odoo 13 on CentOS 7?
To install Odoo 13, you need CentOS 7, Python 3, PostgreSQL database, required dependencies, and a web server like Nginx or Apache for deployment.
3. How do I access the Odoo 13 web interface after installation?
Once installed, you can access the Odoo 13 web interface by opening your server’s IP address or domain name in a web browser, followed by the configured Odoo port (default: 8069).
4. What database does Odoo 13 use on CentOS 7?
Odoo 13 uses PostgreSQL as its database management system to store and manage business data efficiently.
5. How can I ensure Odoo 13 runs smoothly after installation?
To maintain optimal performance, ensure that Odoo and PostgreSQL services are running, apply security configurations, regularly update Odoo, and monitor server resources for smooth operation.