Pesquisa de site

Configurando OpenERP (Odoo) 9 com Nginx no RHEL/CentOS e Debian/Ubuntu


Odoo, anteriormente conhecido como OpenERP, é um software de negócios ERP baseado na web de open source Enterprise Resource Planning escrito em Python que vem com um conjunto de web aplicativos projetados para todos os negócios, como construtores de sites, módulos de comércio eletrônico, faturamento e contabilidade, recursos humanos, ponto de venda, gerenciamento de relacionamento com o cliente, módulo de estoque, chat ao vivo e muitos outros aplicativos e recursos.

Este tutorial irá guiá-lo sobre como instalar a versão estável mais recente do Odoo (versão 9) em um RHEL/CentOS/Fedora ou < Strong>Sistemas baseados em Debian/Ubuntu com servidor Nginx para atuar como um proxy reverso no frontend para acessar a interface web de forma mais rápida, segura e a partir de portas de navegação web padrão, sem a necessidade de sobrecarregar os usuários para usar portas de redirecionamento do navegador.

Etapa 1: instalar e proteger o banco de dados PostgreSQL

1. Antes de prosseguir com a instalação do Odoo, primeiro certifique-se de que seu sistema vem com pacotes fornecidos pelos repositórios Epel para instalar o banco de dados backend PostgreSQL .

Certifique-se também de que o servidor esteja atualizado com os pacotes e patches de segurança mais recentes, emitindo os comandos abaixo:

----------- On RedHat/CentOS based systems ----------- 
yum update
yum install -y epel-release

----------- On Debian/Ubuntu based systems ----------- 
apt-get update && sudo apt-get upgrade # On Debian 

2. Em seguida, instale o servidor de banco de dados PostgreSQL, que é o banco de dados padrão usado pelo Odoo para armazenar informações.

----------- On RedHat/CentOS based systems -----------
yum install postgresql-server

----------- On Debian/Ubuntu based systems -----------
apt-get install postgresql postgresql-client

Inicialize o banco de dados PostgreSQL.

postgresql-setup initdb	

Agora, finalmente, inicie o banco de dados PostgreSQL emitindo o comando abaixo:

----------- On SystemD systems -----------
systemctl start postgresql

----------- On SysVinit systems -----------
service postgresql start

Como uma etapa adicional para proteger o usuário padrão do PostgreSQL, que possui uma senha em branco, emita o comando abaixo com privilégios de root para alterar a senha:

sudo -u postgres psql
postgres=# \password postgres

Passo 2: Instale o Odoo 9 – OpenERP

3. Para instalar o Odoo 9 do repositório oficial, primeiro crie um novo arquivo de repositório yum para Odoo com o seguinte conteúdo:

Em sistemas CentOS/RHEL

vi /etc/yum.repos.d/odoo.repo

Adicione o seguinte trecho ao arquivo odoo.repo.

[odoo-nightly]
name=Odoo Nightly repository
baseurl=http://nightly.odoo.com/9.0/nightly/rpm/
enabled=1
gpgcheck=1
gpgkey=https://nightly.odoo.com/odoo.key

Em sistemas Debian/Ubuntu

No Debian/Ubuntu emita o seguinte comando para adicionar os repositórios Odoo:

wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
echo "deb http://nightly.odoo.com/9.0/nightly/deb/ ./" >> /etc/apt/sources.list

4. Em seguida, instale o software Odoo 9 a partir de binários.

----------- On RedHat/CentOS based systems -----------
yum install odoo

----------- On Debian/Ubuntu based systems -----------
apt-get update && sudo apt-get install odoo

Em seguida, inicie-o e verifique o status do daemon emitindo os comandos abaixo:

----------- On SystemD systems -----------
systemctl start odoo
systemctl status odoo

----------- On SysVinit systems -----------
service odoo start
service odoo status

Como etapa adicional, você pode verificar a porta de escuta do serviço Odoo executando o comando ss ou netstat:

ss -tulpn
OR
netstat -tulpn

Por padrão, o Odoo escuta conexões de rede na porta 8069/TCP.

Etapa 3: configurar o Odoo a partir da interface da Web

5. Para configurar o Odoo, abra um navegador e acesse a interface web do Odoo no seguinte URI:

http://host-or-IP-address:8069/

6. Em seguida, você será solicitado a criar um novo banco de dados para Odoo e definir uma senha forte para a conta de administrador.

7. Depois que o banco de dados for criado, você será redirecionado para o painel web de administração, onde poderá instalar aplicativos e configurar seu ERP. Por enquanto deixe o aplicativo como padrão e saia.

