Odoo Installation · 12 min read · Nov 12, 2025

Como Instalar o Software Odoo 14 ERP no Ubuntu 20.04

Odoo (anteriormente conhecido como OpenERP) é um conjunto auto-hospedado de mais de 10.000 aplicativos de código aberto adequados para uma variedade de necessidades empresariais, incluindo CRM, eCommerce, contabilidade, inventário, gerenciamento de projetos e ponto de venda. Esses aplicativos são totalmente integrados e acessados através de uma interface web comum.

Neste tutorial, aprenderemos a instalar o Odoo 14 Stack em um servidor baseado em Ubuntu 20.04.

Pré-requisitos

  1. Um servidor baseado em Ubuntu 20.04 com um mínimo de 2GB de RAM para hospedar o Odoo Stack.
  2. Um segundo servidor baseado em Ubuntu 20.04 com um mínimo de 2GB de RAM para hospedar o banco de dados PostgreSQL. Você pode, no entanto, instalar o banco de dados no mesmo servidor que o Odoo, mas para ambientes de produção, é altamente recomendado que você o instale em um servidor separado. Você também pode escolher qualquer uma das opções de banco de dados gerenciadas disponíveis de qualquer provedor de sua escolha.
  3. O requisito de RAM dependerá do número de usuários simultâneos que estarão usando o stack. Um guia detalhado sobre como calcular os requisitos do sistema pode ser encontrado na documentação do Odoo.
  4. Mantenha seus sistemas atualizados. shell $ sudo apt update $ sudo apt upgrade
  5. Um usuário não-root com privilégios sudo em ambos os servidores.

Configurar regras de Firewall

Para os propósitos deste tutorial, assumiremos que você tem o firewall ufw instalado em ambos os servidores.

No servidor Odoo, precisaremos que as portas 22, 80, 443, 6010, 5432 e 8069 estejam abertas. A porta 22 é usada para SSH, 80 é para HTTP, 443 é para HTTPS, 6010 é usada para comunicação do Odoo, 5432 é usada pelo PostgreSQL e 8069 é usada pela aplicação do servidor Odoo.

Execute os seguintes comandos para abrir as portas necessárias no servidor Odoo.

$ sudo ufw allow "OpenSSH"
$ sudo ufw allow 80,443,6010,5432,8069,8072/tcp
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 6010/tcp
$ sudo ufw allow 5432/tcp
$ sudo ufw allow 8069/tcp
$ sudo ufw allow 8072/tcp

No servidor PostgreSQL, precisamos abrir as portas 22, 6010 e 5432. Abra-as usando os comandos que acabamos de discutir.

Atribuir Nomes de Host

Você pode usar os endereços IP dos servidores ou usar seus Nomes de Domínio Totalmente Qualificados (FQDN), se disponíveis. Para o nosso tutorial, usaremos FQDNs e, para isso, precisamos definir nomes de host em ambos os servidores.

No servidor Odoo, abra o arquivo /etc/hosts.

$ sudo nano /etc/hosts

Certifique-se de que ele se pareça com o seguinte.

127.0.0.1    localhost
127.0.0.1    odoo.seudominio.com         odoo
10.1.1.10    postgresql.seudominio.com   postgresql

No servidor PostgreSQL, abra o arquivo e certifique-se de que ele se pareça com o seguinte.

127.0.0.1    localhost
127.0.0.1    postgresql.seudominio.com   postgresql
10.1.2.10    odoo.seudominio.com         odoo

Pressione Ctrl + X para fechar o editor e pressione Y quando solicitado a salvar o arquivo.

Instalar e Configurar PostgreSQL

O Ubuntu 20.04 vem com o PostgreSQL 12 por padrão e nós o instalaremos. Execute o seguinte comando no servidor PostgreSQL.

$ sudo apt install postgresql-12 postgresql-server-dev-12

Em seguida, precisamos criar um usuário de banco de dados odoo.

$ sudo -u postgres createuser odoo -U postgres -dP

A opção -u executa o comando como usuário postgres.

A opção -U indica o nome do usuário para conectar.

A opção -d concede ao usuário permissão para criar bancos de dados.

A opção -p solicita a senha do novo usuário.

Configurar Autenticação Baseada em Host

Precisamos dar permissão ao serviço PostgreSQL para poder se conectar ao servidor Odoo.

Primeiro, pare o serviço PostgreSQL.

$ sudo systemctl stop postgresql

Abra o arquivo /etc/postgresql/12/main/pg_hba.conf para edição.

$ sudo nano /etc/postgresql/12/main/pg_hba.conf

Cole a seguinte linha no final.

host        all     odoo        odoo.seudominio.com     md5

Esta linha concede permissão ao usuário odoo para se conectar a todos os bancos de dados dentro deste servidor. Você também pode especificar o nome dos bancos de dados em vez de usar a palavra-chave all.

