Cómo instalar Odoo ERP 13 en CentOS 8

Odoo es un software ERP gratuito, de código abierto y el más popular, que ofrece una amplia gama de aplicaciones empresariales, como la gestión de las relaciones con los clientes (CRM), el proceso de ventas, la gestión de proyectos, la fabricación, la facturación, la contabilidad, el comercio electrónico y muchas más. Es una aplicación basada en la web y con todas las funciones que te ayuda a mantener el ERP en cualquier negocio. Odoo viene con 30 módulos principales y más de 4500 módulos creados por la comunidad que te ayudan a personalizarlo desde una pequeña tienda hasta una corporación de nivel empresarial.

En este tutorial, aprenderemos a instalar y configurar Odoo 13 con Nginx como proxy inverso en un servidor CentOS 8.

Requisitos

  • Un servidor que ejecute CentOS 8 con un mínimo de 2 GB de RAM.
  • Un nombre de dominio válido que apunte a la IP de tu servidor. En este tutorial, utilizaremos el dominio exmaple.com..
  • Una contraseña de root configurada en el servidor.

Cómo empezar

Primero, actualiza el sistema e instala el repositorio EPEL con el siguiente comando:

dnf update
dnf install epel-release

A continuación, tendrás que instalar algunas herramientas y dependencias necesarias para construir Odoo en tu sistema.

Puedes instalarlas todas con el siguiente comando:

dnf install python36 python36-devel git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel

Una vez instalados todos los paquetes, puedes pasar al siguiente paso.

Crear un usuario de Odoo

A continuación, tendrás que crear un nuevo usuario del sistema con el nombre odoo y el directorio de inicio /opt/odoo utilizando el siguiente comando:

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

Una vez que hayas terminado, puedes proceder al siguiente paso.

Instalar y configurar PostgreSQL

Odoo utiliza PostgreSQL para almacenar sus datos. Así que necesitarás instalar PostgreSQL en tu servidor. Puedes instalarlo con el siguiente comando:

dnf install postgresql postgresql-server postgresql-contrib

Una vez instalado, inicializa la base de datos con el siguiente comando:

/usr/bin/postgresql-setup initdb

Deberías obtener la siguiente salida:

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

A continuación, inicia el servicio PostgreSQL y permite que se inicie tras el reinicio del sistema con el siguiente comando:

systemctl start postgresql
systemctl enable postgresql

Ahora puedes verificar el PostgreSQL con el siguiente comando:

systemctl status postgresql

Deberías ver la siguiente salida:

? postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-02 01:01:44 EST; 6s ago
  Process: 31805 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
 Main PID: 31808 (postmaster)
    Tasks: 8 (limit: 12552)
   Memory: 16.5M
   CGroup: /system.slice/postgresql.service
           ??31808 /usr/bin/postmaster -D /var/lib/pgsql/data
           ??31809 postgres: logger process   
           ??31811 postgres: checkpointer process   
           ??31812 postgres: writer process   
           ??31813 postgres: wal writer process   
           ??31814 postgres: autovacuum launcher process   
           ??31815 postgres: stats collector process   
           ??31816 postgres: bgworker: logical replication launcher   

A continuación, tendrás que crear un nuevo usuario PostgreSQL con el mismo nombre que el usuario del sistema, como se muestra a continuación:

su - postgres -c "createuser -s odoo"

Instalar Wkhtmltopdf

A continuación, tendrás que instalar la herramienta wkhtmltopdf en tu sistema para que Odoo pueda imprimir informes en PDF. Puedes instalarla con el siguiente comando:

wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
dnf localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm

Una vez instalada, puedes pasar al siguiente paso.

Instalar y configurar Odoo 13

Primero, cambia al usuario de Odoo con el siguiente comando:

su - odoo

A continuación, descarga la última versión de Odoo 13 desde el repositorio Git utilizando el comando git:

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

A continuación, crea un nuevo entorno virtual para la instancia de Odoo 13 con el siguiente comando:

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

A continuación, activa el entorno virtual con el siguiente comando:

source odoo13-venv/bin/activate

Deberías obtener la siguiente salida:

(odoo13-venv) [odoo@centos8 ~]$

A continuación, instala todos los módulos de Python necesarios para Odoo 13 con el siguiente comando:

pip3 install -r odoo13/requirements.txt

Una vez instalados todos los módulos necesarios, desactiva el entorno virtual con el siguiente comando:

deactivate

Finalmente, sal del usuario de Odoo con el siguiente comando:

exit

A continuación, crea un nuevo directorio para almacenar los módulos personalizados de Odoo y los registros de Odoo:

mkdir /opt/odoo/odoo13-custom-addons
mkdir /var/log/odoo13
touch /var/log/odoo13/odoo.log

A continuación, cambia la propiedad de ambos directorios al usuario odoo con el siguiente comando:

chown -R odoo:odoo /opt/odoo/odoo13-custom-addons
chown -R odoo:odoo /var/log/odoo13/

A continuación, crea un nuevo archivo de configuración para Odoo 13 con el siguiente comando:

nano /etc/odoo.conf

