In this article, we want to teach you how to Install and Secure Odoo14 on Ubuntu 20.04.
Odoo is the most popular all-in-one business software in the world. It offers a range of business applications, including CRM, website, e-Commerce, billing, accounting, manufacturing, warehouse, project management, inventory, and much more, all seamlessly integrated.
How To Install and Secure Odoo14 on Ubuntu 20.04
Requirements
Install Odoo14 Dependencies
sudo apt update && apt upgrade
sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libfreetype6-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev libxslt1-dev libldap2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev
sudo useradd -m -d /opt/odoo14 -U -r -s /bin/bash odoo14
sudo apt install postgresql
sudo su - postgres -c "createuser -s odoo14"
sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb
sudo apt install ./wkhtmltox_0.12.6-1.bionic_amd64.deb
Install and Configure Odoo14 on Ubuntu 20.04
sudo su - odoo14
git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo
cd /opt/odoo14
python3 -m venv odoo-venv
source odoo-venv/bin/activate
(odoo-venv) $ pip3 install wheel
(odoo-venv) $
pip3 install -r odoo/requirements.txt
(odoo-venv) $ deactivate
mkdir /opt/odoo14/odoo-custom-addons
exit
sudo vi /etc/odoo14.conf
[options]
; This is the password that allows database operations:
admin_passwd = put_your_secure_password
db_host = False
db_port = False
db_user = odoo14
db_password = False
addons_path = /opt/odoo14/odoo/addons,/opt/odoo14/odoo-custom-addons
How To Access Odoo14 Dashboard
sudo vi /etc/systemd/system/odoo14.service
[Unit] Description=Odoo14 Requires=postgresql.service After=network.target postgresql.service [Service] Type=simple SyslogIdentifier=odoo14 PermissionsStartOnly=true User=odoo14 Group=odoo14
ExecStart=/opt/odoo14/odoo-venv/bin/python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf StandardOutput=journal+console [Install] WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now odoo14
sudo systemctl status odoo14
Output odoo14.service - Odoo14 Loaded: loaded (/etc/systemd/system/odoo14.service; enabled; vendor preset> Active: active (running) since Mon 2021-11-08 09:42:10 CET; 36s ago Main PID: 66042 (python3) Tasks: 4 (limit: 2282) Memory: 75.9M CGroup: /system.slice/odoo14.service └─66042 /opt/odoo14/odoo-venv/bin/python3 /opt/odoo14/odoo/odoo-bi
http://your_domain_or_IP_address:8069
How To Secure Odoo14 on Ubuntu 20.04
# apt install certbot
# apt install python3-certbot-nginx
certbot --nginx -d odoo.orcacore.net
Output
Congratulations! You have successfully enabled https://odoo.orcacore.net
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=odoo.orcacore.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/odoo.orcacore.net/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/odoo.orcacore.net/privkey.pem
...
sudo vi /etc/nginx/sites-enabled/odoo.orcacore.net.conf
# Odoo servers upstream odoo { server 127.0.0.1:8069; } upstream odoochat { server 127.0.0.1:8072; } # HTTP -> HTTPS server { listen 80; server_name www.odoo.orcacore.net odoo.orcacore.net; return 301 https://odoo.orcacore.net$request_uri; } # WWW -> NON WWW server { listen 443 ssl http2; server_name www.odoo.orcacore.net; ssl_certificate /etc/letsencrypt/live/odoo.orcacore.net/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/odoo.orcacore.net/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/odoo.orcacore.net/chain.pem; return 301 https://odoo.orcacore.net$request_uri; }
server { listen 443 ssl http2; server_name odoo.orcacore.net; proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; # Proxy headers proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; # SSL parameters ssl_certificate /etc/letsencrypt/live/odoo.orcacore.net/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/odoo.orcacore.net/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/odoo.orcacore.net/chain.pem;
# log files access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
# Handle longpoll requests location /longpolling { proxy_pass http://odoochat; }
# Handle / requests
location / {
proxy_redirect off;
proxy_pass http://odoo;
}
# Cache static files
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass http://odoo;
}
# Gzip
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
sudo systemctl restart nginx
After restarting the Nginx service, you’ll need to tell Odoo to use this configured proxy.
sudo vi /etc/odoo14.conf
proxy_mode = True
sudo systemctl restart odoo14
https://your-domain-name:8069