Pressione Ctrl + X para fechar o editor e pressione Y quando solicitado a salvar o arquivo.

Configurar Endereço de Escuta do PostgreSQL

Em seguida, precisamos permitir que o servidor de banco de dados escute conexões remotas. Abra o arquivo /etc/postgresql/12/main/postgresql.conf para edição.

$ sudo nano /etc/postgresql/12/main/postgresql.conf

Altere a linha listen_addresses de

#listen_addresses = 'localhost' # qual(is) endereço(s) IP para escutar;

para.

#Da Seção CONEXÕES E AUTENTICAÇÃO
listen_addresses = '*'

O * significa que ele escutará todos os endereços IP. Você pode alterá-lo para o endereço IP da sua instância do odoo.

Pressione Ctrl + X para fechar o editor e pressione Y quando solicitado a salvar o arquivo.

Habilitar e Iniciar o Serviço PostgreSQL

Como nossa configuração está concluída, é hora de iniciar e habilitar o serviço PostgreSQL.

$ sudo systemctl start postgresql && sudo systemctl enable postgresql

Instalar Odoo

Instalar dependências e Preparar para instalação

Crie um novo usuário do sistema para gerenciar os processos do Odoo no servidor Odoo.

$ sudo adduser --system --home=/opt/odoo --group odoo

Precisamos instalar algumas dependências do sistema, mas primeiro, precisamos habilitar repositórios de origem. Para fazer isso, faça backup da lista de fontes original e, em seguida, habilite todos os repositórios de origem e atualize a lista de repositórios.

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list~
$ sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
$ sudo apt update

Instale as dependências do sistema necessárias para a configuração do Odoo 14.

 $ sudo apt install python3-pip python3-suds python3-all-dev python3-venv python3-dev python3-setuptools python3-tk libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev pkg-config libtiff5-dev libjpeg8-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev liblcms2-utils libwebp-dev tcl8.6-dev tk8.6-dev libyaml-dev fontconfig xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils libpq-dev
$ sudo apt build-dep lxml

Instale o Nodejs.

$ sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt install nodejs

Instale o pacote Less CSS usando o Node.

$ sudo npm install -g less less-plugin-clean-css

Baixe o pacote wkhtmltopdf versão 0.12.6.

$ cd /tmp
$ wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb

Instale o pacote.

$ sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb

Para garantir que o wkhtmltopdf funcione corretamente, copie os binários para /usr/bin e dê as permissões adequadas.

$ sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
$ sudo chmod a+x /usr/bin/wk*
$ cd ~

Baixar Arquivos do Odoo

Clone o repositório do Github do Odoo em seu sistema.

$ sudo git clone https://github.com/odoo/odoo.git --depth 1 --branch 14.0 --single-branch /opt/odoo

Para nosso propósito, estamos copiando o Odoo para o diretório /opt/odoo de onde ele será instalado.

Configurar Ambiente Virtual Python

Esta etapa é opcional, mas é recomendada, pois um ambiente virtual python para Odoo ajudará a evitar conflitos com os módulos Python do sistema operacional, especialmente ao realizar atualizações do SO.

Para isso, usaremos virtualenv.

  1. Crie um novo ambiente virtualenv para o Odoo. shell $ python3 -m venv /home//odoo-env
  2. Ative o ambiente virtual. Estamos criando um ambiente no diretório home do usuário do sistema. Você é livre para escolher qualquer local que desejar. shell $ source /home//odoo-env/bin/activate
  3. Atualize o PIP, só por precaução. shell (odoo-env) $ pip3 install --upgrade pip
  4. Instale o wheel do Python no ambiente virtual. shell $ pip3 install wheel

Instalar Dependências do Python

Instale as dependências do Python necessárias para o Odoo 14.

$ pip3 install -r /opt/odoo/doc/requirements.txt
$ pip3 install -r /opt/odoo/requirements.txt

Os requisitos levarão algum tempo para serem instalados, então tenha paciência.

Verifique se os requisitos estão instalados corretamente verificando a lista de módulos Python instalados.

