Toggle navigation

Installing Odoo

There are multiple ways to install Odoo, or not install it at all, depending on the intended use case.

This documents attempts to describe most of the installation options.

Online
The easiest way to use Odoo in production or to try it.
Packaged installers
Suitable for testing Odoo, developing modules and can be used for long-term production use with additional deployment and maintenance work.
Source Install
Provides greater flexibility: e.g. allow multiple running Odoo versions on the same system. Good for developing modules, can be used as base for production deployment.
Docker
If you usually use docker for development or deployment, an official docker base image is available.

Editions

There are two different Editions of Odoo: the Community and Enterprise versions. Using the Enterprise version is possible on our SaaS and accessing the code is restricted to Enterprise customers and partners. The Community version is freely available to anyone.

If you already use the Community version and wish to upgrade to Enterprise, please refer to From Community to Enterprise (except for Source Install).

Online

Demo

To simply get a quick idea of Odoo, demo instances are available. They are shared instances which only live for a few hours, and can be used to browse around and try things out with no commitment.

Demo instances require no local installation, just a web browser.

SaaS

Trivial to start with, fully managed and migrated by Odoo S.A., Odoo’s SaaS provides private instances and starts out free. It can be used to discover and test Odoo and do non-code customizations (i.e. incompatible with custom modules or the Odoo Apps Store) without having to install it locally.

Can be used for both testing Odoo and long-term production use.

Like demo instances, SaaS instances require no local installation, a web browser is sufficient.

Packaged installers

Odoo provides packaged installers for Windows, deb-based distributions (Debian, Ubuntu, …) and RPM-based distributions (Fedora, CentOS, RHEL, …) for both the Community and Enterprise versions.

These packages automatically set up all dependencies (for the Community version), but may be difficult to keep up-to-date.

Official Community packages with all relevant dependency requirements are available on our nightly server. Both Communtiy and Enterprise packages can be downloaded from our Download page (you must to be logged in as a paying customer or partner to download the Enterprise packages).

Windows

  • Download the installer from our nightly server (Community only) or the Windows installer from the Download page (any edition)
  • Run the downloaded file

  • Accept the UAC prompt
  • Go through the various installation steps

Odoo will automatically be started at the end of the installation.

Linux

Debian/Ubuntu

Odoo 12.0 ‘deb’ package currently supports Debian Stretch, Ubuntu 18.04 or above.

Prepare

Odoo needs a PostgreSQL server to run properly. The default configuration for the Odoo ‘deb’ package is to use the PostgreSQL server on the same host as your Odoo instance. Execute the following command as root in order to install PostgreSQL server :

# apt-get install postgresql -y

In order to print PDF reports, you must install wkhtmltopdf yourself: the version of wkhtmltopdf available in debian repositories does not support headers and footers so it can not be installed automatically. The recommended version is 0.12.1 and is available on the wkhtmltopdf download page, in the archive section.

Repository

Odoo S.A. provides a repository that can be used with Debian and Ubuntu distributions. It can be used to install Odoo Community Edition by executing the following commands as root:

# wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
# echo "deb http://nightly.odoo.com/12.0/nightly/deb/ ./" >> /etc/apt/sources.list.d/odoo.list
# apt-get update && apt-get install odoo

You can then use the usual apt-get upgrade command to keep your installation up-to-date.

At this moment, there is no repository for the Enterprise Edition.

Deb Package

Instead of using the repository as described above, the ‘deb’ package can be downloaded here:

You can then use gdebi:

# gdebi <path_to_installation_package>

Or dpkg:

# dpkg -i <path_to_installation_package> # this probably fails with missing dependencies
# apt-get install -f # should install the missing dependencies
# dpkg -i <path_to_installation_package>

This will install Odoo as a service, create the necessary PostgreSQL user and automatically start the server.

  • python3-vobject: Used in calendars to produce ical files.
  • python3-pyldap: Used to authenticat users with LDAP.
  • python3-qrcode: Used by the hardware driver for ESC/POS

If you need one or all of the packages mentioned in the above warning, you can install them manually. One way to do it, is simply using pip3 like this:

$ sudo pip3 install vobject qrcode
$ sudo apt install libldap2-dev libsasl2-dev
$ sudo pip3 install pyldap

If you need this feature, you can install the python module like this:

$ sudo pip3 install num2words

Fedora

