There are mutliple 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.

Demo
the simplest "installation", only suitable for getting a quick feel for Odoo or trying something out
SaaS

trivial to start with and fully managed and migrated by Odoo S.A., can be used to both test Odoo and use it for your business, but restricts the flexibility of the system somewhat (check: no custom modules? what else?).

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

Packaged installers

simple to get started, allows more flexibility in hosting and deploying the system and greater control over where data is stored. The maintenance burden is shifted to the user.

Suitable for testing Odoo, developing modules and can be used for long-term production use with additional deployment and maintenance work.

Source Install

harder to get started than Packaged installers, provides even greater flexibility: packaged installers don't generally allow multiple running Odoo versions on the same system, and don't provide easy source access to Odoo itself.

Good for developing modules, can be used as base for production deployment.

The source code can be obtained by downloading a tarball or using git. Using git makes it easier to update, switch between multiple versions (including the current development version) or contribute.

docker image
if you usually use docker for development or deployment, an official docker base image is available, see the image's help document for more information

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

Odoo's SaaS provides private instances and starts out free. It can be used to discover and test Odoo and do non-code customizations without having to install it locally.

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, …).

These packages automatically set up all dependencies, but may be difficult to keep up-to-date.

Official packages with all relevant dependency requirements are available on https://nightly.odoo.com.

Windows

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

Configuration

The configuration file can be found at %PROGRAMFILES%\Odoo 8.0-id\server\openerp-server.conf.

The configuration file can be edited to connect to a remote Postgresql, edit file locations or set a dbfilter.

To reload the configuration file, restart the Odoo service via Services ‣ odoo server.

Deb

To install Odoo 8.0 on Debian-based distribution, execute the following commands as root:

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

This will automatically install all dependencies, install Odoo itself as a daemon and automatically start it.

Configuration

The configuration file can be found at /etc/odoo/openerp-server.conf

When the configuration file is edited, Odoo must be restarted using service:

$ sudo service odoo restart
Restarting odoo: ok

RPM

$ sudo yum install -y postgresql-server
$ sudo postgresql-setup initdb
$ sudo systemctl enable postgresql
$ sudo systemctl start postgresql
$ sudo yum-config-manager --add-repo=https://nightly.odoo.com/8.0/nightly/rpm/odoo.repo
$ sudo yum install -y odoo
$ sudo systemctl enable odoo
$ sudo systemctl start odoo

Configuration

The configuration file can be found at /etc/odoo/openerp-server.conf

When the configuration file is edited, Odoo must be restarted via SystemD:

$ sudo systemctl restart 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.

There are two way to get the odoo source source zip or git.

  • Odoo zip can be downloaded from https://nightly.odoo.com/8.0/nightly/src/odoo_8.0.latest.zip, the zip file then needs to be uncompressed to use its content
  • git allows simpler update and easier switching between differents 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.

    The git repository is https://github.com/odoo/odoo.git.

    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
    

Installing dependencies

Source installation requires manually installing dependencies:

  • Python 2.7.

    • on Linux and OS X, included by default
    • on Windows, use the official Python 2.7.9 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:

      $ pip 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:

      $ pip 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 edit the requirements.txt file:

      • remove psycopg2 as you already have it.
      • remove the optional python-ldap, gevent and psutil because they require compilation.
      • add pypiwin32 because it's needed under windows.

      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:\Python27\Scripts\pip.exe install -r requirements.txt
      
  • Less CSS via nodejs

    • on Linux, use your distribution's package manager to install nodejs and npm.

      Once npm is installed, use it to install less and less-plugin-clean-css:

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

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

      C:\> npm install -g less less-plugin-clean-css
      

Running Odoo

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

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> python odoo.py -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.py --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