How To Install Odoo 13 on Ubuntu 18.04
Tabla de contenido:
- Instalación de requisitos previos
- Crear un usuario del sistema
- Instalar y configurar PostgreSQL
- Instalando Wkhtmltopdf
- Instalación y configuración de Odoo 13
- Crear un archivo de unidad de Systemd
- Probar la instalación
- Configurar Nginx como proxy de terminación SSL
- Cambio de la interfaz de enlace
- Habilitación del multiprocesamiento
- Conclusión
Odoo es un popular conjunto de aplicaciones empresariales de código abierto. Ofrece una variedad de aplicaciones, que incluyen CRM, comercio electrónico, creador de sitios web, facturación, contabilidad, fabricación, almacén, gestión de proyectos, inventario y mucho más, todo perfectamente integrado.
Odoo se puede instalar de varias maneras según el caso de uso y las tecnologías disponibles. La forma más fácil y rápida de instalar Odoo es mediante el uso de los repositorios oficiales de APT de Odoo.
Instalar Odoo en un entorno virtual, o implementarlo como un contenedor Docker, le permite tener más control sobre la configuración del sistema y ejecutar múltiples versiones de Odoo en el mismo sistema.
En esta guía, lo guiaremos a través de la instalación e implementación de Odoo 13 dentro de un entorno virtual de Python en Ubuntu 18.04. Descargaremos Odoo desde su repositorio de Github y usaremos Nginx como proxy inverso.
Instalación de requisitos previos
Inicie sesión en su Ubuntu como usuario de sudo y actualice el caché Apt:
sudo apt update
Instale Git, Pip, Node.js y las herramientas necesarias para construir dependencias de Odoo:
sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less
Crear un usuario del sistema
Cree un usuario del sistema que ejecutará Odoo, llamado
odoo13
con el directorio de inicio
/opt/odoo13
:
sudo useradd -m -d /opt/odoo13 -U -r -s /bin/bash odoo13
Puede establecer el nombre del usuario a lo que desee, siempre que cree un usuario PostgreSQL con el mismo nombre.
Instalar y configurar PostgreSQL
Odoo usa PostgreSQL como el back-end de la base de datos. Para instalar PostgreSQL, ejecute el siguiente comando:
sudo apt install postgresql
Una vez que se completa la instalación, cree un usuario PostgreSQL con el mismo nombre que el usuario del sistema creado anteriormente, en nuestro caso es
odoo13
:
sudo su - postgres -c "createuser -s odoo13"
Instalando Wkhtmltopdf
El paquete
wkhtmltox
proporciona un conjunto de herramientas de línea de comandos de código abierto que pueden representar HTML en PDF y varios formatos de imagen. Para poder imprimir informes en PDF, deberá instalar la herramienta
wkhtmltopdf
. La versión recomendada para Odoo es
0.12.5
, que no está disponible en los repositorios predeterminados de Ubuntu 18.04.
Descargue el paquete usando el siguiente comando wget:
wget
Una vez que se complete la descarga, instale el paquete escribiendo:
sudo apt install./wkhtmltox_0.12.5-1.bionic_amd64.deb
Instalación y configuración de Odoo 13
Como se mencionó anteriormente, instalaremos Odoo desde la fuente dentro de un entorno virtual aislado de Python.
Primero, cambie al usuario "odoo13":
sudo su - odoo13
Clone el código fuente de Odoo 13 de GitHub:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo13/odoo
Una vez que se complete la descarga, cree un nuevo entorno virtual de Python para Odoo:
cd /opt/odoo13
python3 -m venv odoo-venv
Active el entorno con el siguiente comando:
source odoo-venv/bin/activate
Instale todos los módulos Python necesarios con pip3:
pip3 install wheel
pip3 install -r odoo/requirements.txt
Si encuentra algún error de compilación durante la instalación, asegúrese de que estén instaladas todas las dependencias requeridas enumeradas en la sección
Installing Prerequisites
instalación.
Una vez hecho esto, desactive el entorno escribiendo:
deactivate
Crearemos un nuevo directorio que contendrá los complementos de terceros.
mkdir /opt/odoo13/odoo-custom-addons
Más tarde, agregaremos este directorio al parámetro
addons_path
. Este parámetro define una lista de directorios donde Odoo busca módulos.
Vuelva a su usuario de sudo:
exit
Cree un archivo de configuración con el siguiente contenido:
sudo nano /etc/odoo13.conf
/etc/odoo13.conf
; This is the password that allows database operations: admin_passwd = my_admin_passwd db_host = False db_port = False db_user = odoo13 db_password = False addons_path = /opt/odoo13/odoo/addons, /opt/odoo13/odoo-custom-addons
No olvides cambiar
my_admin_passwd
a algo más seguro.
Crear un archivo de unidad de Systemd
Abra su editor de texto y cree un archivo de unidad de servicio llamado
odoo13.service
con el siguiente contenido:
sudo nano /etc/systemd/system/odoo13.service
/etc/systemd/system/odoo13.service
Description=Odoo13 Requires=postgresql.service After=network.target postgresql.service Type=simple SyslogIdentifier=odoo13 PermissionsStartOnly=true User=odoo13 Group=odoo13 ExecStart=/opt/odoo13/odoo-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf StandardOutput=journal+console WantedBy=multi-user.target
Notifique a systemd que existe un nuevo archivo de unidad:
sudo systemctl daemon-reload
Inicie el servicio Odoo y habilítelo para que se inicie en el arranque ejecutando:
sudo systemctl enable --now odoo13
Verifique el estado del servicio:
sudo systemctl status odoo13
El resultado debería verse como a continuación, lo que indica que el servicio Odoo está activo y ejecutándose.
● odoo13.service Loaded: loaded (/etc/systemd/system/odoo13.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-10-19 20:06:23 UTC; 3s ago Main PID: 1860 (python3) Tasks: 4 (limit: 2362) CGroup: /system.slice/odoo13.service └─1860 /opt/odoo13/odoo-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf
Para ver los mensajes registrados por el servicio Odoo, use el siguiente comando:
Probar la instalación
Abra su navegador y escriba:
http://:8069
http://:8069
Asumiendo que la instalación es exitosa, aparecerá una pantalla similar a la siguiente:

Configurar Nginx como proxy de terminación SSL
El servidor web predeterminado de Odoo sirve el tráfico a través de HTTP. Para que la implementación de Odoo sea más segura, configuraremos Nginx como un proxy de terminación SSL que servirá al tráfico a través de
El proxy de terminación SSL es un servidor proxy que maneja el cifrado / descifrado SSL. Esto significa que el proxy de terminación (Nginx) procesará y descifrará las conexiones TLS entrantes (HTTPS) y transmitirá las solicitudes no cifradas al servicio interno (Odoo). El tráfico entre Nginx y Odoo no se cifrará (HTTP).
El uso de un proxy inverso le brinda muchos beneficios, como equilibrio de carga, terminación SSL, almacenamiento en caché, compresión, publicación de contenido estático y más.
Asegúrese de cumplir con los siguientes requisitos previos antes de continuar con esta sección:
- Nombre de dominio que apunta a la IP de su servidor público. Utilizaremos el certificado
example.com.Nginx instalado.SSL para su dominio. Puede instalar un certificado SSL Let's Encrypt gratuito.
Abra su editor de texto y cree / edite el bloque del servidor de dominio:
sudo nano /etc/nginx/sites-enabled/example.com
La siguiente configuración configura la terminación SSL, la redirección de HTTP a HTTPS, la redirección de WWW a no WWW, almacena en caché los archivos estáticos y habilita la compresión GZip.
/etc/nginx/sites-enabled/example.com
# Odoo servers upstream odoo { server 127.0.0.1:8069; } upstream odoochat { server 127.0.0.1:8072; } # HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name 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; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; # 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; }
No olvide reemplazar example.com con su dominio Odoo y establecer la ruta correcta a los archivos de certificado SSL. Los fragmentos utilizados en esta configuración se crean en esta guía.
Una vez que haya terminado, reinicie el servicio Nginx:
sudo systemctl restart nginx
Luego, debemos decirle a Odoo que use el proxy. Para hacerlo, abra el archivo de configuración y agregue la siguiente línea:
/etc/odoo13.conf
proxy_mode = True
Reinicie el servicio Odoo para que los cambios surtan efecto:
sudo systemctl restart odoo13
En este punto, el proxy inverso está configurado y puede acceder a su instancia de Odoo en:
https://example.com
Cambio de la interfaz de enlace
Este paso es opcional, pero es una buena práctica de seguridad.
Por defecto, el servidor Odoo escucha el puerto
8069
en todas las interfaces. Para deshabilitar el acceso directo a la instancia de Odoo, puede bloquear el puerto
8069
para todas las interfaces públicas o forzar a Odoo a escuchar solo en la interfaz local.
Configuraremos Odoo para escuchar solo en
127.0.0.1
. Abra la configuración, agregue las siguientes dos líneas al final del archivo:
xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1
Guarde el archivo de configuración y reinicie el servidor Odoo para que los cambios surtan efecto:
Habilitación del multiprocesamiento
Por defecto, Odoo está trabajando en modo multihilo. Para las implementaciones de producción, se recomienda cambiar al servidor de multiprocesamiento ya que aumenta la estabilidad y hace un mejor uso de los recursos del sistema.
Para habilitar el multiprocesamiento, debe editar la configuración de Odoo y establecer un número distinto de cero de procesos de trabajo. El número de trabajadores se calcula en función del número de núcleos de CPU en el sistema y la memoria RAM disponible.
De acuerdo con la documentación oficial de Odoo para calcular el número de trabajadores y el tamaño de memoria RAM requerido, puede usar las siguientes fórmulas y suposiciones:
Cálculo del número de trabajadores.
- Número máximo teórico de trabajador = (system_cpus * 2) + 11 trabajador puede servir ~ = 6 usuarios concurrentes Los trabajadores cron también requieren CPU
Cálculo del tamaño de la memoria RAM
- Consideraremos que el 20% de todas las solicitudes son solicitudes pesadas y el 80% son más ligeras. Las solicitudes pesadas utilizan alrededor de 1 GB de RAM, mientras que las más ligeras utilizan alrededor de 150 MB de RAM RAM necesaria =
number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))
grep -c ^processor /proc/cpuinfo
Supongamos que tiene un sistema con 4 núcleos de CPU, 8 GB de memoria RAM y 30 usuarios simultáneos de Odoo.
-
30 users / 6 = **5**(5 es el número teórico de trabajadores necesarios)(4 * 2) + 1 = **9**(9 es el número máximo teórico de trabajadores)
Según el cálculo anterior, puede usar 5 trabajadores + 1 trabajador para el trabajador cron que es un total de 6 trabajadores.
Calcule el consumo de memoria RAM en función del número de trabajadores:
-
RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM
El cálculo muestra que la instalación de Odoo necesitará alrededor de 2 GB de RAM.
Para cambiar al modo multiprocesamiento, abra el archivo de configuración y agregue los valores calculados:
/etc/odoo13.conf
limit_memory_hard = 2684354560 limit_memory_soft = 2147483648 limit_request = 8192 limit_time_cpu = 600 limit_time_real = 1200 max_cron_threads = 1 workers = 5
Reinicie el servicio Odoo para que los cambios surtan efecto:
sudo systemctl restart odoo13
El resto de los recursos del sistema serán utilizados por otros servicios que se ejecutan en este sistema. En esta guía, instalamos Odoo junto con PostgreSQL y Nginx en el mismo servidor. Dependiendo de su configuración, también puede tener otros servicios ejecutándose en su servidor.
Conclusión
Este tutorial lo guió a través de la instalación de Odoo 13 en Ubuntu 18.04 en un entorno virtual de Python usando Nginx como proxy inverso. También le mostramos cómo habilitar el multiprocesamiento y optimizar Odoo para un entorno de producción.
También puede consultar nuestro tutorial sobre cómo crear copias de seguridad diarias automáticas de las bases de datos de Odoo.
ubuntu odoo postgresql python pip nginx proxy sslCómo implementar odoo 11 en ubuntu 18.04
Esta guía cubre los pasos necesarios para instalar y configurar Odoo para la producción usando la fuente Git y el entorno virtual Python en un sistema Ubuntu 18.04.
Cómo implementar odoo 12 en ubuntu 18.04
Este tutorial cubre los pasos necesarios para instalar y configurar Odoo 12 para la producción usando la fuente Git y el entorno virtual de Python en un sistema Ubuntu 18.04.
Cómo instalar odoo 11 en ubuntu 16.04
Odoo es uno de los softwares empresariales más populares del mundo. Esta guía cubre los pasos necesarios para instalar y configurar Odoo usando la fuente de Git y el entorno virtual de Python en Ubuntu 16.04







