Instalar Odoo ERP 17 no Rocky, Alma, CentOS, RHEL 9|8
No momento da redação deste artigo, o Odoo ERP 17 é a versão mais recente do incrível software de Planeamento de Recursos Empresariais (ERP) de código aberto, criado para ajudar os processos da sua empresa a manterem-se organizados. O Odoo ERP oferece-lhe uma plataforma com aplicações integradas para resolver todos os problemas do seu negócio, desde RH, CRM, Gestão de Inventário, Finanças, Fabrico, Vendas até Comércio Electrónico. No Odoo ERP, todas estas integrações são distribuídas através de uma abordagem modular que permite começar com poucos módulos e integrar mais conforme necessário. Isto torna o Odoo uma solução altamente flexível e escalável.
Para instalar o Odoo ERP 17 no Rocky Linux, AlmaLinux, CentOS ou RHEL 9/8, é necessário seguir vários passos:
- Instalação das dependências necessárias para executar o Odoo 17
- Criação de ambiente virtual Python
- Instalação do Odoo 17 no Rocky/AlmaLinux/RHEL 9|8
- Configuração do Odoo e do servidor web
- Aceder e utilizar o Odoo
Para as funcionalidades do Odoo ERP 17, consulte as Notas de Lançamento do Odoo 17
Pré-requisitos
Antes de poder prosseguir, terá de cumprir os seguintes requisitos.
Requisitos do Sistema:
- Sistema Operativo: Rocky, Alma, CentOS Stream ou RHEL 8/9 instalado
- CPU: CPU com pelo menos dois núcleos (quanto mais núcleos, melhor, idealmente quad-core).
- RAM: Mínimo de 2GB de memória (quanto mais, melhor; 4GB ou mais é ideal).
- Disco: Mínimo de 20GB de espaço livre em disco para armazenar os dados do Odoo.
Requisitos de Software:
- Python: Python 3.10 ou superior.
- PostgreSQL: PostgreSQL 12 ou superior.
- Node.js e npm: Node.js 12.x ou superior e npm para gestão de recursos.
- Wkhtmltopdf: É necessária uma versão específica do wkhtmltopdf (0.12.5 ou 0.12.6) para imprimir relatórios em PDF.
- Nginx ou Apache: Para proxy inverso (geralmente prefere-se o Nginx).
Vamos começar a instalação do Odoo ERP.
Passo 1 – Instalar as dependências de compilação
Atualize o seu sistema antes de qualquer instalação:
sudo dnf -y updateSe tiver atualizações do kernel, considere reiniciar o sistema antes de prosseguir:
sudo rebootDe seguida, instale as ferramentas de desenvolvimento no seu sistema.
sudo dnf groupinstall -y "Development Tools"Instale bibliotecas adicionais que possam ser necessárias ao construir o Odoo a partir do código-fonte:
sudo dnf install -y vim git gcc bzip2-devel redhat-rpm-config libxslt-devel openldap-devel libjpeg-devel freetype-develPasso 2 – Instalar Python 3.11 e Node.js
Precisamos de instalar o Python 3.10+. Neste artigo, usaremos o Python 3.11.
sudo dnf install python3.11 python3.11-devel python3.11-pipConfirme se está instalado com sucesso verificando a versão.
$ python3.11 --version
Python 3.11.9Vamos também instalar o Node.js. Não há uma versão específica, iremos usar o Node.js v18.
sudo dnf module reset nodejs -y
sudo dnf module install nodejs:18 -yVerifique conferindo o número da versão do Node.js.
$ node --version
v18.20.2Instale o módulo node rtlcss usando npm:
sudo npm install -g rtlcssTambém instale o Less e o Plugin Less Clean CSS:
sudo npm install -g less less-plugin-clean-cssPasso 3 – Instalar e Configurar a base de dados PostgreSQL
É necessário PostgreSQL 12 ou superior. Podemos instalar o PostgreSQL 16, que está disponível nos repositórios APPStream do SO. Reinicie o módulo atual do PostgreSQL.
sudo dnf module -y disable postgresqlAtivar o módulo PostgreSQL 16.
sudo dnf install -y @postgresql:16Também instale o pacote postgresql-devel.
sudo dnf install -y postgresql-develInicializar servidor de base de dados.
sudo postgresql-setup initdbInicie e ative o serviço de base de dados.
sudo systemctl enable --now postgresqlFinalmente, crie o utilizador de base de dados odoo. Forneça a senha para o utilizador quando lhe for solicitado.
sudo su - postgres -c "createuser -s odoo"Para criar um utilizador com palavra-passe, execute:
sudo -u postgres createuser odoo -U postgres -dPPara um servidor de base de dados PostgreSQL remoto, deverá ativar as ligações remotas no seu servidor de BD para que o Odoo possa ligar-se a ele.
Passo 4 – Instalar o wkhtmltopdf
Wkhtmltopdf é uma ferramenta de linha de comando de código aberto usada pelo Odoo para converter HTML em PDF e outros formatos de imagem através do poderoso motor de renderização Webkit. Isto é necessário para a geração de documentos como faturas, relatórios e outros documentos para impressão.
Descarregue e instale o pacote RPM wkhtmltopdf.
- Sistemas baseados em RHEL 9
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox-0.12.6.1-2.almalinux9.x86_64.rpm
sudo dnf install -y ./wkhtmltox-0.12.6.1-2.almalinux9.x86_64.rpm- Sistemas baseados em RHEL 8
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox-0.12.6.1-2.almalinux8.x86_64.rpm
sudo dnf install -y ./wkhtmltox-0.12.6.1-2.almalinux8.x86_64.rpm
Validar instalação:
$ wkhtmltopdf --version
wkhtmltopdf 0.12.6.1 (with patched qt)Passo 5 – Configurar o Ambiente Python do Odoo
Criar um utilizador chamado odoo que irá executar os serviços Odoo.
sudo useradd -m -U -r -d /opt/odoo -s /bin/bash odooInstalar virtualenv:
sudo pip3.11 install virtualenvMudar para a conta de utilizador odoo criada.
sudo su - odooClone o repositório do Github do Odoo localmente.
git clone --depth 1 --branch 17.0 --single-branch https://github.com/odoo/odoo.gitUse o comando virtualenv para criar um ambiente virtual Python para o Odoo ERP.
virtualenv odoo-venvAtivar o ambiente virtual criado.
source odoo-venv/bin/activateAtualize o pip após ativar.
pip3.11 install --upgrade pipInstalar o pacote Python wheel no ambiente
pip3.11 install wheelInstalar os requisitos de Python do Odoo 17
pip3.11 install -r odoo/requirements.txtPara listar todos os pacotes Python instalados no ambiente virtual, execute o seguinte comando:
pip3.11 listCrie um diretório que irá armazenar todos os addons de terceiros.
mkdir odoo/custom-addonsSair do ambiente virtual.
exitPasso 6 – Configurar o Odoo ERP
Copie o ficheiro de configuração de exemplo do Odoo para o diretório /etc no seu sistema.
sudo cp /opt/odoo/odoo/debian/odoo.conf /etc/odoo.confO ficheiro odoo.conf contém configurações essenciais necessárias para que o Odoo funcione corretamente. Abra o ficheiro para edição.
# Open with vim
sudo vim /etc/odoo.conf
# Open with nano
sudo nano /etc/odoo.confAjuste as definições para que fiquem como mostrado abaixo.
[options]
; This is the password that allows database operations:
admin_passwd = Str0ngAdminPasw0rd
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/odoo/addons, /opt/odoo/odoo/custom-addons
default_productivity_apps = True
xmlrpc_port = 8069Para servidor PostgreSQL remoto, configure:
- db_host: Endereço IP do servidor de base de dados PostgreSQL
- db_password: Palavra-passe do utilizador criado na base de dados remota
- db_user: Utilizador de base de dados remoto criado.
Conceda ao ficheiro as permissões adequadas:
sudo chown odoo:odoo /etc/odoo.conf
sudo chmod 640 /etc/odoo.confCriar serviço systemd para o Odoo.
sudo tee /etc/systemd/system/odoo.service<<EOF
[Unit]
Description=Odoo ERP System
Documentation=http://www.odoo.com
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo-venv/bin/python3.11 /opt/odoo/odoo/odoo-bin \
--config=/etc/odoo.conf \
--addons-path=/opt/odoo/odoo/addons/ \
--logfile /var/log/odoo/odoo-server.log
StandardOutput=journal+console
KillMode=mixed
[Install]
WantedBy=multi-user.target
EOFCriar diretório de registos.
sudo mkdir /var/log/odoo/
sudo chown -R odoo:odoo /var/log/odoo/Inicie e ative o serviço odoo.
sudo systemctl daemon-reload
sudo systemctl enable --now odoo.serviceVerifique se o serviço está a funcionar corretamente.
$ systemctl status odoo
● odoo.service - Odoo ERP System
Loaded: loaded (/etc/systemd/system/odoo.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2024-07-18 11:34:34 UTC; 21s ago
Docs: http://www.odoo.com
Main PID: 70809 (python3.11)
Tasks: 4 (limit: 48750)
Memory: 88.2M
CGroup: /system.slice/odoo.service
└─70809 /opt/odoo/odoo-venv/bin/python3.11 /opt/odoo/odoo/odoo-bin --config=/etc/odoo.conf --addons-path=/opt/odoo/odoo/addons/ --logfile /var/log/odoo/odoo-server.log
Jul 18 11:34:34 rocky8.cloudspinx.com systemd[1]: Started Odoo ERP System.Passo 7 – Configurar o firewalld
O serviço está a ouvir na porta 8069.
$ ss -tunelp | grep 8069
tcp LISTEN 0 128 0.0.0.0:8069 0.0.0.0:* users:(("python3.11",pid=70809,fd=4)) uid:989 ino:115353 sk:5 <->Se tiver o firewalld, permita a porta 8069
sudo firewall-cmd --add-port=8069/tcp --permanent
sudo firewall-cmd --reloadPode aceder à consola web do Odoo em http://serverip:8069 e concluir a configuração.
Introduza o valor de admin_passwd definido em odoo.conf para a senha mestre. Especifique o nome da base de dados a criar, por exemplo, odoo17. Depois crie o primeiro utilizador administrador fornecendo o endereço de email e a senha. Opcionalmente, defina o número de telefone, idioma e país.
Depois de concluir a configuração, faça login com o utilizador administrador criado e a sua senha.
Você irá aceder ao painel do Odoo para ativar módulos, etc.
Passo 8 – Configurar o Proxy Nginx
Podemos usar o Nginx para fazer proxy das requisições para o Odoo ERP. Instale o pacote nginx.
sudo dnf -y install nginxAtivar o serviço para iniciar automaticamente com a arranque do sistema.
sudo systemctl enable nginxCriar ficheiro de configuração Nginx para o serviço Odoo.
sudo vim /etc/nginx/conf.d/odoo.confCole e edite os seguintes conteúdos. Deve substituir odoo.example.com pelo seu nome de domínio real.
# Odoo Upstreams
upstream odooserver {
server 127.0.0.1:8069;
}
server {
listen 80;
server_name odoo.example.com;
access_log /var/log/nginx/odoo_access.log;
error_log /var/log/nginx/odoo_error.log;
# Proxy settings
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
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;
# Request for root domain
location / {
proxy_redirect off;
proxy_pass http://odooserver;
}
# Cache static files
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass http://odooserver;
}
# Gzip Compression
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}Validar configurações do nginx.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulSe estiver tudo bem, reinicie o serviço.
sudo systemctl restart nginxAceda ao painel web do Odoo em http://yourdomain.com
Passo 9 – Utilizar SSL da Let’s Encrypt
Para servidores num domínio público, pode usar o SSL gratuito da Let’s Encrypt.
Instale o certbot e o seu plugin para Nginx.
sudo dnf install epel-release
sudo dnf install certbot python3-certbot-nginx -yPedido de SSL da Let’s Encrypt.
DOMAIN=odoo.example.com #replace with your actual domain
sudo certbot --nginx -d $DOMAIN --agree-tosSe não quiser fornecer o endereço de email, useL
sudo certbot --nginx -d $DOMAIN --agree-tos --register-unsafely-without-emailExemplo de saída:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Account registered.
Requesting a certificate for odoo.example.com
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/odoo.example.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/odoo.example.com/privkey.pem
This certificate expires on 2024-10-16.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Deploying certificate
Successfully deployed certificate for odoo.cloudlabske.com to /etc/nginx/conf.d/odoo.conf
Congratulations! You have successfully enabled HTTPS on https://odoo.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Ele irá configurar automaticamente /etc/nginx/conf.d/odoo.conf para incluir SSL.
cat /etc/nginx/conf.d/odoo.confConclusão
Concluímos o nosso tutorial sobre a instalação do Odoo nos sistemas Linux Rocky, AlmaLinux, CentOS e RHEL 9. Começámos por preparar o servidor com as dependências necessárias e, de seguida, procedemos à instalação e configuração do Odoo ERP. Com os seus módulos extensos, personalizações flexíveis e poderosas, o Odoo torna-se uma solução empresarial bem adequada para automatizar processos.