8. Ao retornar à tela de login, clique no link Gerenciar bancos de dados e defina uma senha mestra para proteger o gerenciador de banco de dados Odoo.

9. Depois de proteger o gerenciador de banco de dados Odoo, você pode fazer login em seu aplicativo e começar a configurá-lo ainda mais com os aplicativos e configurações necessários.

Etapa 4: acesse o Odoo do Nginx Frontend

Você pode configurar o sistema para que os usuários possam acessar o painel web Odoo via proxy reverso Nginx. Isso pode facilitar aos usuários uma navegação mais rápida na interface web do Odoo, devido a algum cache de front-end do Nginx, em portas HTTP padrão, sem a necessidade de inserir manualmente a porta http 8069 em seus navegadores. .

Para definir esta configuração primeiro você precisa instalar e configurar o Nginx em seu sistema executando as etapas a seguir.

10. Primeiro instale o servidor web Nginx com o seguinte comando:

----------- On RedHat/CentOS based systems -----------
yum install nginx

----------- On Debian/Ubuntu based systems -----------
apt-get install nginx

11. Em seguida, abra o arquivo de configuração principal do Nginx com um editor de texto e insira o seguinte bloco após a linha que especifica a localização raiz do documento Nginx.

----------- On RedHat/CentOS based systems -----------
vi /etc/nginx/nginx.conf 

----------- On Debian/Ubuntu based systems -----------
nano /etc/nginx/sites-enabled/default

Adicione o seguinte trecho de configuração ao arquivo nginx.conf:

 location / {
        proxy_pass http://127.0.0.1:8069;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

Além disso, comente a instrução Nginx location colocando um # na frente das linhas a seguir. Use a captura de tela abaixo como guia.

#location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
        #       try_files $uri $uri/ =404;
        #}

12. Depois de fazer todas as alterações acima, reinicie o daemon Nginx, mas não antes de executar o comando getenforce para verificar se o Selinux está habilitado em sua máquina.

Em sistemas CentOS/RHEL

Caso a política esteja definida como Aplicada desative-a emitindo os comandos abaixo:

setenforce 0
getenforce

Para desabilitar completamente o Selinux, abra o arquivo /etc/selinux/config com um editor de texto e defina a linha SELINUX como desabilitada.

Se você não deseja desabilitar completamente a política Seliux e apenas deseja relaxar as regras para conceder ao proxy Nginx acesso permissivo ao soquete de rede, execute o seguinte comando:

setsebool httpd_can_network_connect on -P
getsebool -a | grep httpd 

Em seguida, reinicie o daemon Nginx para refletir as alterações feitas acima:

systemctl restart nginx
OR
service nginx restart

13. Este próximo passo é um recurso opcional de segurança e implica a mudança do soquete de rede que o aplicativo Odoo está escutando, alterando o endereço de ligação de todas as interfaces (ou endereço) para somente host local.

Esta alteração deve ser feita apenas em conjunto com o proxy reverso Nginx devido ao fato de que vincular o aplicativo ao host local implica apenas que o Odoo não estará acessível a partir de usuários dentro da LAN ou de outras redes.

Para ativar esta alteração, abra o arquivo /etc/odoo/openerp-server.conf e edite a linha xmlrpc_interface para vincular no localhost apenas conforme sugerido na imagem abaixo.

xmlrpc_interface = 127.0.0.1

Para refletir as alterações, reinicie o serviço Odoo executando o comando abaixo:

systemctl restart odoo.service
OR
service odoo restart

14. Caso sua máquina possua uma linha de defesa de rede fornecida pelo firewall, emita os seguintes comandos para abrir as portas do firewall para o mundo externo para o proxy Nginx:

----------- On FirewallD based systems -----------
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
----------- On IPTables based systems -----------
iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
/etc/init.d/iptables save
----------- On UFW Firewall systems -----------
ufw allow http

15. É isso! Agora você pode acessar com sucesso seu aplicativo ERP Odoo visitando o endereço IP do seu servidor ou nome de domínio.

http://192.168.1.40
http://domain.tld

16. Para executar automaticamente os serviços após a reinicialização do sistema, emita o seguinte comando para ativar todos os daemons em todo o sistema com uma única ação.

------------ On SystemD Systems ------------  
systemctl enable postgresql.service 
systemctl enable odoo.service
systemctl enable nginx.service
------------ On SysVinit Systems ------------ 

chkconfig postgresql on
chkconfig odoo on
chkconfig nginx on

NOTA: Para relatórios em PDF, você deve baixar e instalar manualmente os pacotes binários wkhtmltopdf para sua própria distribuição visitando o link a seguir Instalar wkhtmltopdf para converter página HTML em PDF.