Búsqueda de sitios web

Instale Odoo 15 en CentOS 8|AlmaLinux 8 con Let's Encrypt |


Esta publicación ha sido escrita para guiar a los usuarios de Linux a través de la instalación del sistema ERP Odoo 15 en CentOS 8/AlmaLinux 8. Odoo es una aplicación de gestión empresarial de código abierto con funciones de POS, CRM, gestión de proyectos, creación de sitios web, marketing, gestión de almacenes, Comercio electrónico, facturación y contabilidad, fabricación y muchas otras funciones interesantes. Estas funciones adicionales se pueden desbloquear a través de muchos complementos de Odoo disponibles para su instalación.

A partir de la actualización de este artículo, la última versión del software Odoo ERP es la versión 15. Comenzaremos la instalación con la actualización del sistema, instalando todas las dependencias necesarias, como el servidor de base de datos PostgreSQL, y finalmente realizando la instalación real de Odoo ERP en CentOS 8/AlmaLinux. 8. Nginx se utilizará como proxy frontal para el sistema Odoo ERP y CRM en CentOS 8/AlmaLinux 8.

Paso 1: actualice el sistema operativo, configure el nombre de host y el DNS

Inicie sesión en el servidor y realice la actualización del sistema, luego reinicie.

sudo dnf -y update

Después de reiniciar el sistema, configure el nombre de host correcto.

sudo hostnamectl set-hostname erp.hirebestengineers.com --static

Agregue también un registro A válido en su servidor DNS.

Guarde el registro y valide que esté funcionando haciendo ping o excavando.

$ sudo dnf -y install bind-utils
$ dig A erp.hirebestengineers.com +short
168.119.127.45

Paso 2: Agregar el repositorio EPEL al servidor

Agregue el repositorio EPEL ejecutando los siguientes comandos.

sudo yum -y install epel-release vim bash-completion

Ponga SELinux en modo permisivo.

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Ejecute el comando yum repolist.

$ sudo yum repolist
repo id                                                     repo name
AppStream                                                   AlmaLinux 8 - AppStream
BaseOS                                                      AlmaLinux 8 - Base
epel                                                        Extra Packages for Enterprise Linux 8 - x86_64
epel-modular                                                Extra Packages for Enterprise Linux Modular 8 - x86_64
extras                                                      AlmaLinux 8 - Extras

Paso 3: Instale el servidor de base de datos PostgreSQL

El repositorio de Odoo ERP utiliza el servidor de base de datos PostgreSQL para el almacenamiento de datos. Los paquetes están disponibles en Módulos DNF.

Deshabilite el módulo PostgreSQL predeterminado actual.

sudo dnf -qy module disable postgresql

Habilite el módulo PostgreSQL 13.

sudo dnf module -y enable postgresql:13

Luego instale los paquetes del cliente y del servidor PostgreSQL.

sudo dnf -y install @postgresql

Después de la instalación, se requiere la inicialización de la base de datos antes de poder iniciar el servicio.

$ sudo /usr/bin/postgresql-setup --initdb --unit postgresql
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

Inicie y habilite el servidor de base de datos.

$ sudo systemctl enable --now postgresql
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service.

Crear usuario de base de datos odoo.

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

Paso 4: Instale wkhtmltopdf en sistemas basados en EL

Odoo utiliza wkhtmltopdf para generar informes en formato PDF. La versión recomendada de wkhtmltopdf para instalar es 0.12.6 y está disponible en la página de descarga de wkhtmltopdf, en la sección de archivo.

sudo yum -y install wget
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos8.x86_64.rpm
sudo yum localinstall ./wkhtmltox-0.12.6-1.centos8.x86_64.rpm

Continuar con la instalación:

Dependencies resolved.
======================================================================================================================================================================================================
 Package                                              Architecture                           Version                                               Repository                                    Size
======================================================================================================================================================================================================
Installing:
 wkhtmltox                                            x86_64                                 1:0.12.6-1.centos8                                    @commandline                                  15 M
