Cómo instalar el software ERP Odoo en Ubuntu 22.04

Odoo, antes conocido como OpenERP, es uno de los principales software ERP utilizado para gestionar procesos empresariales. Viene con aplicaciones y módulos relacionados con la empresa como CRM, Ventas, facturación, contabilidad, fabricación, almacén y más. Es una buena solución ERP para pequeñas y medianas empresas. Odoo ERP se utiliza en muchos sectores, como empresas de fabricación, empresas de distribución, empresas de I+D, empresas de servicios, empresas de contabilidad, etc.

Este post te mostrará cómo instalar Odoo 15 ERP en Ubuntu 22.04.

Requisitos previos

  • Un servidor con Ubuntu 22.04.
  • 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, se recomienda actualizar todos los paquetes del sistema a la última versión. Puedes actualizarlos ejecutando el siguiente comando:

apt update -y

Una vez actualizado el sistema, instala Python y otras dependencias mediante el siguiente comando:

apt install python3-pip wget python3-dev python3-venv python3-wheel libxml2-dev libpq-dev libjpeg8-dev liblcms2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev build-essential git libssl-dev libffi-dev libmysqlclient-dev libjpeg-dev libblas-dev libatlas-base-dev -y

Una vez instaladas todas las dependencias de Python, instala el paquete wkhtmltopdf con el siguiente comando:

apt-get install wkhtmltopdf -y

A continuación, verifica la versión de wkhtmltopdf utilizando el siguiente comando:

wkhtmltopdf --version

Deberías ver la siguiente salida:

wkhtmltopdf 0.12.6

Odoo utiliza PostgreSQL como base de datos, por lo que también tendrás que instalarlo en tu servidor. Puedes instalarlo utilizando el siguiente comando:

apt install postgresql -y

Una vez instalado el PostgreSQL, crea un usuario PostgreSQL para Odoo usando el siguiente comando:

su - postgres -c "createuser -s odoo15"

Instalar y Configurar Odoo 15

Antes de empezar, es buena idea crear un usuario dedicado para ejecutar la instancia de Odoo. Puedes crear un nuevo usuario llamado odoo15 utilizando el siguiente comando:

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

Una vez creado el usuario, cambia el usuario a Odoo15 y descarga la última versión de Odoo con el siguiente comando:

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

A continuación, cambia el directorio a Odoo15 y crea un entorno virtual Python utilizando el siguiente comando:

cd /opt/odoo15
python3 -m venv odoo15-venv

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

source odoo15-venv/bin/activate

A continuación, instala el paquete wheel con el siguiente comando:

pip3 install wheel

A continuación, edita el archivo requirements.txt y actualiza algunos requisitos:

nano /opt/odoo15/odoo/requirements.txt

Cambia las siguientes líneas:

gevent>=20.9.0 ; python_version >= '3.8'
greenlet>=0.4.17 ; python_version > '3.7'

Guarda y cierra el archivo y, a continuación, instala todas las dependencias utilizando el siguiente comando:

pip3 install -r odoo/requirements.txt

Una vez instaladas todas las dependencias, desactívate del entorno virtual utilizando el siguiente comando:

deactivate

A continuación, crea un directorio para almacenar los addons de Odoo y sal del usuario Odoo con el siguiente comando:

mkdir /opt/odoo15/custom-addons
exit

A continuación, edita el archivo de configuración de Odoo con el siguiente comando:

nano /etc/odoo15.conf

Añade las siguientes líneas:

[options]
; This is the password that allows database operations:
admin_passwd = adminpassword
db_host = False
db_port = False
db_user = odoo15
db_password = False
xmlrpc_port = 8069
logfile = /var/log/odoo15/odoo.log
addons_path = /opt/odoo15/odoo/addons,/opt/odoo15/custom-addons

Guarda y cierra el archivo, luego crea un directorio para almacenar el registro de Odoo y cambia la propiedad:

mkdir /var/log/odoo15
chown odoo15:root /var/log/odoo15