$ pip3 list
Package                       Version
----------------------------- ---------
alabaster                     0.7.12
appdirs                       1.4.4
attrs                         20.3.0
Babel                         2.6.0
beautifulsoup4                4.9.3
cached-property               1.5.2
certifi                       2020.12.5
chardet                       3.0.4
decorator                     4.3.0
defusedxml                    0.7.1
docutils                      0.14
ebaysdk                       2.1.5
feedparser                    5.2.1
freezegun                     0.3.15
gevent                        20.9.0
greenlet                      0.4.17
html2text                     2018.1.9
idna                          2.6
imagesize                     1.2.0
isodate                       0.6.0
Jinja2                        2.11.2
libsass                       0.17.0
lxml                          4.6.1
Mako                          1.0.7
MarkupSafe                    1.1.0
num2words                     0.5.6
ofxparse                      0.19
packaging                     20.9
passlib                       1.7.1
Pillow                        8.0.1
pip                           21.0.1
pkg-resources                 0.0.0
polib                         1.1.0
psutil                        5.6.6
psycopg2                      2.8.5
pyasn1                        0.4.8
pyasn1-modules                0.2.8
pydot                         1.4.1
Pygments                      2.8.1
pyparsing                     2.4.7
PyPDF2                        1.26.0
pyserial                      3.4
python-dateutil               2.7.3
python-ldap                   3.1.0
python-stdnum                 1.8
pytz                          2019.1
pyusb                         1.0.2
qrcode                        6.1
reportlab                     3.5.55
requests                      2.21.0
requests-toolbelt             0.9.1
setuptools                    44.0.0
six                           1.15.0
snowballstemmer               2.1.0
soupsieve                     2.2
Sphinx                        3.5.2
sphinx-patchqueue             1.0.4
sphinxcontrib-applehelp       1.0.2
sphinxcontrib-devhelp         1.0.2
sphinxcontrib-htmlhelp        1.0.3
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.3
sphinxcontrib-serializinghtml 1.1.4
unidiff                       0.6.0
urllib3                       1.24.3
vobject                       0.9.6.1
Werkzeug                      0.16.1
wheel                         0.36.2
xlrd                          1.2.0
XlsxWriter                    1.1.2
xlwt                          1.3.0
zeep                          3.2.0
zope.event                    4.5.0
zope.interface                5.2.0

Saia do ambiente virtual Python.

$ deactivate

Configurar Odoo

Copie o arquivo de configuração padrão do Odoo para criar um novo.

$ sudo cp /opt/odoo/debian/odoo.conf /etc/odoo-server.conf

Abra o arquivo para edição.

$ sudo nano /etc/odoo-server.conf

Edite o arquivo para que ele se pareça com o seguinte.

[options]
; Esta é a senha que permite operações no banco de dados:
admin_passwd = admin
db_host = postgresql.seudominio.com
db_port = False
db_user = odoo
db_password = odoo_password
addons_path = /opt/odoo/addons
xmlrpc_port = 8069

Pressione Ctrl + X para fechar o editor e pressione Y quando solicitado a salvar o arquivo.

A opção admin_passwd é a senha que permite operações administrativas dentro da GUI do Odoo. Certifique-se de escolher uma senha segura.

A opção db_host é o FQDN ou o endereço IP do servidor PostgreSQL.

A opção db_port é definida como falsa, pois a porta padrão do PostgreSQL 5432 está sendo usada. Se você quiser usar uma porta diferente, precisará atualizar este valor.

A opção db_user é o nome do usuário do PostgreSQL.

A opção db_password é a senha do usuário PostgreSQL ‘odoo’ que criamos anteriormente no servidor PostgreSQL.

A opção addons_path é o caminho padrão dos Addons. Você também pode adicionar um caminho personalizado para Addons separando-os com vírgulas.

A opção xmlrpc_port é a porta na qual o Odoo escuta.

Criar serviço Odoo

Para garantir que o Odoo continue em execução mesmo após uma reinicialização do sistema, precisamos criar um serviço para ele.

Crie um arquivo /lib/systemd/system/odoo-server.service e abra-o para edição.

$ sudo nano /lib/systemd/system/odoo-server.service

Cole o seguinte código nele.

[Unit]
Description=Odoo Open Source ERP and CRM

[Service]
Type=simple
PermissionsStartOnly=true
SyslogIdentifier=odoo-server
User=odoo
Group=odoo
ExecStart=/home//odoo-env/bin/python3 /opt/odoo/odoo-bin --config=/etc/odoo-server.conf --addons-path=/opt/odoo/addons/
WorkingDirectory=/opt/odoo/
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Substitua /home/ pelo local que você escolheu para instalar o Ambiente Virtual Python.

Pressione Ctrl + X para fechar o editor e pressione Y quando solicitado a salvar o arquivo.

Definir permissões de arquivo

Defina permissões no arquivo odoo-server.service para que apenas o usuário Odoo possa lê-lo ou executá-lo.

$ sudo chmod 755 /lib/systemd/system/odoo-server.service
$ sudo chown odoo: /lib/systemd/system/odoo-server.service

Defina a propriedade no ambiente Python e no diretório de instalação do Odoo.

$ sudo chown -R odoo: /opt/odoo/
$ sudo chown -R odoo: /home//odoo-env

Restringir o arquivo de configuração do Odoo.

$ sudo chown odoo: /etc/odoo-server.conf
$ sudo chmod 640 /etc/odoo-server.conf

Iniciar o servidor Odoo

Inicie e habilite o servidor Odoo.

