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
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
Recargamos los «Daemons» del sistema
systemctl daemon-reload
Finalmente activamos y ejecutamos Odoo.
systemctl enable --now odoo
systemctl status 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.
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.
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.
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!!!
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
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.