How to Install Odoo 11 on Ubuntu 16.04 with Nginx as a Reverse Proxy

 In Dedicated, VPS


– Ubuntu 16.04 VPS / Dedi
– SSH access with root privileges
– PostgreSQL server
– Python version 3
– Nginx web server

Login via SSH and update the system

Login to your Ubuntu 16.04 system with SSH as user root

ssh root@IP_Address -p Port_number

Once you are logged in, run the following command to update all intalled packages to the latest available version

apt update && apt upgrade

Install PostgreSQL server

Install Odoo 11 on Ubuntu 16.04 with Nginx as a Reverse ProxyOdoo needs a PostgreSQL database to store its information, so we will have to install PostgreSQL server. PostgreSQL can be easily installed with the

apt install -y postgresql


Once it is installed, enable the PostgreSQL server to start automatically upon server reboot

systemctl enable postgresql

Add repository and install Odoo

Odoo is not available in the official Ubuntu 16.04 repository, so in order to install it we will need to add the Odoo repository to the server. In order to do it, run the following commands

wget -O – | apt-key add –
echo “deb ./” >> /etc/apt/sources.list.d/odoo.list

Next, update the local package database

apt update

and install Odoo using the apt package manager

apt -y install odoo

This command will install Odoo, Python 3 and all necessary Python modules, create PostgreSQL user and start the Odoo instance. After the installation completes, you can check the status of the Odoo service:

systemctl status odoo


odoo.service – Odoo Open Source ERP and CRM
Loaded: loaded (/lib/systemd/system/odoo.service; enabled; vendor preset: enabled)
Active: active (running)
Main PID: 7693 (odoo)
CGroup: /system.slice/odoo.service
└─7693 /usr/bin/python3 /usr/bin/odoo –config /etc/odoo/odoo.conf –logfile /var/log/odoo/odoo-server.log

After the installation is completed, edit Odoo’s configuration file and set the master admin password.

nano /etc/odoo/odoo.conf

Uncomment the ‘admin_passwrd’ line, and set a password as shown below

admin_passwd = MASTER_PASSWORD

where MASTER_PASSWORD is an actual strong password.

Restart the Odoo instance for the changes to take effect

systemctl restart odoo

At this point you should be able to access Odoo using your server’s IP address. Open your favorite web browser and navigate to http://IP_Address:8069

Install Nginx web server and configure reverse proxy

In order to be able to access Odoo with a domain name, instead of typing the IP address and the port number, we need a web server. In this tutorial we will install and use Nginx. Run the following command to install it

apt -y install nginx

and enable it to start on server boot

systemctl enable nginx

Create Nginx server block for the domain name you will use for accessing Odoo. For example, we will use

nano /etc/nginx/sites-available/

pstream oddo {

server {
listen 80 default;

access_log /var/log/nginx/;
error_log /var/log/nginx/;

proxy_buffers 16 64k;
proxy_buffer_size 128k;

location / {
proxy_pass http://oddo;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;

location ~* /web/static/ {
proxy_cache_valid 200 60m;
proxy_buffering on;
expires 864000;
proxy_pass http://oddo;

Save the file and activate the Nginx block by creating a symbolic link

ln -s /etc/nginx/sites-available/ /etc/nginx/sites-enabled/

restart the web server for the changes to take effect

systemctl restart nginx

Recommended Posts

Start typing and press Enter to search