Odoo 12.0 ‘rpm’ package supports Fedora 26. As of 2017, CentOS does not have the minimum Python requirements (3.5) for Odoo 12.0.

Prepare

Odoo needs a PostgreSQL server to run properly. Assuming that the ‘sudo’ command is available and configured properly, run the following commands :

$ sudo dnf install -y postgresql-server
$ sudo postgresql-setup --initdb --unit postgresql
$ sudo systemctl enable postgresql
$ sudo systemctl start postgresql

In order to print PDF reports, you must install wkhtmltopdf yourself: the version of wkhtmltopdf available in Debian repositories does not support headers and footers so it is not used as a direct dependency. The recommended version is 0.12.5 and is available on the wkhtmltopdf download page, in the archive section. Previously recommended version 0.12.1 is a good alternative. More details on the various versions and their respective quirks can be found in our wiki.

Repository

Odoo S.A. provides a repository that can be used with the Fedora distibutions. It can be used to install Odoo Community Edition by executing the following commands:

$ sudo dnf config-manager --add-repo=https://nightly.odoo.com/12.0/nightly/rpm/odoo.repo
$ sudo dnf install -y odoo
$ sudo systemctl enable odoo
$ sudo systemctl start odoo
RPM package

Instead of using the repository as described above, the ‘rpm’ package can be downloaded here:

Once downloaded, the package can be installed using the ‘dnf’ package manager:

$ sudo dnf localinstall odoo_12.0.latest.noarch.rpm
$ sudo systemctl enable odoo
$ sudo systemctl start odoo

Source Install

The source “installation” really is about not installing Odoo, and running it directly from source instead.

This can be more convenient for module developers as the Odoo source is more easily accessible than using packaged installation (for information or to build this documentation and have it available offline).

It also makes starting and stopping Odoo more flexible and explicit than the services set up by the packaged installations, and allows overriding settings using command-line parameters without needing to edit a configuration file.

Finally it provides greater control over the system’s set up, and allows more easily keeping (and running) multiple versions of Odoo side-by-side.

Prepare

Source installation requires manually installing dependencies:

  • Python 3.5+.

    • on Linux and OS X, using your package manager if not installed by default

    • on Windows, use the official Python 3 installer.

  • PostgreSQL, to use a local database

    After installation you will need to create a postgres user: by default the only user is postgres, and Odoo forbids connecting as postgres.

    • on Linux, use your distribution’s package, then create a postgres user named like your login:

      $ sudo su - postgres -c "createuser -s $USER"
      

      Because the role login is the same as your unix login unix sockets can be use without a password.

    • on OS X, postgres.app is the simplest way to get started, then create a postgres user as on Linux
    • on Windows, use PostgreSQL for windows then

      • add PostgreSQL’s bin directory (default: C:\Program Files\PostgreSQL\9.4\bin) to your PATH
      • create a postgres user with a password using the pg admin gui: open pgAdminIII, double-click the server to create a connection, select Edit ‣ New Object ‣ New Login Role, enter the usename in the Role Name field (e.g. odoo), then open the Definition tab and enter the password (e.g. odoo), then click OK.

        The user and password must be passed to Odoo using either the -w and -r options or the configuration file

  • Python dependencies listed in the requirements.txt file.

    • on Linux, python dependencies may be installable with the system’s package manager or using pip.

      For libraries using native code (Pillow, lxml, greenlet, gevent, psycopg2, ldap) it may be necessary to install development tools and native dependencies before pip is able to install the dependencies themselves. These are available in -dev or -devel packages for Python, Postgres, libxml2, libxslt, libevent, libsasl2 and libldap2. Then the Python dependecies can themselves be installed:

      $ pip3 install -r requirements.txt
      
    • on OS X, you will need to install the Command Line Tools (xcode-select --install) then download and install a package manager of your choice (homebrew, macports) to install non-Python dependencies. pip can then be used to install the Python dependencies as on Linux:

      $ pip3 install -r requirements.txt
      
    • on Windows you need to install some of the dependencies manually, tweak the requirements.txt file, then run pip to install the remaning ones.

      Install psycopg using the installer here http://www.stickpeople.com/projects/python/win-psycopg/

      Then use pip to install the dependencies using the following command from a cmd.exe prompt (replace \YourOdooPath by the actual path where you downloaded Odoo):

      C:\> cd \YourOdooPath
      C:\YourOdooPath> C:\Python35\Scripts\pip.exe install -r requirements.txt
      
  • RTLCSS via nodejs

    For languages with right-to-left interface (such as Arabic or Hebrew), the package rtlcss is needed.

    • on Linux, use your distribution’s package manager to install nodejs and npm. Once npm is installed, use it to install rtlcss:

      $ sudo npm install -g rtlcss
      
    • on OS X, install nodejs via your preferred package manager (homebrew, macports) then install less:

      $ sudo npm install -g rtlcss
      
    • on Windows, install nodejs, reboot (to update the PATH) and install rtlcss:

      C:\> npm install -g rtlcss
      

      It is then necessary to edit the System Environment’s variable PATH and add the folder where rtlcss.cmd is located. Typically:

      C:\Users\<user>\AppData\Roaming\npm\
      