Crear un archivo de servicio Systemd para Odoo 15

A continuación, tendrás que crear un archivo de servicio systemd para gestionar el servicio Odoo. Puedes crearlo con el siguiente comando:

nano /etc/systemd/system/odoo15.service

Añade las siguientes líneas:

[Unit]
Description=Odoo15
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo15
PermissionsStartOnly=true
User=odoo15
Group=odoo15
ExecStart=/opt/odoo15/odoo15-venv/bin/python3 /opt/odoo15/odoo/odoo-bin -c /etc/odoo15.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target

Guarda y cierra el archivo y luego recarga el demonio systemd con el siguiente comando:

systemctl daemon-reload

A continuación, inicia el servicio Odoo y habilítalo para que se inicie al reiniciar el sistema:

systemctl enable --now odoo15

Ahora puedes comprobar el estado del servicio Odoo con el siguiente comando:

systemctl status odoo15

Deberías ver el estado activo de la instancia de Odoo en la siguiente salida:

? odoo15.service - Odoo15
     Loaded: loaded (/etc/systemd/system/odoo15.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-05-22 10:08:36 UTC; 9s ago
   Main PID: 74016 (python3)
      Tasks: 4 (limit: 2292)
     Memory: 110.3M
        CPU: 1.403s
     CGroup: /system.slice/odoo15.service
             ??74016 /opt/odoo15/odoo15-venv/bin/python3 /opt/odoo15/odoo/odoo-bin -c /etc/odoo15.conf

May 22 10:08:36 ubuntu2204 systemd[1]: Started Odoo15.

Configurar Nginx como Proxy Inverso para Odoo

Es una buena idea configurar Nginx como proxy inverso para Odoo. Primero, instala el paquete Nginx utilizando el siguiente comando:

apt-get install nginx -y

Una vez instalado Nginx, crea un archivo de configuración de host virtual Nginx para Odoo:

nano /etc/nginx/conf.d/odoo15.conf

Añade las siguientes líneas:

# Odoo servers
upstream odoo {
 server 127.0.0.1:8069;
}

upstream odoochat {
 server 127.0.0.1:8072;
}

server {
    listen 80;
    server_name odoo15.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 luego verifica que el Nginx no tenga ningún error de configuración de sintaxis:

nginx -t

Deberías ver la siguiente salida:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Por último, reinicia el servicio Nginx para aplicar los cambios:

systemctl restart nginx

A continuación, edita el archivo de configuración de Odoo y activa la configuración del proxy:

nano /etc/odoo15.conf

Añade la siguiente línea:

proxy_mode = True

Guarda y cierra el archivo y reinicia el servicio Odoo para aplicar los cambios:

systemctl restart odoo15

Ahora puedes verificar el estado de Nginx utilizando el siguiente comando:

systemctl status nginx

Obtendrás la siguiente salida:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-05-22 10:10:55 UTC; 18s ago
       Docs: man:nginx(8)
    Process: 74717 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 74718 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 74719 (nginx)
      Tasks: 2 (limit: 2292)
     Memory: 2.6M
        CPU: 28ms
     CGroup: /system.slice/nginx.service
             ??74719 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??74720 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

May 22 10:10:55 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
May 22 10:10:55 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

Una vez que hayas terminado, puedes proceder a acceder a la interfaz web de Odoo 15.

Acceder a la interfaz web de Odoo 15

Ahora, abre tu navegador web y accede a la interfaz web de Odoo 15 usando la URL http://odoo15.example.com. Deberías ver la página de configuración de la base de datos de Odoo 15:

Proporciona tu contraseña maestra de Odoo, correo electrónico y base de datos, y haz clic en el botón Crear Base de Datos. Deberías ver el panel de control de Odoo 15 en la siguiente página:

Conclusión

Enhorabuena! has instalado con éxito Odoo 15 con Nginx como proxy inverso en Ubuntu 22.04. Ahora puedes utilizar Odoo en tu empresa y empezar a gestionar los procesos de negocio. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...