Instalar Odoo en CentOS con Nginx
Odoo es un sistema ERP y CRM de código abierto que se utiliza para gestionar las necesidades básicas de la empresa, incluyendo la gestión de materiales y almacenes, recursos humanos, finanzas, contabilidad, ventas, inventario y muchas otras funciones empresariales. Está construido con Python y utiliza PostgreSQL como base de datos. La última versión de Odoo 14 tiene funciones muy útiles, como un nuevo creador de sitios web, nuevas herramientas de inteligencia empresarial, nuevos y mejorados menús de inventario y MRP, y mucho más.
Este tutorial te mostrará cómo instalar Odoo 14 con Nginx en CentOS 8.
Requisitos previos
- Un servidor con CentOS 8.
- Un nombre de dominio válido apuntado con la IP de tu servidor.
- Una contraseña de root configurada en el servidor.
Cómo empezar
Antes de empezar, tendrás que instalar Python, wkhtmltopdf y otras dependencias necesarias en tu sistema. Ejecuta el siguiente comando para instalarlas todas:
dnf install python3 redhat-rpm-config libxslt-devel bzip2-devel openldap-devel python3-devel git gcc libjpeg-devel freetype-devel curl unzip -y dnf install https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos8.x86_64.rpm
Una vez instaladas todas las dependencias, puedes pasar al siguiente paso.
Instalar y configurar PostgreSQL
Odoo utiliza PostgreSQL como base de datos. Así que necesitarás instalarlo en tu sistema. Ejecuta el siguiente comando para instalar el PostgreSQL:
dnf install postgresql postgresql-server postgresql-contrib -y
Una vez instalado el PostgreSQL, inicializa la base de datos con el siguiente comando:
postgresql-setup initdb
Deberías ver la siguiente salida:
WARNING: using obsoleted argument syntax, try --help WARNING: arguments transformed to: postgresql-setup --initdb --unit postgresql * 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 habilítalo para que se inicie al reiniciar el sistema:
systemctl start postgresql systemctl enable postgresql
A continuación, crea un nuevo usuario para odoo con el siguiente comando:
su - postgres -c "createuser -s odoo14"
Una vez que hayas terminado, puedes proceder al siguiente paso.
Instalar Odoo 14
Se recomienda instalar y ejecutar Odoo como un usuario independiente. Puedes crear un nuevo usuario para Odoo con el siguiente comando:
useradd -m -U -r -d /opt/odoo14 -s /bin/bash odoo14
Nota: El usuario de Odoo y el usuario de PostgreSQL deben ser el mismo.
A continuación, cambia el usuario a Odoo 14 y descarga la última versión de Odoo 14 con el siguiente comando:
su - odoo14 git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo14
Una vez finalizada la descarga, cambia el directorio a odoo14 y crea un nuevo entorno virtual python con el siguiente comando:
cd /opt/odoo14 python3 -m venv odooenv
A continuación, activa el entorno virtual con el siguiente comando:
source odooenv/bin/activate
A continuación, instala otras dependencias de Python con el siguiente comando:
(odooenv) [odoo14@centos8 ~]$ pip3 install wheel (odooenv) [odoo14@centos8 ~]$ pip3 install -r odoo14/requirements.txt
A continuación, desactívate del entorno virtual y sal del usuario de Odoo con el siguiente comando:
(odooenv) [odoo14@centos8 ~]$ deactivate exit
Una vez que hayas terminado, puedes continuar con el siguiente paso.
Configurar Odoo 14
A continuación, tendrás que crear un directorio para almacenar los complementos de Odoo 14. Puedes crearlo con el siguiente comando:
mkdir /opt/odoo14/odoo14-custom-addons
A continuación, establece la propiedad adecuada al directorio de addons:
chown -R odoo14:odoo14 /opt/odoo14/odoo14-custom-addons
A continuación, crea un directorio y un archivo de registro para Odoo 14 y establece la propiedad adecuada:
mkdir /var/log/odoo14 touch /var/log/odoo14/odoo14.log chown -R odoo14: /var/log/odoo14/
A continuación, crea un archivo de configuración de Odoo 14:
nano /etc/odoo14.conf
Añade las siguientes líneas:
[options] ; This is the password that allows database operations: admin_passwd = your_master_password db_host = False db_port = False db_user = odoo14 db_password = False xmlrpc_port = 8069 ; longpolling_port = 8072 logfile = /var/log/odoo14/odoo14.log logrotate = True addons_path = /opt/odoo14/odoo14/addons,/opt/odoo14/odoo14-custom-addons
Guarda y cierra el archivo cuando hayas terminado.
Crear un archivo de unidad Systemd para Odoo 14
A continuación, tendrás que crear un archivo de servicio systemd para gestionar el servicio de Odoo 14. Puedes crearlo con el siguiente comando:
nano /etc/systemd/system/odoo14.service
Añade las siguientes líneas:
[Unit] Description=Odoo14 Requires=postgresql.service After=network.target postgresql.service [Service] Type=simple SyslogIdentifier=odoo14 PermissionsStartOnly=true User=odoo14 Group=odoo14 ExecStart=/opt/odoo14/odooenv/bin/python3 /opt/odoo14/odoo14/odoo-bin -c /etc/odoo14.conf StandardOutput=journal+console [Install] WantedBy=multi-user.target
Guarda y cierra el archivo y luego vuelve a cargar el demonio systemd con el siguiente comando:
systemctl daemon-reload
A continuación, inicia el servicio Odoo 14 y habilítalo para que se inicie al reiniciar el sistema con el siguiente comando:
systemctl start odoo14 systemctl enable odoo14
Ahora puedes comprobar el estado del servicio Odoo 14 con el siguiente comando:
systemctl status odoo14
Deberías obtener la siguiente salida:
? odoo14.service - Odoo14 Loaded: loaded (/etc/systemd/system/odoo14.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2021-05-01 06:29:56 EDT; 5s ago Main PID: 26505 (python3) Tasks: 4 (limit: 25014) Memory: 91.8M CGroup: /system.slice/odoo14.service ??26505 /opt/odoo14/odooenv/bin/python3 /opt/odoo14/odoo14/odoo-bin -c /etc/odoo14.conf May 01 06:29:56 centos8 systemd[1]: Started Odoo14.
Una vez que hayas terminado, puedes continuar con el siguiente paso.
Instalar y configurar Nginx para Odoo 14
En este punto, Odoo 14 está instalado y funcionando. Ahora, se recomienda configurar Nginx como proxy inverso para odoo.
Primero, instala el paquete Nginx con el siguiente comando:
dnf install nginx -y
Una vez instalado Nginx, crea un nuevo archivo de configuración de host virtual Nginx con el siguiente comando:
nano /etc/nginx/conf.d/odoo14.conf
Añade las siguientes líneas:
upstream odoo { server 127.0.0.1:8069; } upstream odoochat { server 127.0.0.1:8072; } server { listen 80; server_name odoo.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; # 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; }
Guarda y cierra el archivo y, a continuación, comprueba si Nginx tiene algún error de sintaxis con el siguiente comando:
nginx -t
Deberías obtener la siguiente salida:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
A continuación, inicia el servicio Nginx y habilítalo para que se inicie al reiniciar el sistema:
systemctl start nginx systemctl enable nginx
También puedes verificar el Nginx con el siguiente comando:
systemctl status nginx
Deberías obtener el siguiente resultado:
? 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 Sat 2021-05-01 06:31:19 EDT; 3s ago Process: 26627 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 26625 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 26623 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 26628 (nginx) Tasks: 3 (limit: 25014) Memory: 5.3M CGroup: /system.slice/nginx.service ??26628 nginx: master process /usr/sbin/nginx ??26629 nginx: worker process ??26630 nginx: worker process May 01 06:31:19 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server... May 01 06:31:19 centos8 nginx[26625]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok May 01 06:31:19 centos8 nginx[26625]: nginx: configuration file /etc/nginx/nginx.conf test is successful May 01 06:31:19 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.
A continuación, edita el archivo de configuración de Odoo 14 y habilita el modo proxy:
nano /etc/odoo14.conf
Añade la siguiente línea:
proxy_mode = True
Guarda y cierra el archivo y reinicia el servicio de Odoo 14 para aplicar los cambios:
systemctl restart odoo14
Configurar Firewall
A continuación, tendrás que permitir el puerto 80 a través del cortafuegos. Puedes permitirlo con el siguiente comando:
firewall-cmd --permanent --add-service=http
A continuación, recarga el cortafuegos para aplicar los cambios:
firewall-cmd --reload
Una vez que hayas terminado, puedes continuar con el siguiente paso.
Accede al Panel de Control de Odoo 14
Ahora, abre tu navegador web y accede a la interfaz web de Odoo 14 utilizando la URL http://odoo.example.com. Serás redirigido a la siguiente página:
Proporciona tu contraseña maestra de Odoo, la base de datos y haz clic en el botón Crear base de datos. Deberías ver el panel de control de Odoo 14 en la siguiente página:
Conclusión
Enhorabuena! has instalado con éxito Odoo 14 ERP con Nginx en CentOS 8. Ahora puedes implementar Odoo en tu entorno de producción y aumentar la productividad.