Fetch the sources

There are two ways to obtain the Odoo source code: zip or git.

  • Odoo zip can be downloaded from our nightly server or our Download page, the zip file then needs to be uncompressed to use its content
  • git allows simpler update and easier switching between different versions of Odoo. It also simplifies maintaining non-module patches and contributions. The primary drawback of git is that it is significantly larger than a tarball as it contains the entire history of the Odoo project.

Community Edition

The git repository is https://github.com/odoo/odoo.git for the Community edition.

Downloading it requires a git client (which may be available via your distribution on linux) and can be performed using the following command:

$ git clone https://github.com/odoo/odoo.git

Enterprise Edition

If you have access to the Enterprise repository (see Editions if you wish to get access), you can use this command to fetch the addons:

$ git clone https://github.com/odoo/enterprise.git

Running Odoo

Once all dependencies are set up, Odoo can be launched by running odoo-bin.

Configuration can be provided either through command-line arguments or through a configuration file.

Common necessary configurations are:

  • PostgreSQL host, port, user and password.

    Odoo has no defaults beyond psycopg2’s defaults: connects over a UNIX socket on port 5432 with the current user and no password. By default this should work on Linux and OS X, but it will not work on windows as it does not support UNIX sockets.

  • Custom addons path beyond the defaults, to load your own modules

Under Windows a typical way to execute odoo would be:

C:\YourOdooPath> python3 odoo-bin -w odoo -r odoo --addons-path=addons,../mymodules --db-filter=mydb$

Where odoo, odoo are the postgresql login and password, ../mymodules a directory with additional addons and mydb the default db to serve on localhost:8069

Under Unix a typical way to execute odoo would be:

$ ./odoo-bin --addons-path=addons,../mymodules --db-filter=mydb$

Where ../mymodules is a directory with additional addons and mydb the default db to serve on localhost:8069

Virtualenv

Virtualenv is a tool to create Python isolated environments because it’s sometimes preferable to not mix your distribution python modules packages with globally installed python modules with pip.

This section will explain how to run Odoo in a such isolated Python environment.

Here we are going to use virtualenvwrapper which is a set of shell scripts that makes the use of virtualenv easier.

The examples below are based on a Debian 9 distribution but could be adapted on any platform where virtualenvwrapper and virtualenv are able to run.

This section assumes that you obtained the Odoo sources from the zip file or the git repository as explained above. The same apply for postgresql installation and configuration.

Install virtualenvwrapper

$ sudo apt install virtualenvwrapper
$ source /usr/share/virtualenvwrapper/virtualenvwrapper.sh

This will install virtualenvwrapper and activate it immediately. Now, let’s install the tools required to build Odoo dependencies if needed:

$ sudo apt install build-essential python3-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev

Create an isolated environment

Now we can create a virtual environment for Odoo like this:

$ mkvirtualenv -p /usr/bin/python3 odoo-venv

With this command, we ask for an isolated Python3 environment that will be named “odoo-env”. If the command works as expected, your shell is now using this environment. Your prompt should have changed to remind you that you are using an isolated environment. You can verify with this command:

$ which python3

This command should show you the path to the Python interpreter located in the isolated environment directory.

Now let’s install the Odoo required python packages:

$ cd your_odoo_sources_path
$ pip install -r requirements.txt

After a little while, you should be ready to run odoo from the command line as explained above.

When you you want to leave the virtual environment, just issue this command:

$ deactivate

Whenever you want to work again with your ‘odoo-venv’ environment:

$ workon odoo-venv

Docker

The full documentation on how to use Odoo with Docker can be found on the official Odoo docker image page.