Añade las siguientes líneas:

[options]
admin_passwd = admin@123
db_host = False
db_port = False
db_user = odoo
db_password = False
xmlrpc_port = 8069
logfile = /var/log/odoo13/odoo.log
logrotate = True
addons_path = /opt/odoo/odoo13/addons,/opt/odoo/odoo13-custom-addons

Guarda y cierra el archivo cuando hayas terminado.

Crear un archivo de servicio Systemd para Odoo 13

A continuación, tendrás que crear un nuevo archivo de unidad systemd para Odoo 13 para gestionar el servicio de Odoo.

Puedes crearlo con el siguiente comando:

nano /etc/systemd/system/odoo13.service

Añade las siguientes líneas:

[Unit]
Description=Odoo13
#Requires=postgresql-10.6.service
#After=network.target postgresql-10.6.service

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

[Install]
WantedBy=multi-user.target

Guarda y cierra el archivo. A continuación, recarga el demonio systemd con el siguiente comando:

systemctl daemon-reload

A continuación, inicia el servicio de Odoo y permite que se inicie tras el reinicio del sistema con el siguiente comando:

systemctl start odoo13
systemctl enable odoo13

También puedes verificar el estado de Odoo con el siguiente comando:

systemctl status odoo13

Deberías obtener la siguiente salida:

? odoo13.service - Odoo13
   Loaded: loaded (/etc/systemd/system/odoo13.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-02 01:15:43 EST; 2s ago
 Main PID: 17022 (python3)
    Tasks: 4 (limit: 12552)
   Memory: 63.7M
   CGroup: /system.slice/odoo13.service
           ??17022 /opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf

Dec 02 01:15:43 centos8 systemd[1]: Started Odoo13.

Por defecto, Odoo escucha en el puerto 8069. Puedes comprobarlo con el siguiente comando:

netstat -plntu | grep 8069

Deberías ver la siguiente salida:

tcp        0      0 0.0.0.0:8069            0.0.0.0:*               LISTEN      17022/python3

Configurar Nginx como Proxy Inverso para Odoo 13

A continuación, tendrás que instalar y configurar Nginx como proxy inverso para la instancia de Odoo 13.

Primero, instala el servidor web Nginx con el siguiente comando:

dnf install nginx

Una vez instalado, crea un nuevo archivo de configuración del host virtual con el siguiente comando:

nano /etc/nginx/conf.d/odoo13.conf

Añade las siguientes líneas:

upstream odoo {
 server 127.0.0.1:8069;
}
server {
    listen 80;
    server_name example.com;

    access_log /var/log/nginx/odoo13.access.log;
    error_log /var/log/nginx/odoo13.error.log;

        location / {
        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;


        proxy_redirect off;
        proxy_pass http://odoo;
    }

location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odoo;
    }

    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

Guarda y cierra el archivo cuando hayas terminado. A continuación, inicia el servicio Nginx y habilítalo para que se inicie tras el reinicio del sistema con el siguiente comando

systemctl start nginx
systemctl enable nginx

Puedes verificar el estado del servicio Nginx con el siguiente comando:

systemctl status nginx

Deberías ver la siguiente salida:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-02 01:25:15 EST; 6s ago
  Process: 17244 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 17241 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 17239 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 17245 (nginx)
    Tasks: 3 (limit: 12552)
   Memory: 5.4M
   CGroup: /system.slice/nginx.service
           ??17245 nginx: master process /usr/sbin/nginx
           ??17246 nginx: worker process
           ??17247 nginx: worker process

Dec 02 01:25:15 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 02 01:25:15 centos8 nginx[17241]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 02 01:25:15 centos8 nginx[17241]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 02 01:25:15 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.

Configurar el cortafuegos

A continuación, tendrás que permitir que el servicio Nginx a través de firewalld acceda a la instancia de Odoo 13 desde el sistema remoto.

Puedes ejecutar el siguiente comando para permitir el servicio Nginx a través de firewalld:

firewall-cmd --permanent --zone=public --add-service=nginx
firewall-cmd --reload

Por defecto, SELinux está activado en CentOS 8. Así que tendrás que permitir HTTP a través de SELinux. Puedes permitirlo con el siguiente comando:

setsebool -P httpd_can_network_connect on

Acceder a la interfaz web de Odoo 13

Ahora, Odoo 13 está instalado y configurado. Es el momento de acceder a la interfaz web de Odoo 13.

Abre tu navegador web y escribe la URL http://example.com. Serás redirigido a la siguiente página:

Configurar los detalles de la base de datos para Odoo ERP

Ahora, proporciona tu contraseña maestra, el nombre de la base de datos, el correo electrónico, la contraseña, el país y haz clic en el botón Crear base de datos. Serás redirigido a la página de administración de Odoo 13:

Odee ERP Apps

Conclusión

En el tutorial anterior, has aprendido a instalar y configurar Odoo 13 en un servidor CentOS 8. También has aprendido a configurar Nginx como proxy inverso para Odoo 13. Ahora puedes personalizar tu instancia de Odoo 13 según las necesidades de tu negocio.

También te podría gustar...