Installing dependencies:
 libfontenc                                           x86_64                                 1.1.3-8.el8                                           appstream                                     37 k
 libjpeg-turbo                                        x86_64                                 1.5.3-10.el8                                          appstream                                    156 k
 libpkgconf                                           x86_64                                 1.4.2-1.el8                                           baseos                                        35 k
 pkgconf                                              x86_64                                 1.4.2-1.el8                                           baseos                                        38 k
 pkgconf-m4                                           noarch                                 1.4.2-1.el8                                           baseos                                        17 k
 pkgconf-pkg-config                                   x86_64                                 1.4.2-1.el8                                           baseos                                        15 k
 ttmkfdir                                             x86_64                                 3.0.9-54.el8                                          appstream                                     62 k
 xorg-x11-font-utils                                  x86_64                                 1:7.5-40.el8                                          appstream                                    103 k
 xorg-x11-fonts-75dpi                                 noarch                                 7.5-19.el8                                            appstream                                    2.8 M
 xorg-x11-fonts-Type1                                 noarch                                 7.5-19.el8                                            appstream                                    522 k

Transaction Summary
======================================================================================================================================================================================================
Install  11 Packages

Total size: 19 M
Total download size: 3.7 M
Installed size: 129 M
Is this ok [y/N]: y

Confirmar la versión instalada.

$ wkhtmltopdf --version
wkhtmltopdf 0.12.6 (with patched qt)

Estás listo para continuar con el siguiente paso de la instalación real de Odoo en CentOS 8/AlmaLinux 8.

Paso 5: Instale Odoo 15 en CentOS 8/AlmaLinux 8

Agregar repositorio EPEL:

sudo yum -y install epel-release

Habilite también el repositorio de PowerTools.

sudo dnf config-manager --set-enabled powertools

Instale Python y otras dependencias de compilación:

sudo yum -y install vim bash-completion zip git gcc openldap-devel python3 python3-devel redhat-rpm-config libxslt-devel libjpeg-devel freetype-devel bzip2-devel

Agregue usuario y grupo del sistema Odoo.

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

Establezca la contraseña para la cuenta de usuario creada.

$ sudo passwd odoo
Changing password for user odoo.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Verificar datos de usuario:

$ id odoo
uid=992(odoo) gid=989(odoo) groups=989(odoo)

Cambie a la cuenta del usuario creado:

sudo su - odoo

Clonar la rama 15 de Github.

git -C /opt/odoo/ clone https://www.github.com/odoo/odoo --depth 1 --branch 15.0

Cree Python Virtualenv.

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

Activar el entorno virtual creado.

source odoo-venv/bin/activate

Instale las dependencias de Python en el archivo de requisitos.

pip3 install -r odoo/requirements.txt

Después de instalaciones exitosas, desactive el entorno virtual,

deactivate
exit

Cree un archivo de registro de Odoo:

sudo touch /var/log/odoo.log

Crear ruta de complementos personalizados:

sudo mkdir /opt/odoo/odoo/custom-addons

Establezca los permisos de directorio correctos:

sudo chown -R odoo:odoo /opt/odoo/ /var/log/odoo.log

Cree un archivo de configuración de instancia de Odoo:

$ sudo vim  /etc/odoo.conf
[options]
proxy_mode = True
; This is the password that allows database operations:
admin_passwd = MyStr0ngAdminP@ssw0rd
db_host = False
db_port = False
db_user = odoo
db_password = False
xmlrpc_port = 8069
logfile = /var/log/odoo.log
logrotate = True
addons_path = /opt/odoo/odoo/addons,/opt/odoo/odoo/custom-addons

Cree el archivo de unidad de servicio Systemd.

sudo tee /etc/systemd/system/odoo.service<<EOF
[Unit]
Description=Odoo ERP Server
Requires=postgresql.service
After=network.target postgresql.service

[Service]
User=odoo
Group=odoo
Type=simple
SyslogIdentifier=odoo
PermissionsStartOnly=true
ExecStart=/opt/odoo/odoo-venv/bin/python3 /opt/odoo/odoo/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target
EOF

Servicios de recarga del sistema:

sudo systemctl daemon-reload

Inicie el servicio odoo creado.

sudo systemctl start odoo
sudo systemctl restart odoo

Habilítelo para que se inicie en el arranque.

$ sudo systemctl enable odoo
Created symlink /etc/systemd/system/multi-user.target.wants/odoo.service → /etc/systemd/system/odoo.service.

Confirme si el servicio Odoo está configurado para iniciarse en el arranque.

$ systemctl is-enabled odoo
enabled

Compruebe si está funcionando.

