Kualo / docs
On this page

How to install Odoo with WSGI

Learn how to install and configure Odoo on Kualo hosting using WSGI for optimal performance and resource efficiency.

3 min read Updated 9 Jun 2026

Kualo supports any application that can run on Linux, and Odoo is no exception. Rather than a standard process-based setup, we deploy Odoo using WSGI and run two sub-processes to handle cron jobs and IM chat (longpolling) separately. This approach gives you better performance and more efficient use of server resources.

Before you start

You will need a cPanel account to host your Odoo application. If you have not yet created one, see our guide on how to create a new cPanel account in WHM.

Also check the Odoo documentation for the Python version required by the release you intend to install:

Configure the Python virtual environment

  1. Log in to cPanel and open Setup Python App.

    Setup Python App

  2. Click Create Application and configure the environment. To ensure compatibility with the Odoo Control plugin, set the application path to my_apps/odoo.

    Odoo Setup WSGI

  3. Click Create.

Install Odoo

After creating the application, cPanel will display the command to activate your virtual environment. Log in via SSH, activate the environment, then run the following commands.

This example installs Odoo 14 - adjust the branch name for your chosen version.

rm -rf public
git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 ~/my_apps/odoo/odoo

Next, move into the cloned folder and install Odoo and its dependencies:

(odoo:3.7)kualotest@hostname ~/my_apps/odoo $ cd odoo
(odoo:3.7)kualotest@hostname ~/my_apps/odoo/odoo $ pip install ./

Odoo is installed as a Python module and can be upgraded easily later. Do not delete this folder - it also contains the addons directory.

Set up a PostgreSQL database

  1. In cPanel, go to Databases > PostgreSQL Databases.
  2. Create a new database, a new user, and a password.
  3. Assign the user to the database.

Initialise the Odoo database

Run the following command from your virtual environment to create the database and install the base modules. Replace the placeholder values with your own PostgreSQL credentials.

(odoo:3.7)kualotest@hostname ~/my_apps/odoo $ python odoo/odoo-bin --init \
  --addons-path=odoo/addons \
  --db_host=localhost \
  --db_user=YOUR-PG-USER \
  --db_password="YOUR-PG-PASSWORD" \
  -d YOUR-PG-DBNAME \
  --stop-after-init

This creates the database and places the Odoo filestore at:

/home/YOUR-USERNAME/.local/share/Odoo/filestore

To skip demo content, add --without-demo=all to the command above.

Configure the WSGI entry point

Create or edit the file passenger_wsgi.py in your application root and replace all placeholder values with your own details.

# WSGI entry point for Odoo
# Replace all YOUR-* placeholders with your actual values.

import sys, os
import odoo

# ----------------------------------------------------------
# Common
# ----------------------------------------------------------
odoo.multi_process = False

# Equivalent of the --load command-line option
odoo.conf.server_wide_modules = ['web']
conf = odoo.tools.config

conf['addons_path']  = '/home/YOUR-USERNAME/my_apps/odoo/odoo/addons'
conf['db_user']      = 'YOUR-PG-USER'
conf['db_password']  = 'YOUR-PG-PASSWORD'
conf['db_name']      = 'YOUR-PG-DATABASE'
conf['db_host']      = '127.0.0.1'
conf['db_port']      = 5432
conf['db_template']  = 'template1'
# conf['dbfilter']   = '^YOUR-PG-DATABASE$'
conf['data_dir']     = '/home/YOUR-USERNAME/.local/share/Odoo/filestore'
conf['admin_passwd'] = 'YOUR-MASTER-PASSWORD'

# ----------------------------------------------------------
# Generic WSGI application
# ----------------------------------------------------------
application = odoo.service.wsgi_server.application

odoo.service.server.load_server_wide_modules()

Once saved, visit your domain in a browser. The default login credentials are:

Username: admin
Password: admin

Change the default admin password immediately after your first login.

Enable crons and LiveChat (longpolling)

With Odoo running, you need to start the background cron and IM chat processes.

  1. In cPanel, go to Software > Odoo Control.

  2. Select the amount of RAM you want to allocate.

  3. Start the processes.

    Odoo Control

Your Odoo installation is now fully operational.

Was this helpful?
Your feedback helps us find gaps in the docs.
Still need a hand?
Real people, around the clock - start a chat or open a ticket and we'll help you put it right.