Cómo instalar el software ERP Odoo 16 en Ubuntu 22.04
Odoo (antes conocido como OpenERP) es un conjunto autoalojado de más de 10.000 Odoo es una solución ERP gratuita y de código abierto para múltiples tipos de empresas. Proporciona gestión de relaciones con los clientes (CRM), canal de ventas, gestión de proyectos, fabricación, facturación, contabilidad, comercio electrónico y mucho más.
Odoo es una de las soluciones ERP más completas para tu empresa. Viene con 30 módulos básicos por defecto y proporciona más de 4500 módulos comunitarios que pueden ayudar a tus múltiples negocios.
En este tutorial, instalaremos el ERP de código abierto Odoo en el servidor Ubuntu 22.04. Instalaremos y configuraremos la última versión estable de Odoo 16, configuraremos la base de datos PostgreSQL para Odoo y, por último, configuraremos Nginx como proxy inverso para la aplicación Odoo.
Requisitos previos
Para comenzar con este tutorial, necesitarás algunos de los siguientes requisitos:
- Un servidor Ubuntu 22.04 – Este ejemplo utiliza un servidor Ubuntu con el nombre de host‘odoo-server‘.
- Un usuario no root con privilegios sudo root/administrador – o también puedes utilizar el usuario root.
- Un nombre de dominio apuntando a la dirección IP del servidor – para producción, necesitarás un nombre de dominio para la instalación de Odoo.
Instalar dependencias
Para instalar Odoo, primero necesitarás instalar algunas dependencias de paquetes en tu sistema Ubuntu. El ERP Odoo es una aplicación web escrita principalmente en Python, por lo que también necesitarás instalar algunos paquetes de Python.
Antes de empezar a instalar paquetes, ejecuta el siguiente comando apt para actualizar y refrescar tu índice de paquetes.
sudo apt update
A continuación, instala las dependencias de paquetes para odoo mediante el siguiente comando apt. Esta instalación incluirá la última versión de Python 3.10, build-essentials para compilar paquetes Python, y algunas librerías necesarias para odoo.
sudo apt install git wget python3 build-essential libzip-dev python3-dev libxslt1-dev python3-pip libldap2-dev python3-wheel libsasl2-dev python3-venv python3-setuptools node-less libjpeg-dev xfonts-75dpi xfonts-base libxrender1 libpq-dev libffi-dev fontconfig
Cuando se te solicite, introduce y para confirmar y pulsa ENTER para continuar. Y comenzará la instalación.
Una vez instalados Python y otras dependencias, el siguiente paso es instalar Node .js, que se utilizará para generar archivos estáticos, e instalar el paquete wkhtmltopdf para generar informes PDF.
Instalar Nodejs
Para instalar Odoo, debes asegurarte de que Node.js está instalado en tu sistema. Node.js se utiliza para generar archivos estáticos para las aplicaciones web de Odoo. En este paso, instalarás Node.js 16 desde el repositorio de terceros Nodesource.
Ejecuta el siguiente comando para descargar y configurar el repositorio Nodesource para Node.js 16.
sudo curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
Este comando descargará y ejecutará el script instalador, después el script instalador configurará automáticamente el repositorio para Node.js, añadirá la clave GPG y actualizará y refrescará automáticamente el índice de paquetes en tu sistema.
A continuación, ejecuta el siguiente comando apt para instalar el paquete Node.js. Cuando se te solicite,introduce y para confirmar y pulsa ENTER para continuar.
sudo apt install nodejs
Una vez instalado Node.js, ejecuta el siguiente comando npm para instalar el paquete ‘rtlcss‘.
El paquete‘rtlcss‘ es necesario para odoo, especialmente si utilizas la interfaz de usuario de derecha a izquierda para idiomas específicos como el árabe y el hebreo.
sudo npm install -g rtlcss
Instalación de la aplicación Wkhtmltopdf
El ERP de código abierto odoo requiere la instalación del paquete wkhtmltopdf. Este paquete es necesario para convertir páginas HTML a PDF y a varios formatos de imagen a través de Qt Webkit. El paquete wkhtmltopdf se instalará manualmente mediante el paquete .deb en el sistema Ubuntu.
Ejecuta el siguiente comando para descargar el archivo .deb del paquete Wkhtmltopdf.
cd /tmp wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
Instala el paquete Wkhtmltopdf mediante el siguiente comando dpkg.
sudo dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb
Si aparece un error, como la falta de un paquete, arréglalo mediante el siguiente comando apt.
sudo apt install -f
Una vez instalado el paquete Wkhtmltopdf, puedes verificar el archivo binario del paquete Wkhtmltopdf que está disponible por defecto en el directorio ‘/usr/local/bin‘. Deberías ver dos programas el‘wkhtmltopdf‘ y el‘wkhtmltoimage‘.
ls /usr/local/bin
Ahora ejecuta el siguiente comando para verificar la variable de entorno $PATH y asegúrate de que el directorio ‘/usr/local/bin’ está disponible en el $PATH binario. De lo contrario, el paquete Wkhtmltopdf no funcionará correctamente.
echo $PATH
Por último, ejecuta el siguiente comando para asegurarte de que la ruta binaria del paquete Wkhtmltopdf está disponible. Si el paquete Wkhtmltopdf está disponible, deberías recibir una salida con la ruta completa del paquete Wkhtmltopdf.
which wkhtmltopdf which wkhtmltoimage
Instalar el servidor de base de datos PostgreSQL
El ERP de código abierto odoo soporta bases de datos como MySQL, SQLite y PostgreSQL. En este paso, instalarás y utilizarás PostgreSQL como base de datos por defecto para tu instalación de odoo. También establecerás el rol PostgreSQL y realizarás cambios en la configuración de PostgreSQL.
Ejecuta el siguiente comando apt para instalar el servidor de base de datos PostgreSQL. Cuando se te pida confirmación, introduce y, y pulsa ENTER.
sudo apt install postgresql
Una vez instalado PostgreSQL, ejecuta el siguiente comando para verificar PostgreSQL y asegurarte de que el servicio está habilitado y en ejecución.
sudo systemctl is-enabled postgresql sudo systemctl status postgresql
En la siguiente salida, puedes ver que el servicio PostgreSQL está habilitado y se ejecutará automáticamente al iniciar el sistema. Y el estado del PostgreSQL es en ejecución.
A continuación, crearás un nuevo rol para odoo. Ejecuta el siguiente comando para iniciar sesión con el usuario‘postgres‘ y crear un nuevo rol con el nombre ‘odoo’.
su - postgres createuser -sdP odoo
Introduce la contraseña para el nuevo rol ‘odoo‘ y repítelo.
Ahora, accede al shell PostgreSQL mediante el comando psql que aparece a continuación.
psql
Ejecuta la siguiente consulta para verificar la lista de roles en PostgreSQL y asegúrate de que el rol ‘odoo‘ está disponible.
\du
Ahora introduce‘\q‘ para salir del shell PostgreSQL. A continuación, escribe ‘exit‘ para salir del usuario postgres.
Ahora, tras haber creado un rol para odoo, deberás configurar la autenticación para el rol ‘odoo‘.
Edita la configuración PostgreSQL‘/etc/postgresql/14/main/pg_hba.conf‘ utilizando el siguiente editor nano.
sudo nano /etc/postgresql/14/main/pg_hba.conf
Añade la siguiente configuración al archivo. Con esto, permitirás el acceso al PostgreSQL para el rol‘odoo‘ con la contraseña de autenticación‘scram-sha-256‘.
host all odoo 127.0.0.1/32 scram-sha-256
Guarda el archivo y sal del editor cuando hayas terminado.
Ahora ejecuta el siguiente comando para reiniciar el servicio PostgreSQL y aplicar los nuevos cambios.
sudo systemctl restart postgresql
Por último, inicia sesión como usuario ‘postgres’ y verifica el rol‘odoo‘ accediendo al shell de PostgreSQL mediante el comando psql como se indica a continuación.
su - postgres psql -h 127.0.0.1 -U odoo -d postgres
Después de iniciar sesión, verifícalo utilizando la siguiente consulta.
\conninfo
Ahora deberías ver que estás conectado a PostgreSQL utilizando el rol ‘odoo‘.
En este punto, la preparación de la base de datos PostgreSQL para odoo ha finalizado. A continuación, comenzarás la instalación de odoo descargando el código fuente e instalando las dependencias de Python.
Descarga de Odoo 16
Para esta demo, configurarás y ejecutarás odoo v16 con el usuario‘odoo‘. Así que ahora crearás un nuevo usuario Unix ‘odoo’ y descargarás la última versión del código fuente de odoo 16.
Ejecuta el siguiente comando para crear un nuevo usuario ‘odoo‘. En este ejemplo, el directorio de inicio por defecto para el usuario ‘odoo‘ sería‘/opt/odoo’ y el shell por defecto es bash.
sudo adduser --system --group --home=/opt/odoo --shell=/bin/bash odoo
Ahora mueve el directorio de trabajo a ‘ /opt/odoo‘ y descarga el código fuente de odoo mediante el siguiente comando git. En este ejemplo, instalarás el odoo 16.
cd /opt/odoo git clone https://github.com/odoo/odoo.git --depth 1 --branch 16.0 --single-branch odoo-server
Ahora deberías obtener el nuevo directorio ‘odoo-server’ dentro del directorio ‘/opt/odoo‘.
Por último, ejecuta el siguiente comando para cambiar la propiedad del código fuente de odoo al usuario y grupo‘odoo‘.
sudo chown -R odoo:odoo /opt/odoo/odoo-server
Después de descargar el código fuente de odoo, a continuación iniciarás la instalación de las dependencias del paquete Python para odoo.
Instalación de las dependencias de Python para Odoo
En este paso, configurarás el entorno virtual de Python para odoo e instalarás las dependencias de Python mediante el comando pip3.
Mueve el directorio de trabajo a‘/opt/odoo/odoo-server‘ y crea un nuevo entorno virtual Python‘venv‘ mediante el siguiente comando.
cd /opt/odoo/odoo-server python3 -m venv venv
A continuación, activa el entorno virtual Python «venv» mediante el siguiente comando.
source venv/bin/activate
Después de activar el entorno virtual Python, verás que tu shell actual cambia a algo como ‘(venv) root@hostname…’.
Ahora ejecuta el siguiente comando pip3 para instalar la rueda de paquetes de Python e instala las dependencias de Python de odoo a través del archivo requirements.txt.
pip3 install wheel pip3 install -r requirements.txt
Una vez instaladas las dependencias de Python, ejecuta el siguiente comando para salir del entorno virtual‘venv’ de Python.
deactivate
Ahora has descargado el código fuente de odoo e instalado las dependencias de Python. A continuación, crearás una nueva configuración y directorio para la instalación de odoo.
Crear la configuración de Odoo
Después de instalar las dependencias del paquete para Odoo, a continuación empezarás a crear la configuración para odoo y a configurar odoo como servicio systemd.
Crea un nuevo archivo de configuración‘/etc/odoo.conf‘ usando el siguiente editor nano.
sudo nano /etc/odoo.conf
Añade la siguiente configuración al archivo. Y asegúrate de cambiar el usuario y contraseña de la base de datos‘admin_passwd‘ y details con tus datos.
[options] ; This is the password that allows database operations: admin_passwd = adminpassodoo db_host = 127.0.0.1 db_port = 5432 db_user = odoo db_password = odoopass addons_path = /opt/odoo/odoo-server/addons xmlrpc_port = 8069 logfile = /var/log/odoo/odoo-server.log log_level = debug
Guarda el archivo y sal del editor.
Ahora, cambia la propiedad del archivo de configuración de odoo‘/etc/odoo.conf ‘ al usuario del sistema‘odoo‘.
sudo chown odoo:odoo /etc/odoo.conf
A continuación, ejecuta el siguiente comando para crear un nuevo directorio que se utilizará para almacenar los registros de odoo.
sudo mkdir /var/log/odoo
Luego, cambia la propiedad del directorio de logs de odoo‘/var/log/odoo‘ al usuario ‘odoo‘ y cambia el permiso a 755.
sudo chown odoo:odoo /var/log/odoo sudo chmod 755 /var/log/odoo
Ejecutar Odoo como servicio Systemd
Llegados a este punto, puedes ejecutar odoo manualmente a través de la línea de comandos. Para hacerlo más fácil, puedes ejecutar odoo como un servicio systemd. Esto te permite gestionar odoo mediante el comando systemctl.
Ahora crearás un nuevo archivo de servicio systemd y ejecutarás odoo como servicio systemd.
Para empezar, crea un nuevo archivo de servicio systemd ‘/lib/systemd/system/odoo-server.service ‘ utilizando el siguiente editor nano.
sudo nano /lib/systemd/system/odoo-server.service
Añade la siguiente configuración al archivo.
[Unit] Description=Odoo 16.0 Service Requires=postgresql.service After=network.target postgresql.service [Service] Type=simple SyslogIdentifier=odoo PermissionsStartOnly=true User=odoo Group=odoo ExecStart=/opt/odoo/odoo-server/venv/bin/python3 /opt/odoo/odoo-server/odoo-bin -c /etc/odoo.conf StandardOutput=journal+console [Install] WantedBy=multi-user.target
Guarda el archivo y sal del editor cuando hayas terminado.
A continuación, recarga el gestor systemd para aplicar un nuevo archivo de servicio mediante el siguiente comando systemctl.
sudo systemctl daemon-reload
Inicia y habilita el servicio«odoo-server » mediante el siguiente comando.
sudo systemctl start odoo-server sudo systemctl enable odoo-server
Por último, verifica el servicio odoo para asegurarte de que se está ejecutando.
sudo systemctl status odoo-server
Deberías recibir la salida del servicio ‘odoo-server‘ en ejecución.
Ejecutar Odoo con Nginx Reverse Proxy
La forma recomendada de desplegar odoo en producción es utilizando el proxy inverso. Esto te permite ejecutar odoo sólo en el localhost y todo el acceso de los clientes será gestionado por el proxy inverso.
En este paso, instalarás y configurarás el servidor web Nginx como proxy inverso para la aplicación web odoo. También tendrás la instalación de odoo asegurada con SSL. Así que, antes de empezar a configurar Nginx, asegúrate de que tienes el nombre de dominio apuntando a la dirección IP del servidor y el SSL generado Letsencrypt.
Primero, modifica el archivo de configuración de odoo‘/etc/odoo.conf‘ usando el siguiente editor nano.
sudo nano /etc/odoo.conf
Añade la siguiente configuración al archivo. Esta configuración ejecutará odoo como la aplicación backend que se ejecutará en 127.0.0.1.
xmlrpc_interface = 127.0.0.1 proxy_mode = True
Guarda el archivo y sal del editor cuando hayas terminado.
Ahora ejecuta el siguiente comando para reiniciar el servicio ‘odoo-server‘ y aplicar los nuevos cambios.
sudo systemctl restart odoo-server
Ahora verifica el servicio ‘odoo-server‘ para asegurarte de que el servicio está funcionando.
sudo systemctl status odoo-server
A continuación, instala y configura Nginx.
Ejecuta el siguiente comando apt para instalar el paquete del servidor web Nginx. Introduce y cuando se te solicite y pulsa ENTER para proceder y confirmar la instalación.
sudo apt install nginx
Una vez instalado Nginx, crea una nueva configuración de bloqueos del servidor Nginx ‘/etc/nginx/sites-available/odoo.conf ‘ utilizando el siguiente editor nano.
sudo nano /etc/nginx/sites-available/odoo.conf
Añade la siguiente configuración al archivo y asegúrate de cambiar el nombre de dominio y la ruta de los certificados SSL con tu configuración.
#odoo server upstream odoo { server 127.0.0.1:8069; } upstream odoochat { server 127.0.0.1:8072; } # http -> https server { listen 80; server_name odoo.hwdomain.io; rewrite ^(.*) https://$host$1 permanent; } server { listen 443 ssl http2; server_name odoo.hwdomain.io; proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; # Add Headers for odoo proxy mode 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; # SSL parameters ssl_certificate /etc/letsencrypt/live/odoo.hwdomain.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/odoo.hwdomain.io/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; # about 40000 sessions ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; # log access_log /var/log/nginx/odoo.access.log; error_log /var/log/nginx/odoo.error.log; # Redirect longpoll requests to odoo longpolling port location /longpolling { proxy_pass http://odoochat; } # Redirect requests to odoo backend server location / { proxy_redirect off; proxy_pass http://odoo; } # common gzip gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript; gzip on; }
Guarda el archivo y cierra el editor cuando hayas terminado.
Ahora activa la nueva configuración del bloque del servidor Nginx y verifica la configuración de Nginx para asegurarte de que tienes las configuraciones correctas.
sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/ sudo nginx -t
Si tus configuraciones son correctas, verás un mensaje de salida como‘prueba realizada con éxito – sintaxis OK‘.
Por último, ejecuta el siguiente comando systemctl para reiniciar el servicio Nginx y aplicar los nuevos cambios.
sudo systemctl restart nginx
En este punto, has finalizado la instalación y configuración del proxy inverso Nginx para el ERP odoo. Ahora puedes acceder a la instalación a través de tu navegador web.
Ejecuta el siguiente comando para verificar el servicio Nginx y asegúrate de que se está ejecutando.
sudo systemctl restart nginx
Deberías obtener que el servicio Nginx se está ejecutando.
Configurar el cortafuegos UFW
Se recomienda habilitar el cortafuegos en tu instalación de odoo. En este paso, aprenderás a configurar el cortafuegos UFW.
Por defecto, el servidor genérico de Ubuntu tiene instalado el paquete ufw, así que puedes empezar a configurarlo.
Ejecuta el siguiente comando para añadir la aplicación OpenSSH al cortafuegos ufw. A continuación, ejecuta y habilita el ufw.
sudo ufw allow "OpenSSH" sudo ufw enable
Cuando te pida confirmación, introduce y y pulsa ENTER para continuar. Y el servicio de cortafuegos ufw estará habilitado y en funcionamiento.
A continuación, ejecuta el siguiente comando para añadir la aplicación«Nginx Full«. Este perfil de aplicación lo proporcionan los paquetes Nginx en la instalación por defecto y abrirá los puertos HTTP y HTTPS para tu aplicación.
sudo ufw allow "Nginx Full"
Por último, comprueba la lista de reglas habilitadas en ufw. Deberías ver dos aplicaciones:‘OpenSSH‘ y ‘Nginx Full ‘ habilitadas.
sudo ufw status
Migrar la Base de Datos e Instalar Odoo 16
Abre tu navegador web y visita el nombre de dominio de tu instalación de odoo (es decir: https://odoo.hwdomain.io/).
Al principio, necesitarás migrar la base de datos para odoo y crear un nuevo usuario administrador.
La contraseña maestra aquí es la‘admin_passwd‘ que acabas de añadir en el archivo‘/etc/odoo.conf‘.
Introduce el nuevo nombre de la base de datos que se creará automáticamente y detalla el nuevo usuario administrador y la contraseña para tu instalación de odoo. Además, también puedes seleccionar la casilla Datos de demostración para añadir los datos de demostración a tu instalación.
Haz clic en«Crear base de datos» para iniciar la instalación de odoo.
Una vez instalado odoo, serás redirigido a la página de inicio de sesión de odoo. Introduce la dirección de correo electrónico del administrador y la contraseña de tu odoo y haz clic en «Iniciar sesión«.
Ahora deberías ver el panel de usuario de odoo.
Conclusión
¡Enhorabuena! Ya has instalado el ERP de código abierto Odoo en un servidor Ubuntu 22.04. Ahora también has aprendido la instalación básica del servidor de base de datos PostgreSQL y del servidor web Nginx configurado como proxy inverso.
En este punto, tienes totalmente asegurada la instalación de Odoo en tu servidor Ubuntu. Ahora puedes empezar a añadir algunos plugins/add-ons adicionales que sean adecuados para tu negocio.