OS: Ubuntu 20.x (e.g. 20.04)
Resources: 2-core CPU & 2GB of RAM
Access: SSH connection to the server
Permissions: a user with ‘sudo’ privileges
Note: you can execute all of the commands below from the root user, but for security purposes, it is recommended that you use a separate user with sudo privileges.
Step 1: Connect to the Server.
In order to perform any commands on your remote server, you will need to connect to it using the SSH protocol.
Step 2: Set-up Additional Repositories
Odoo 13 depends on a lot of packages. Some are not available in the official Ubuntu repository, which is why we need to add other repositories to the package manager:
sudo add-apt-repository universe
sudo add-apt-repository ppa:deadsnakes/ppa
Note: you will have to press Enter again to confirm the action.
Step 3: Update the System
Update the list of available Ubuntu packages:
sudo apt-get update
Download and install the new version of existing packages:
sudo apt-get upgrade -y
Step 4: Create a Separate User for Odoo 13
To limit the things Odoo 13 can do within your system, let’s create a separate user:
sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo
The user does not have administrative privileges, and it will only be able to operate within one specific directory: /opt/odoo
Step 5: Set-up PostgreSQL
PostgreSQL is used by Odoo 13 to store all of the user and application data. It’s an essential part of the application.
sudo apt-get install postgresql -y
Create a dedicated odoo user in the database:
sudo su - postgres -c "createuser -s odoo"
Step 6 : Install Wkhtmltopdf and Its Dependencies
Among the extra packages that Odoo 13 requires to properly function is Wkhtmltopdf, which makes it possible for the system to print PDF reports.
You won’t find it in the official repository, however, so let’s download it manually:
sudo wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
Additional packages are required for Wkhtmltopdf to run. Install them with the following commands:
sudo apt-get install libjpeg-turbo8 libjpeg-turbo8 libxrender1 xfonts-75dpi xfonts-base -y
sudo apt-get install fontconfig
Note: there may be an error during this step. It’s normal. The next command will fix it.
sudo apt-get install -f
sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb
Point Ubuntu to the location of the installed package:
sudo ln -s /usr/local/bin/wkhtmltopdf /usr/bin
sudo ln -s /usr/local/bin/wkhtmltoimage /usr/bin
Step 7: Install the Odoo 13 Dependencies
Odoo 13 doesn’t work in a vacuum – it needs other tools, too.
Install the necessary packages with this command:
sudo apt-get install python3 python3-pip python3-suds wget git bzr gdebi-core libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev libssl-dev -y
Install additional node packages:
sudo apt-get install node-clean-css node-less git -y
Step 8. Install Python 3.6
The default Python version will not work with Odoo 13. We need to install the 3.6 version, along with all the needed tools:
sudo apt install python3.6 python3.6-dev python3.6-venv
Step 9: Download Odoo 13
To make things simpler, let’s switch to the odoo user that we created earlier:
sudo su - odoo
Let’s download the source code from the official GitHub repository (/opt/odoo/odoo13 will be our main Odoo 13 directory):
git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo/odoo13
Step 10: Set-up the Python Environment
Odoo 13 runs on the Python programming language. But it needs additional modules in order to work correctly. Let’s install them.
First of all, create a virtual Python environment for the Odoo instance (so that the modules don’t affect the system’s Python modules, and vice-versa).
cd /opt/odoo && python3 -m venv odoo13-venv
Activate the virtual environment:
The library and module details are stored in the official requirements.txt file. Let’s use it to install all of the correct modules at once:
pip3 install -r odoo13/requirements.txt
Note: ignore the orange warnings if they appear.
Deactivate the virtual environment and return to the previous user (the one with ‘sudo’ privileges).
deactivate && exit
Step 11: Create Additional Directories for Custom Addons and Odoo Logs
Custom addons will be stored in the odoo13-custom-addons directory. Create it with this command:
sudo mkdir /opt/odoo/odoo13-custom-addons
The owner of the directory must be the odoo user:
sudo chown odoo: /opt/odoo/odoo13-custom-addons
Create an odoo13 directory to store Odoo log files:
sudo mkdir /var/log/odoo13
Create an empty log file:
sudo touch /var/log/odoo13/odoo.log
Make sure the odoo user is the owner of the directory and the log file:
sudo chown -R odoo: /var/log/odoo13/
Step 12 : Configure Your Odoo 13 Instance
The core preferences and settings go into the configuration file called odoo.conf.
We will use nano to create and open the file:
sudo nano /etc/odoo.conf
Copy the text below into the Odoo configuration file:
[options] ; This is the password that allows database operations: admin_passwd = master_password db_host = False db_port = False db_user = odoo db_password = False xmlrpc_port = 8069 ; longpolling_port = 8072 logfile = /var/log/odoo13/odoo.log logrotate = True addons_path = /opt/odoo/odoo13/addons,/opt/odoo/odoo13-custom-addons
Make sure that you change master_password to something more secure. It’s your main Odoo password.
Note: If you are a SolaDrive customer and use one of our Odoo VPS Hosting services you can simply ask our expert Odoo specialists to change your Odoo password for you. We are available 24×7 via chat or ticket and will take care of your request immediately.
Save and close the config file when you’re finished.
Make sure the owner of the config file is the odoo user:
sudo chown odoo:odoo /etc/odoo.conf
Specify the file’s permissions:
sudo chmod 640 /etc/odoo.conf
Step 13: Create the systemd Configuration File
systemd is a service that allows applications to be run on the background as services. Let’s configure Odoo to do exactly that.
We use nano to create and open the Odoo 13 service configuration file:
sudo nano /etc/systemd/system/odoo13.service
Copy the text below into the file (no changes necessary):
[Unit] Description=Odoo13 #Requires=postgresql-10.6.service #After=network.target postgresql-10.6.service [Service] Type=simple SyslogIdentifier=odoo13 PermissionsStartOnly=true User=odoo Group=odoo ExecStart=/opt/odoo/odoo13-venv/bin/python3.6 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf StandardOutput=journal+console [Install] WantedBy=multi-user.target
Save and close the config file when you’re finished.
Step 14: Start Odoo and Activate the Service
Run Odoo 13 as a service:
sudo systemctl start odoo13.service
Enable the Odoo 13 service for it to always run (by default).
sudo systemctl enable odoo13.service
You have now successfully installed Odoo 13 on Ubuntu 20.x.
Step 15: Access the Odoo Graphical Interface
Enter the following URL into your browser:
- Change server_IP to the IP address of the server.
If everything went well, you will be greeted with the Odoo 13 starting screen: