Android

Como implantar o odoo 12 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 é o software empresarial tudo-em-um mais popular do mundo. Ele oferece uma variedade de aplicativos de negócios, incluindo CRM, site, comércio eletrônico, cobrança, contabilidade, fabricação, armazém, gerenciamento de projetos, estoque e muito mais, todos perfeitamente integrados.

O Odoo pode ser instalado de várias maneiras diferentes. A maneira mais fácil e rápida de instalar o Odoo é usando seus repositórios oficiais do APT.

Este tutorial aborda as etapas necessárias para instalar e configurar o Odoo 12 para produção usando o Git source e o ambiente virtual Python em um sistema Ubuntu 18.04.

Antes de você começar

Entre na sua máquina Ubuntu como um usuário sudo e atualize o sistema para os pacotes mais recentes:

sudo apt update && sudo apt upgrade

Instale 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

Criar usuário Odoo

Crie um novo usuário do sistema para o Odoo chamado odoo12 com o diretório inicial /opt/odoo12 usando o seguinte comando:

sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12 Você pode usar qualquer nome para o usuário do Odoo, desde que crie um usuário do PostgreSQL com o mesmo nome.

Instale e configure o PostgreSQL

Instale o pacote PostgreSQL a partir dos repositórios padrão do Ubuntu:

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 é odoo12 :

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

Instalar 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 imprimir relatórios em PDF, você precisará da ferramenta wkhtmltopdf . A versão recomendada para o Odoo é 0.12.1 que não está disponível nos repositórios oficiais do Ubuntu 18.04.

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

wget

Após a conclusão do download, instale o pacote digitando:

sudo apt install./wkhtmltox_0.12.1.3-1~bionic_amd64.deb

Instale e configure o Odoo

Instalaremos o Odoo a partir do repositório GitHub dentro de um ambiente virtual Python isolado.

Antes de iniciar o processo de instalação, mude para o usuário "odoo12":

sudo su - odoo12

Comece clonando o código-fonte do Odoo 12 no repositório do GitHub:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 /opt/odoo12/odoo

Após o download do código-fonte, crie um novo ambiente virtual Python para a instalação do Odoo 12:

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

Em seguida, 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 instalou todas as dependências necessárias listadas na seção Before you begin .

Desative o ambiente usando o seguinte comando:

deactivate

Crie um novo diretório para os complementos personalizados:

mkdir /opt/odoo12/odoo-custom-addons

Volte para o seu usuário sudo:

exit

Em seguida, crie um arquivo de configuração, copiando o arquivo de configuração de amostra incluído:

sudo cp /opt/odoo12/odoo/debian/odoo.conf /etc/odoo12.conf

Abra o arquivo e edite-o da seguinte maneira:

sudo nano /etc/odoo12.conf /etc/odoo12.conf

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

Criar um arquivo de unidade Systemd

Para executar o Odoo como um serviço, precisamos criar um arquivo de unidade de serviço no diretório /etc/systemd/system/ .

Abra seu editor de texto e cole a seguinte configuração:

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

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

Notifique o systemd da existência de um novo arquivo de unidade e inicie o serviço Odoo executando:

sudo systemctl daemon-reload sudo systemctl start odoo12

Verifique o status do serviço com o seguinte comando:

sudo systemctl status odoo12

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

* odoo12.service - Odoo12 Loaded: loaded (/etc/systemd/system/odoo12.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2018-10-09 14:15:30 PDT; 3s ago Main PID: 24334 (python3) Tasks: 4 (limit: 2319) CGroup: /system.slice/odoo12.service `-24334 /opt/odoo12/odoo-venv/bin/python3 /opt/odoo12/odoo/odoo-bin -c /etc/odoo12.conf

Permita que o serviço Odoo seja iniciado automaticamente no momento da inicialização:

sudo systemctl enable odoo12

sudo journalctl -u odoo12

Teste 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:

Configurar o Nginx como proxy de terminação SSL

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. Neste tutorial, usaremos o certificado example.com .Nginx.S.SL instalado para o seu domínio. Você pode instalar um certificado SSL Let's Encrypt criptografado gratuitamente.

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

O proxy de terminação SSL é um servidor proxy que lida com a criptografia / descriptografia SSL. Isso significa que nosso proxy de terminação (Nginx) manipulará e descriptografará as conexões TLS de entrada (HTTPS) e transmitirá as solicitações não criptografadas ao nosso serviço interno (Odoo) para que o tráfego entre o Nginx e o Odoo não seja 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.

Neste exemplo, configuraremos a terminação SSL, o redirecionamento HTTP para HTTPS, o redirecionamento WWW para não WWW, armazenaremos em cache os arquivos estáticos e habilitaremos a compactação GZip.

Abra seu editor de texto e crie o seguinte arquivo:

sudo nano /etc/nginx/sites-enabled/example.com /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 com:

sudo systemctl restart nginx

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

/etc/odoo12.conf

proxy_mode = True

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

sudo systemctl restart odoo12

Nesse momento, seu servidor está configurado e você pode acessar sua instância do Odoo em: https://example.com

Alterar a interface de ligaçã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. Se você deseja desativar o acesso direto à sua instância do Odoo, pode bloquear a porta 8069 para todas as interfaces públicas ou forçar o Odoo a ouvir apenas na interface local.

Neste guia, configuraremos o Odoo para ouvir apenas em 127.0.0.1 . Abra a configuração e adicione as duas linhas a seguir no final do arquivo:

/etc/odoo12.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 odoo12

Ativar multiprocessamento

Por padrão, o Odoo está trabalhando no modo multithreading. Para implantações de produção, é recomendável alternar para o servidor de multiprocessamento, pois aumenta a estabilidade e faz melhor uso dos recursos do sistema. Para habilitar o multiprocessamento, precisamos 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 de trabalhadores e o tamanho de memória RAM necessário, usaremos 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, enquanto 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 tenhamos 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, podemos usar 5 trabalhadores + 1 trabalhador para o trabalhador cron, que é 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 acima mostra que nossa 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 as seguintes linhas:

/etc/odoo12.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 odoo12

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 em um mesmo servidor e, dependendo da sua configuração, você também pode ter outros serviços em execução no seu servidor.

Conclusão

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

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

ubuntu odoo postgresql python pip nginx proxy ssl