$ systemctl status odoo
 odoo.service - Odoo ERP Server
   Loaded: loaded (/etc/systemd/system/odoo.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-10-11 18:38:30 CEST; 48s ago
 Main PID: 25201 (python3)
    Tasks: 4 (limit: 24392)
   Memory: 59.2M
   CGroup: /system.slice/odoo.service
           └─25201 /opt/odoo/odoo-venv/bin/python3 /opt/odoo/odoo/odoo-bin -c /etc/odoo.conf

Oct 11 18:38:30 erp.hirebestengineers.com systemd[1]: Started Odoo ERP Server.

El servicio Odoo debe vincularse al puerto TCP 8069 una vez iniciado.

$ sudo ss -tunelp | grep 8069
tcp     LISTEN   0        128              0.0.0.0:8069          0.0.0.0:*       users:(("python3",pid=25201,fd=4)) uid:992 ino:64882 sk:5 <->

Paso 6: Configurar Nginx Proxy (sin SSL): no recomendado

Instale el servidor web Nginx en CentOS 8:

sudo yum -y install nginx
sudo systemctl enable --now nginx

Cree un nuevo archivo de configuración para odoo.

sudo vim /etc/nginx/conf.d/odoo.conf

Modifique este fragmento de configuración para que se ajuste a su configuración.

# Odoo Upstreams
upstream odooserver {
 server 127.0.0.1:8069;
}

server {
    listen 80;
    server_name erp.hirebestengineers.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
    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

Reemplace erp.computingforgeeks  con su nombre de dominio y luego valide el archivo de configuración de Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Si todo parece bien, reinicie Nginx.

sudo systemctl restart nginx

Paso 7: Configurar el proxy Nginx (con certificado SSL): recomendado

Si su servidor tiene una IP pública, puede crear un registro DNS A para que su dominio apunte al servidor Odoo y solicite el certificado SSL Let's Encrypt gratuito.

Instale el servidor Nginx.

sudo yum -y install nginx
sudo systemctl enable --now nginx

Instale la herramienta certbot.

sudo yum -y install epel-release wget
sudo yum -y install certbot

Detenga el servicio Nginx.

sudo systemctl stop nginx

Obtenga certificados SSL Let's Encrypt para su dominio.

export DOMAIN="erp.hirebestengineers.com"
export EMAIL="[email "
sudo certbot certonly --standalone -d ${DOMAIN} --preferred-challenges http --agree-tos -n -m ${EMAIL} --keep-until-expiring

La ruta a los archivos de certificado se muestra en la sección “NOTAS IMPORTANTES”.

IMPORTANT NOTES:
Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/erp.hirebestengineers.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/erp.hirebestengineers.com/privkey.pem
Your cert will expire on 2021-01-09. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew all of your certificates, run
"certbot-auto renew"
Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
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

Cree cron para la renovación del certificado.

$ sudo crontab -e
15 3 * * * /usr/bin/certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"

Cree el archivo de configuración de Nginx.

sudo vim /etc/nginx/conf.d/odoo.conf

Pegue lo siguiente en el archivo y modifíquelo para adaptarlo a su entorno.

# Odoo Upstreams
upstream odooserver {
 server 127.0.0.1:8069;
}

# http to https redirection
server {
    listen 80;
    server_name erp.hirebestengineers.com;
    return 301 https://erp.hirebestengineers.com$request_uri;
}

server {
    listen 443 ssl;
    server_name erp.hirebestengineers.com;
    access_log /var/log/nginx/odoo_access.log;
    error_log /var/log/nginx/odoo_error.log;
   
   # SSL
    ssl_certificate /etc/letsencrypt/live/erp.hirebestengineers.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/erp.hirebestengineers.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/erp.hirebestengineers.com/chain.pem;


    # 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;
}

Valide sus configuraciones de Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reinicie Nginx.

sudo systemctl restart nginx

Paso 8: Acceda a Odoo 15 en CentOS 8/AlmaLinux 8

Acceda a la página web de Odoo en su nombre de dominio desde una web: https://DNShostname.

También puede acceder a la página web de Odoo directamente en:

http://<your_server_IP_address>:8069

En la primera página, establezca el nombre de la base de datos, la dirección de correo electrónico del usuario administrador y la contraseña para el usuario administrador.

Ahora tiene Odoo ERP instalado y ejecutándose en el servidor CentOS 8/AlmaLinux 8. Siga visitando nuestro sitio web para conocer los últimos artículos.

Más artículos sobre CentOS 8/AlmaLinux 8:

  • Cómo instalar el clúster Kubernetes MicroK8s en CentOS 8
  • Cómo configurar TigerVNC en CentOS 8 para RDP
  • Instale el cliente Google Hangouts en CentOS 8

Artículos relacionados: