In this tutorial, we will explain, how to install multiple Odoo instances on a single Ubuntu 16.04, using a python virtual environment. This guide should work on other Linux VPS systems as well but was tested and written for an Ubuntu 16.04 VPS.
Table of Contents
1. Log in to your VPS via SSH
ssh user@vps_IP
2. Update the system and install all necessary packages
sudo apt-get update && apt-get -y upgrade sudo apt-get install git wkhtmltopdf python-pip python-dev \ python-virtualenv libevent-dev gcc libjpeg-dev libxml2-dev \ libssl-dev libsasl2-dev node-less libldap2-dev libxslt-dev
3. Install PostgreSQL
Installing PostgreSQL with apt is quick and easy:
apt install postgresql-9.5 postgresql-server-dev-9.5 systemctl enable postgresql.service systemctl start postgresql.service
4. Create Odoo users
We will install two Odoo instances, Odoo version 10 and Odoo version 9. To create system users for both instances run:
sudo adduser --system --group odoo10 --home /opt/odoo10 sudo adduser --system --group odoo9 --home /opt/odoo9
Create PostgreSQL database users, odoo10 and odoo9:
su - postgres -c "createuser --createdb --username postgres --no-createrole --no-superuser --no-password odoo10" su - postgres -c "createuser --createdb --username postgres --no-createrole --no-superuser --no-password odoo9"
5. Install Odoo
First, we will install Odoo version 10. To switch to user odoo10 run:
sudo su - odoo10 -s /bin/bash
Clone the Odoo 10.0 branch from github:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 10.0 --single-branch /opt/odoo10
Create python virtual environment and install all requirements:
cd /opt/odoo10 virtualenv ./venv source ./venv/bin/activate pip install -r requirements.txt
Switch back your user:
exit
To install Odoo version 9, switch to user odoo9:
sudo su - odoo9 -s /bin/bash
Clone the Odoo 9.0 branch from github:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 9.0 --single-branch /opt/odoo9
Create python virtual environment and install all requirements:
cd /opt/odoo9 virtualenv ./venv source ./venv/bin/activate pip install -r requirements.txt
Switch back your user:
exit
6. Configure Odoo
We will configure Odoo 10 to listen on port 8010 and Odoo 9 to port 8009 and set the master admin password. You can also set the ports numbers according to your liking.
>sudo nano /etc/odoo10.conf
[options] admin_passwd = your_strong_admin_password db_host = False db_port = False db_user = odoo10 db_password = False addons_path = /opt/odoo10/addons logfile = /var/log/odoo10.log xmlrpc_port = 8010
sudo nano /etc/odoo9.conf
[options] admin_passwd = your_strong_admin_password db_host = False db_port = False db_user = odoo9 db_password = False addons_path = /opt/odoo9/addons logfile = /var/log/odoo9.log xmlrpc_port = 8009
Create SystemD scripts:
sudo nano /lib/systemd/system/odoo10.service
[Unit] Description=Odoo 10 Requires=postgresql.service After=postgresql.service [Service] Type=simple PermissionsStartOnly=true User=odoo10 Group=odoo10 SyslogIdentifier=odoo10 ExecStart=/opt/odoo10/venv/bin/python2 /opt/odoo10/odoo-bin -c /etc/odoo10.conf [Install] WantedBy=multi-user.target
sudo nano /lib/systemd/system/odoo9.service
[Unit] Description=Odoo 10 Requires=postgresql.service After=postgresql.service [Service] Type=simple PermissionsStartOnly=true User=odoo9 Group=odoo9 SyslogIdentifier=odoo9 ExecStart=/opt/odoo9/venv/bin/python2 /opt/odoo9/openerp-server -c /etc/odoo9.conf [Install] WantedBy=multi-user.target
7. Final steps
Enable both Odoo instances to start on boot:
sudo systemctl enable odoo10.service sudo systemctl enable odoo9.service
To start both Odoo 10 and Odoo 9 instances, run:
sudo systemctl start odoo10.service sudo systemctl start odoo9.service
You can now access your Odoo 10 installation at http://your_ip_address:8010
and Odoo 9 installation at http://your_ip_address:8009
.
That’s it. You have successfully installed both Odoo version 10 and version 9 on your Ubuntu VPS. Now open your browser, type the address of your installation and create a database and admin user. For more information about how to manage your Odoo installation, please refer to the Odoo documentation. If you want to make your Odoo faster, check our tutorial on how to Speed up Odoo
Of course you don’t have to install multiple Odoo instances on a single machine, if you use one of our Odoo VPS Hosting services, in which case you can simply ask our expert Linux admins to setup this for you. They are available 24×7 and will take care of your request immediately.
PS. If you liked this post, on how to install multiple Odoo instances on a single machine, please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.
Hi,
Thanks! Your tutorial was quite helpful for me.
However, on installation, I’m getting an error”Database creation error: Access denied” in all instances, even when using ‘admin’ as the Master password.
What could be the issue?
Please closely follow the instructions. If you do everything as described in our tutorial, you shouldn’t have any issues with your database.
Hi
Thanks for your tutorial.
I followed everything but when I try to connect to xxx.xxx.xx.xx:8010 I’ve got a 500 internal server error and a unable to connect on the 8009. The only things I changed where the users, group users and the folders. I also installed odoo 10 on both folders.
Please check the Odoo logs for more information.
I am getting the same issue with error 500
in the log it shows
psycopg2.OperationalError: FATAL: Peer authentication failed for user “odoo10”
if i am right your tutorial is to install it on a virtual server, how do i go about it if i want to install it directly on my ubuntu 16?
You can install multiple Odoo instances on your server using the same steps provided in our tutorial.
Thanks
Okay so do i skip ssh user@vps_IP and Create python virtual environment and install all requirements?
Also if i want to enable printing in odoo what command am i supposed to include, and at what stage of the installation do i include it?
Hi Ebi,
Yes, if you want to install Odoo on your local Ubuntu machine, you can skip that step.
As for the printing, please check Odoo’s official documentation for more details.
Hi,
Good job, your tutorial was very helpful. it work for me. I have installed v8.0 and v11.0 on ubuntu 17.04.
Hi Mohamed, how you managed to run odoo11 as i know it require python 3 instead of python 2
Did you modified the script
solved by changing the below steps
cd /opt/odoo11
virtualenv –python=python3 ./venv
source ./venv/bin/activate
pip3 install -r requirements.txt
also worked with odoo12
It was indeed a good step by step tutorial.
Please let me know can we have two instances of same version of Odoo like version 10.
Or Do we need some other step.
Please reply
You can use the same steps for same Odoo version.
Hi,
I have a question, this method doesn’t install Nginx? What if I need to enable longpolling or make another modification in Nginx?
Hi Alejandro,
If you are interested in installing Odoo 10 with Nginx, you should check our tutorial at How to Install Odoo 10 on Ubuntu 16.04 with Nginx as a Reverse Proxy
Hi, follow your instructions odoo works fine, but dont save log, can you help me to find the log file please
Hi Jorge,
The path of the log file is defined by the ‘logfile’ option in the Odoo configuration file. Did you check the path?
Will this be updated for the Odoo 12 version, as it uses Python 3. Hope to see that soon, thanks in advance and great tutorial.
Yes, we have plans to publish a blog post for Odoo 12. Thanks
use pip2 install -r requirements.txt instead of pip install -r requirements.txt. pip install does not work in my server. I am not using virtual environment.
Hi ,
I have a server with 6 instances of odoo(6 processes )
But now I am facing speed issues.
I need to tune it for multiprocessor. For example, Worker, limit memory hard and soft, etc…
I have checked many blogs and url all provide ideal configure for a single instance,
I like to know how can I set up these parameters for multiple instanes (6 in my case)
You can enable multiprocessing on your Odoo instances and tune each Odoo instance separately by editing the respective Odoo configuration file. The number of CPU workers, memory limit etc. can be different, depending on the server resources you want to allocate to each Odoo instance.
don`t see log :(
Edit your Odoo configuration file and set a logfile location, e.g.:
logfile = /var/log/odoo10.log
If /var/log/odoo10.log is not created, create it, set proper permissions, then restart the Odoo instance.
what is the password of user odoo10?
There is no password while creating a new system user. You can set it using the
passwd odoo10
commandWhen I try to change the password I must write the current password that I don’t have. What is the current password ?
The current mater admin password is set in your Odoo configuration file in /etc/odoo10.conf
admin_passwd = your_strong_admin_password
hi there! Thanks to this great tutorial!
Worked for me so far. I created 3 instances for different development stages (demo, testing, productive). However, I’m facing the issue that I’m getting error 400 bad request while login in (CSRF token expired).
And from my demo instance I get “errno 98: server address in use.
Seems that I need to change the server port somewhere else?
Thanks so far for the great tutorial!
Regards, Todoo
Correct, you need to configure your Odoo instances to run on their own port. You need to edit the xmlrpc_port in your Odoo conf file then restart the service.
I got 3 odoo12 and 1 odoo 11 instances in my one vps. But the problem is, under HTTP, it is fine. Under HTTPS, I got a problem connecting other ports, only one of the ports is good.
Any detailed instructions about it? please.
You should check your web server configuration or log files for more information about this issue.
You can also create a reverse proxy configuration and access each of your Odoo instances using a different domain or subdomain. You can check some of our newer tutorials on how to configure this with either Apache or Nginx.
Can you tell me about the limited memory soft and hard calculation, in details.
how to decide, how much ram needed for the light user and heavy user?
Please check this blog: https://www.rosehosting.com/blog/how-to-speed-up-odoo/