on Install Odoo 8 on CentOS 7

In this article, we will go through the installation of Odoo 8 on CentOS 7 machine. We will create a Python virtual environment and use the Odoo source code from Github.

Install and configure PostgreSQL 9.3

First of all, we need to install PostgreSQL. We'll install PostgreSQL version 9.3 from the official PostgreSQL repository.

rpm -Uvh http://yum.postgresql.org/9.3/redhat/rhel-7-x86_64/pgdg-centos93-9.3-1.noarch.rpm  
yum -y install postgresql93 postgresql93-server postgresql93-devel --disablerepo=* --enablerepo=pgdg93  

After installing the packages, we'll initialize the database, enable the service on boot and start the PostgreSQL server.

/usr/pgsql-9.3/bin/postgresql93-setup initdb
systemctl enable postgresql-9.3.service  
systemctl start postgresql-9.3  

The following command will create a new PostgreSQL user named odoo:

su - postgres -c "createuser -s odoo" 2> /dev/null || true  

Install all nessesary packages

We need the development tools installed:

yum -y groupinstall "Development tools"  

Next, we'll install a few dependencies:

yum -y install zlib-devel bzip2-devel openssl openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel git libpng libjpeg libXext curl xorg-x11-font-utils fontconfig python-virtualenv libevent-devel libxml2-devel libxslt-devel openldap-devel openjpeg-devel freetype-devel libjpeg-turbo-devel libtiff-devel kernel-devel  

Enable EPEL Repository:

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm  
rpm -ivh epel-release-7-5.noarch.rpm  

To be able to print documents in Odoo we'll need the wkhtmltopdf package, which is available in the EPEL repository.

To install wkhtmltopdf run the following command:

yum --enablerepo=epel install wkhtmltopdf  

We'll install Python packages with pip, so let's install pip from the EPEL repository:

yum --enablerepo=epel install python-pip  

Clone Odoo 8 from GitHub

We are going to clone the Odoo 8 repository from GitHub to the /opt/odoo directory.

git clone --branch 8.0 https://www.github.com/odoo/odoo /opt/odoo  

Later, if you want to update your Odoo repository to the latest version just run git pull.

Create a virtual environment for Odoo

Create a new system user named odoo, change the owner ship of the /opt/odoo directory to odoo user and group and switch to it, using the following commands:

useradd odoo  
chown -R odoo: /opt/odoo  
su - odoo  

Now we'll create a virtual environment and install all necessary packages from the requirements.txt file:

/bin/virtualenv odoo
source odoo/bin/activate  
PATH=$PATH:/usr/pgsql-9.3/bin  
pip install -r /opt/odoo/requirements.txt  
exit  

The installation will take a few minutes so go grab a coffee.

Create configuration file and systemctl service

Next, we'll create a basic configuration file and systemctl service for our Odoo instance.

cat > /etc/odoo-server.conf << EOF  
[options]
admin_passwd = admin  
db_host = False  
db_port = False  
db_user = odoo  
db_password = False  
addons_path = /opt/odoo/addons  
without-demo=all  
no-xmlrpc = True  
no-xmlrpcs = True  
no-netrpc = True  
log_db = False  
log_handler = ['[\'["[\\\':INFO\\\']"]\']']  
log_level = info  
logfile = False  
login_message = False  
logrotate = True  
syslog = False  
EOF  
cat > /usr/lib/systemd/system/odoo.service << EOF  
[Unit]
Description=Odoo 8.0 ERP and CRM server  
After=postgresql-9.3.service

[Service]
Type=simple  
User=odoo  
Group=odoo  
ExecStart=/home/odoo/odoo/bin/python /opt/odoo/openerp-server --config=/etc/odoo-server.conf

[Install]
WantedBy=multi-user.target  
EOF  

You can use the following command to view Odoo log: journalctl -f -u odoo.

Final steps

We also need to open port 8069 in our firewall:

firewall-cmd --zone=public --add-port=8069/tcp --permanent  
firewall-cmd --reload  

Finally, we'll enable Odoo on boot and start the service:

systemctl enable odoo.service  
systemctl start odoo  

That's it, Odoo installation is complete. To open Odoo, point your browser at: http://<ip_address>:8069