$ sudo systemctl start odoo-server
$ sudo systemctl enable odoo-server

Verifique o status do servidor.

$ sudo systemctl status odoo-server

No seu navegador, abra a URL http://:8069 ou http://odoo.seudominio.com:8069. Se tudo estiver funcionando corretamente, você deverá ver a tela de criação do banco de dados do Odoo.

Tela de Instalação do Odoo

Preencha todos os campos. Marque o campo Dados de Demonstração para preencher o banco de dados com dados de exemplo e clique no botão Criar banco de dados.

Em seguida, você verá uma lista de aplicativos que pode escolher e selecionar.

Na primeira vez que você criar um banco de dados, a página de addons levará um tempo para carregar, então não atualize a página.

Instalar e Configurar Nginx

Até agora, temos usado o servidor Odoo para executar o stack. Mas, idealmente, é melhor executá-lo no Nginx usando um proxy, pois isso nos permitirá instalar SSL nele.

Instale o Nginx.

$ sudo apt install nginx

Para executá-lo via Nginx, precisamos executar o Odoo no localhost. Para mudar isso, pare o serviço Odoo.

$ sudo systemctl stop odoo-server

Abra o arquivo de configuração do servidor Odoo.

$ sudo nano /etc/odoo-server.conf

Adicione as seguintes linhas a ele.

xmlrpc_interface = 127.0.0.1
proxy_mode = True

Crie um arquivo de configuração do Nginx para o Odoo.

$ sudo nano /etc/nginx/sites-available/odoo.conf

Cole o código abaixo.

#servidor odoo
upstream odoo {
 server 127.0.0.1:8069;
}
upstream odoochat {
 server 127.0.0.1:8072;
}

# http -> https
server {
   listen 80;
   server_name odoo.seudominio.com;
   rewrite ^(.*) https://$host$1 permanent;
}

server {
 listen 443 ssl http2;
 server_name odoo.seudominio.com;
 proxy_read_timeout 720s;
 proxy_connect_timeout 720s;
 proxy_send_timeout 720s;

 # Adicionar Cabeçalhos para modo proxy do odoo
 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;

 # Parâmetros SSL
 ssl_certificate /etc/letsencrypt/live/odoo.seudominio.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/odoo.seudominio.com/privkey.pem;
 ssl_session_timeout 1d;
 ssl_session_cache shared:MozSSL:10m;  # cerca de 40000 sessões
 ssl_session_tickets off;
 ssl_protocols TLSv1.2 TLSv1.3;
 ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
 ssl_prefer_server_ciphers off;
 ssl_dhparam /etc/ssl/certs/dhparam.pem;

 # log
 access_log /var/log/nginx/odoo.access.log;
 error_log /var/log/nginx/odoo.error.log;

 # Redirecionar solicitações longpoll para a porta de longpolling do odoo
 location /longpolling {
 proxy_pass http://odoochat;
 }

 # Redirecionar solicitações para o servidor backend do odoo
 location / {
   proxy_redirect off;
   proxy_pass http://odoo;
 }

 # gzip comum
 gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
 gzip on;
}

Pressione Ctrl + X para fechar o editor e pressione Y quando solicitado a salvar o arquivo.

Ative este arquivo de configuração vinculando-o ao diretório sites-enabled.

$ sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/

Teste a configuração do Nginx.

$ sudo nginx -t

Instalar SSL

Instalaremos SSL usando o serviço Let’s Encrypt.

Para isso, instale o Certbot.

$ sudo apt install certbot

Pare o Nginx porque ele interferirá no processo do Certbot.

$ sudo systemctl stop nginx

Gere o certificado. Também precisamos criar um certificado DHParams.

$ sudo certbot certonly --standalone -d odoo.seudominio.com --preferred-challenges http --agree-tos -n -m [email protected] --keep-until-expiring 
$ sudo systemctl start nginx
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Também precisamos configurar um trabalho cron para renovar o SSL automaticamente. Para abrir o editor crontab, execute o seguinte comando.

$ sudo crontab -e

Cole a seguinte linha no final.

25 2 * * * /usr/bin/certbot renew --quiet --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"

O trabalho cron acima será executado pelo certbot às 2:25 da manhã todos os dias. Você pode alterá-lo para qualquer coisa que desejar.

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Iniciar Odoo

Agora que tudo está configurado, podemos iniciar o servidor Odoo novamente.

$ sudo systemctl start odoo-server

Inicie o Odoo em seu navegador via https://odoo.seudominio.com. Você verá uma tela descrita anteriormente. Insira os detalhes necessários para criar o banco de dados e você deve fazer login no Odoo e ver uma tela como esta.

Página Inicial do Odoo

Conclusão

Isso conclui nosso tutorial sobre como instalar o Odoo no servidor Ubuntu 20.04. Se você tiver alguma dúvida, poste nos comentários abaixo.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.