Android

Como instalar o odoo 13 no ubuntu 18.04

How To Install Odoo 13 on Ubuntu 18.04

How To Install Odoo 13 on Ubuntu 18.04

Índice:

Anonim

Odoo é um popular conjunto de aplicativos de negócios de código aberto. Ele oferece uma variedade de aplicativos, incluindo CRM, comércio eletrônico, criador de sites, cobrança, contabilidade, fabricação, armazém, gerenciamento de projetos, estoque e muito mais, tudo perfeitamente integrado.

O Odoo pode ser instalado de várias maneiras, dependendo do caso de uso e das tecnologias disponíveis. A maneira mais fácil e rápida de instalar o Odoo é usando os repositórios oficiais do Odoo APT.

A instalação do Odoo em um ambiente virtual ou a implantação como um contêiner do Docker permite que você tenha mais controle sobre a configuração do sistema e execute várias versões do Odoo no mesmo sistema.

Neste guia, orientaremos você na instalação e implantação do Odoo 13 dentro de um ambiente virtual Python no Ubuntu 18.04. Vamos baixar o Odoo do repositório do Github e usar o Nginx como proxy reverso.

Instalando pré-requisitos

Entre no seu Ubuntu como um usuário sudo e atualize o cache do Apt:

sudo apt update

Instale o Git, Pip, Node.js e as ferramentas necessárias para criar dependências do Odoo:

sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less

Criando um usuário do sistema

Crie um usuário do sistema que executará o Odoo, chamado odoo13 com o diretório inicial /opt/odoo13 :

sudo useradd -m -d /opt/odoo13 -U -r -s /bin/bash odoo13

Você pode definir o nome do usuário como desejar, desde que crie um usuário do PostgreSQL com o mesmo nome.

Instalando e configurando o PostgreSQL

Odoo usa o PostgreSQL como back-end do banco de dados. Para instalar o PostgreSQL, execute o seguinte comando:

sudo apt install postgresql

Após a conclusão da instalação, crie um usuário do PostgreSQL com o mesmo nome que o usuário do sistema criado anteriormente, no nosso caso é odoo13 :

sudo su - postgres -c "createuser -s odoo13"

Instalando o Wkhtmltopdf

O pacote wkhtmltox fornece um conjunto de ferramentas de linha de comando de código aberto que podem renderizar HTML em PDF e vários formatos de imagem. Para poder imprimir relatórios em PDF, você precisará instalar a ferramenta wkhtmltopdf . A versão recomendada para o Odoo é 0.12.5 , que não está disponível nos repositórios padrão do Ubuntu 18.04.

Faça o download do pacote usando o seguinte comando wget:

wget

Quando o download estiver concluído, instale o pacote digitando:

sudo apt install./wkhtmltox_0.12.5-1.bionic_amd64.deb

Instalando e configurando o Odoo 13

Como mencionado anteriormente, instalaremos o Odoo a partir da fonte dentro de um ambiente virtual Python isolado.

Primeiro, mude para o usuário "odoo13":

sudo su - odoo13

Clone o código-fonte do Odoo 13 no GitHub:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo13/odoo

Após a conclusão do download, crie um novo ambiente virtual Python para o Odoo:

cd /opt/odoo13 python3 -m venv odoo-venv

Ative o ambiente com o seguinte comando:

source odoo-venv/bin/activate

Instale todos os módulos Python necessários com o pip3:

pip3 install wheel pip3 install -r odoo/requirements.txt Se você encontrar algum erro de compilação durante a instalação, verifique se todas as dependências necessárias listadas na seção Installing Prerequisites estão instaladas.

Depois de concluído, desative o ambiente digitando:

deactivate

Criaremos um novo diretório que conterá os complementos de terceiros.

mkdir /opt/odoo13/odoo-custom-addons

Posteriormente, adicionaremos esse diretório ao parâmetro addons_path . Este parâmetro define uma lista de diretórios nos quais o Odoo procura por módulos.

Volte para o seu usuário sudo:

exit

Crie um arquivo de configuração com o seguinte conteúdo:

sudo nano /etc/odoo13.conf /etc/odoo13.conf

; This is the password that allows database operations: admin_passwd = my_admin_passwd db_host = False db_port = False db_user = odoo13 db_password = False addons_path = /opt/odoo13/odoo/addons, /opt/odoo13/odoo-custom-addons Não se esqueça de alterar o my_admin_passwd para algo mais seguro.

Criando um arquivo de unidade Systemd

Abra seu editor de texto e crie um arquivo de unidade de serviço chamado odoo13.service com o seguinte conteúdo:

sudo nano /etc/systemd/system/odoo13.service /etc/systemd/system/odoo13.service

Description=Odoo13 Requires=postgresql.service After=network.target postgresql.service Type=simple SyslogIdentifier=odoo13 PermissionsStartOnly=true User=odoo13 Group=odoo13 ExecStart=/opt/odoo13/odoo-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf StandardOutput=journal+console WantedBy=multi-user.target

Notifique o systemd que existe um novo arquivo de unidade:

sudo systemctl daemon-reload

Inicie o serviço Odoo e habilite-o para iniciar na inicialização executando:

sudo systemctl enable --now odoo13

Verifique o status do serviço:

sudo systemctl status odoo13

A saída deve ser semelhante a abaixo, indicando que o serviço Odoo está ativo e em execução.

● odoo13.service Loaded: loaded (/etc/systemd/system/odoo13.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-10-19 20:06:23 UTC; 3s ago Main PID: 1860 (python3) Tasks: 4 (limit: 2362) CGroup: /system.slice/odoo13.service └─1860 /opt/odoo13/odoo-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf

Para ver as mensagens registradas pelo serviço Odoo, use o comando abaixo:

sudo journalctl -u odoo13

Testando a instalação

Abra seu navegador e digite: http://:8069 http://:8069

Supondo que a instalação seja bem-sucedida, uma tela semelhante à seguinte será exibida:

Configurando o Nginx como proxy de terminação SSL

O servidor da web padrão do Odoo está servindo tráfego por HTTP. Para tornar a implantação do Odoo mais segura, configuraremos o Nginx como um proxy de terminação SSL que servirá o tráfego por

O proxy de terminação SSL é um servidor proxy que lida com a criptografia / descriptografia SSL. Isso significa que o proxy de terminação (Nginx) processará e descriptografará as conexões TLS de entrada (HTTPS) e transmitirá as solicitações não criptografadas ao serviço interno (Odoo). O tráfego entre Nginx e Odoo não será criptografado (HTTP).

O uso de um proxy reverso oferece muitos benefícios, como balanceamento de carga, terminação SSL, armazenamento em cache, compactação, exibição de conteúdo estático e muito mais.

Verifique se você atendeu aos seguintes pré-requisitos antes de continuar com esta seção:

  • Nome de domínio apontando para o IP do servidor público. Usaremos o certificado example.com .Nginx installed.SSL para o seu domínio. Você pode instalar um certificado SSL Let's Encrypt criptografado gratuitamente.

Abra seu editor de texto e crie / edite o bloco do servidor de domínio:

sudo nano /etc/nginx/sites-enabled/example.com

A configuração a seguir define a terminação SSL, o redirecionamento HTTP para HTTPS, o redirecionamento WWW para não WWW, armazena em cache os arquivos estáticos e ativa a compactação GZip.

/etc/nginx/sites-enabled/example.com

# 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.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; 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/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; # 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; } Não se esqueça de substituir example.com pelo seu domínio Odoo e defina o caminho correto para os arquivos de certificado SSL. Os trechos usados ​​nesta configuração são criados neste guia.

Quando terminar, reinicie o serviço Nginx:

sudo systemctl restart nginx

Em seguida, precisamos dizer ao Odoo para usar o proxy. Para fazer isso, abra o arquivo de configuração e adicione a seguinte linha:

/etc/odoo13.conf

proxy_mode = True

Reinicie o serviço Odoo para que as alterações entrem em vigor:

sudo systemctl restart odoo13

Nesse ponto, o proxy reverso está configurado e você pode acessar sua instância do Odoo em: https://example.com

Alterando a interface de encadernação

Esta etapa é opcional, mas é uma boa prática de segurança.

Por padrão, o servidor Odoo escuta a porta 8069 em todas as interfaces. Para desativar o acesso direto à instância do Odoo, você pode bloquear a porta 8069 para todas as interfaces públicas ou forçar o Odoo a ouvir apenas na interface local.

Vamos configurar o Odoo para escutar apenas no 127.0.0.1 . Abra a configuração e adicione as duas linhas a seguir no final do arquivo:

/etc/odoo13.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Salve o arquivo de configuração e reinicie o servidor Odoo para que as alterações entrem em vigor:

sudo systemctl restart odoo13

Habilitando o multiprocessamento

Por padrão, o Odoo está trabalhando no modo multithreading. Para implantações de produção, é recomendável mudar para o servidor de multiprocessamento, pois aumenta a estabilidade e faz melhor uso dos recursos do sistema.

Para habilitar o multiprocessamento, você precisa editar a configuração do Odoo e definir um número diferente de zero de processos de trabalho. O número de trabalhadores é calculado com base no número de núcleos de CPU no sistema e na memória RAM disponível.

De acordo com a documentação oficial do Odoo para calcular o número dos trabalhadores e o tamanho da memória RAM necessária, você pode usar as seguintes fórmulas e suposições:

Cálculo do número do trabalhador

  • Número máximo teórico de trabalhador = (system_cpus * 2) + 11 trabalhador pode servir ~ = 6 usuários simultâneos

Cálculo do tamanho da memória RAM

  • Consideraremos que 20% de todos os pedidos são pesados ​​e 80% são mais leves. Solicitações pesadas estão usando cerca de 1 GB de RAM, enquanto as mais leves estão usando cerca de 150 MB de RAM number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))

grep -c ^processor /proc/cpuinfo

Digamos que você tenha um sistema com 4 núcleos de CPU, 8 GB de memória RAM e 30 usuários simultâneos de Odoo.

  • 30 users / 6 = **5** (5 é o número teórico de trabalhadores necessários) (4 * 2) + 1 = **9** (9 é o número máximo teórico de trabalhadores)

Com base no cálculo acima, você pode usar 5 trabalhadores + 1 trabalhador para o trabalhador cron, com um total de 6 trabalhadores.

Calcule o consumo de memória RAM com base no número de trabalhadores:

  • RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM

O cálculo mostra que a instalação do Odoo precisará de cerca de 2 GB de RAM.

Para alternar para o modo multiprocessamento, abra o arquivo de configuração e acrescente os valores calculados:

/etc/odoo13.conf

limit_memory_hard = 2684354560 limit_memory_soft = 2147483648 limit_request = 8192 limit_time_cpu = 600 limit_time_real = 1200 max_cron_threads = 1 workers = 5

Reinicie o serviço Odoo para que as alterações entrem em vigor:

sudo systemctl restart odoo13

O restante dos recursos do sistema será usado por outros serviços executados nesse sistema. Neste guia, instalamos o Odoo junto com o PostgreSQL e o Nginx no mesmo servidor. Dependendo da configuração, você também pode ter outros serviços em execução no servidor.

Conclusão

Este tutorial orientou você na instalação do Odoo 13 no Ubuntu 18.04 em um ambiente virtual Python usando o Nginx como proxy reverso. Também mostramos como habilitar o multiprocessamento e otimizar o Odoo para um ambiente de produção.

Você também pode verificar nosso tutorial sobre como criar backups diários automáticos dos bancos de dados Odoo.

ubuntu odoo postgresql python pip nginx proxy ssl