Cómo instalar y configurar Odoo con Nginx

Cómo instalar y configurar Odoo con Nginx

Si piensas instalar y configurar Odoo con Nginx, sería bueno brindarle algo de protección a este excelente sistema de gestión empresarial. La mejor opción es tener una configuración adecuada con Nginx, ya que le facilitarás la vida a los usuarios, quienes podrán ingresar a los servicios de Odoo vía dominio (o subdominio en nuestro ejemplo) en lugar de utilizar una IP junto a un puerto (ip:puerto) en el navegador web.

Lo anterior es posible gracias a que Nginx permite configurar un servidor de proxy inverso, algo que otorga muchas ventajas. Pero, para llegar a eso, primero necesitas instalar Odoo. Te explicamos cómo hacerlo desde Ubuntu 22.04.

Requisitos previos para instalar y configurar Odoo:

  • Tener instalada una versión de Ubuntu, en este tutorial utilizaremos la 22.04
  • Contar con usuario root (es el que usamos en la guía para todos los proceso)
  • Abrir el puerto 8069 en el firewall de tu Cloud Server
  • Asegurarnos que nuestro servidor esté totalmente actualizado. Esto lo podemos lograr con los siguientes comandos:
apt update && apt -y upgrade

Reiniciamos para asegurarnos que todas las actualizaciones se aplicaron

reboot

Instalar y configurar PostgreSQL

Luego de tener el sistema óptimo, es hora de instalar PostgreSQL. Es importante tener instalado este motor de bases de datos para luego hacer lo propio con Odoo, Nginx.

apt install postgresql

Creamos un usuario llamado odoo en PostgreSQL. Utilizamos el nombre «odoo» para que luego nos resulte sencilla la configuración de Odoo.

su - postgres -c "createuser -s odoo"

Instalar Odoo

Instalación wkhtmltopdf

Antes de avanzar con la instalación de Odoo, aprovecharemos para instalar wkhtmltopdf, un complemento muy importante para los reportes en PDF en Odoo. Para instalarlo utiliza los siguientes comandos:

Para desarrollar este tutorial estamos utilizando Ubuntu 22.04. Si utilizas otra versión de Ubuntu, o utilizas otra distro, puedes obtener los distintos paquetes desde aquí.

wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
apt install ./wkhtmltox_0.12.6.1-2.jammy_amd64.deb

Instalación dependencias de Odoo

Ahora instalaremos todas las dependencias necesarias para la instalación de Odoo.

apt install -y build-essential wget python3-dev python3-venv python3-wheel libfreetype6-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev libxslt1-dev libldap2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev

Creación de un usuario de sistema para odoo

Con el objetivo de lograr una mayor seguridad, crearemos (y utilizaremos) un usuario de sistema llamado odoo para la instalación de la aplicación.

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

Ahora le ponemos una contraseña a ese usuario, procurando que sea lo más fuerte posible.

passwd odoo

Instalación de la aplicación Odoo

Ahora, cambiamos el usuario de sistema root por el de odoo que creamos en el paso anterior, y comenzamos la instalación de la aplicación.

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

Ingresamos al directorio home del usuario odoo y creamos el ambiente virtual de Phyton.

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

Ahora activamos el ambiente virtual de Phyton

source odoo-venv/bin/activate

Instalamos todos los requisitos de Odoo.

pip3 install wheel

El siguiente comando puede demorar unos cuantos minutos.

pip3 install -r odoo/requirements.txt

Desactivamos el ambiente virtual de Phyton.

deactivate

Creamos un directorio para los Custom Addons de Odoo.

mkdir /opt/odoo/odoo-custom-addons

Salimos del usuario de sistema odoo y retomamos nuestro trabajo con root

exit

Editamos el archivo /etc/odoo.conf dejándolo como se muestra en el siguiente contenido, cambiando MiPasswordSuperSeguro por una contraseña de tu elección.

nano /etc/odoo.conf
[options]
admin_passwd = MiPasswordSuperSeguro
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/odoo/addons,/opt/odoo/odoo-custom-addons
Ejemplo archivo configuración odoo.conf
Archivo /odoo.conf

Creamos la definición del servicio de Odoo

nano /etc/systemd/system/odoo.service

El texto debería quedar como el siguiente:

[Unit]
Description=Odoo
Requires=postgresql.service
After=network.target postgresql.service

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

[Install]
WantedBy=multi-user.target
Archivo configuración odoo.service
Archivo /odoo.service

Recargamos los «Daemons» del sistema

systemctl daemon-reload

Finalmente activamos y ejecutamos Odoo.

systemctl enable --now odoo
systemctl status odoo
Prueba del servicio Odoo
Prueba del servicio Odoo

Ahora que finalizamos la instalación de Odoo, ingresamos en el navegador a http://IPdelServidor:8069 para comprobar que la aplicación está respondiendo.

Instalación de Odoo finalizada
Instalación de Odoo finalizada

Instalar y configurar NGINX

Ahora que ya hemos instalado Odoo correctamente, instalaremos NGINX para poder acceder a través de un dominio (o subdominio) y con HTTPS, instalando un certificado SSL Let’s Encrypt.

apt install nginx

Esta instalación no suele demorar mucho. Una vez terminada, puedes ingresar a la IP de tu servidor desde un navegador y te recibirá la siguiente pantalla, indicándote que Nginx fue correctamente instalado.

Cómo instalar y configurar Odoo con Nginx
Funcionamiento de Nginx

Ahora crearemos un vHost de Nginx para el dominio (o subdominio en nuestro caso) y lo configuraremos con la modalidad de proxy reverso.

Deberás reemplazar el nombre del archivo y el valor de server_name con tu propio dominio (o subdominio).

nano /etc/nginx/sites-available/odoo.cloudfor.fun.conf
server {
	listen 80;
	server_name odoo.cloudfor.fun; #reemplazar por el dominio que corresponda
	
	location / {
		proxy_pass http://localhost:8069;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection 'upgrade';
		proxy_set_header Host $host;
		proxy_cache_bypass $http_upgrade;
	}
}
  • server_name es un parámetro que indica el dominio (o subdominio) del sitio que tendrá acceso a tu instalación de Odoo. En nuestro caso utilizaremos el subdominio .
  • Location es la URL que normalmente se usa para ingresar a este sistema. Notarás que en este último se usa el puerto 8069, que es el que Odoo utiliza por defecto.

Ahora crearemos el enlace simbólico para el nuevo vHost

cd /etc/nginx/sites-enabled/

Recuerda reemplazar los nombre de los archivos por los que tu hayas utilizado.

ln -s /etc/nginx/sites-available/odoo.cloudfor.fun.conf odoo.cloudfor.fun.conf

Ya casi estás listo. Ahora verificamos que la sintaxis del archivo de configuración del vHost de Nginx sea válida.

nginx -t

Si todo está bien, reiniciamos Nginx para que tome los cambios.

systemctl restart nginx

FInalizamos la instalación y configuración de Nginx como proxy reverso para utilizar un dominio (subdominio en este caso). Si ingresamos a http://nuestrodominio.com podremos ver la pantalla de Odoo.

Dominio configurado en Nginx para Odoo
Dominio configurado en Nginx para Odoo

Instalar el certificado SSL

Ahora sólo nos resta emitir e instalar un certificado SSL para nuestra aplicación Odoo. Para ello instalaremos un certificado SSL Let’s Encrypt instalando en primer lugar el programa Certbot.

apt install certbot python3-certbot-nginx

Una vez instalado Certbot, generaremos e instalaremos el certificado SSL para nuestro dominio (o subdominio).

certbot --nginx -d odoo.cloudfor.fun

Listo!!! Ahora podemos acceder a nuestra aplicación Odoo con dominio y certificado SSL!!!

image 23

Configurar Odoo

Ahora solo nos resta completar el formulario y terminar el setup inicial de Odoo.

  • Master Password: una contraseña que será para el usuario administrador
  • Database Name: nombre de la base de datos que se utilizará.
  • Email: email del usuario que será el administrador
  • Password: Contraseña ingresada durante la edición del archivo odoo.conf
  • Phone Number: un número de teléfono del administrador
  • Lenguage: lenguaje por defecto de la interfaz
  • Country: país por defecto de la cuenta del administrador
  • Demo Data: Si tildamos esta opción se cargará datos de ejemplo para contar con una referencia al inicio
image 24
image 25
image 26

Conclusión

Ya viste que instalar y configurar Odoo con nginx, y un certificado SSL es una tarea que puede parecer compleja. Sin embargo, se puede lograr con paciencia y siguiendo los pasos necesarios.

Nginx permite mejorar la accesibilidad de Odoo para los usuarios, ya que podemos configurar un servidor de proxy inverso, ayudando a incrementar la protección y seguridad del sistema de gestión empresarial. Para evitar problemas en el futuro, es importante seguir los pasos con cuidado y verificar que el sistema esté actualizado.

Con esta guía paso a paso, te hemos enseñado a instalar y configurar Odoo con Nginx, lograrás una instalación y configuración exitosa.

¿Buscas un hosting para Odoo? Prueba con DonWeb Cloud, y bríndale a tu aplicación todo el poder de la nube.

Gabriel Cánepa
Gabriel Cánepa

Gabriel trabaja actualmente como desarrollador full-stack en Scalar, una firma que se dedica a hacer valuaciones de empresas. Es Administrador de Sistemas certificado por la Fundación Linux y previamente ha escrito un gran número de artículos y contenidos técnicos sobre el tema para: DigitalOcean, Linode, Carrera Linux Argentina y Tecmint.

Tiene una certificación en programación de la Universidad de Brigham Young-Idaho, y está completando las carreras de programador y analista de sistemas en la Universidad Nacional de Villa Mercedes (UNViMe).

En su tiempo libre, Gabriel disfruta leyendo libros de Stephen R. Covey, tocando piano y guitarra, y enseñando conocimientos de programación a su dos hijas.