Arturo Díaz LoraExperto en IA privada Hablemos →
Odoo · Tutorial

Cómo instalar Odoo 20 en Ubuntu 24.04, paso a paso.

Odoo 20 sube los requisitos: Python 3.12 y PostgreSQL 16 como mínimo, y pgvector si vas a usar la IA. Esta es la instalación que dejo en producción con el paquete oficial, verificada contra la documentación de la versión 20 a 4 de octubre de 2026.

Resumen en 30 segundos

  • Sistema: el paquete oficial de Odoo 20 soporta Ubuntu 24.04 LTS. Debian 12 no cumple los requisitos y Debian 13 todavía no figura como soportado.
  • Requisitos nuevos: Python 3.12 o superior y PostgreSQL 16 o superior, justo lo que trae Ubuntu 24.04.
  • IA: las funciones de inteligencia artificial necesitan la extensión pgvector en PostgreSQL.
  • Lo demás no cambia: la guía oficial de despliegue (workers, Nginx y websocket) es la misma que la de Odoo 19.

Qué cambia frente a Odoo 19

Lo primero que hay que mirar antes de instalar Odoo 20 son los requisitos, porque suben por primera vez en varias versiones. La documentación oficial lo marca así: «Changed in version 20: Minimum requirement updated from Python 3.10 to Python 3.12» y «from PostgreSQL 13 to PostgreSQL 16».

RequisitoOdoo 19Odoo 20
Python3.10 o superior3.12 o superior (probado hasta la 3.14)
PostgreSQL13 o superior16 o superior
Paquete .deb oficialUbuntu 24.04Ubuntu 24.04
pgvectorPara las funciones de IAPara las funciones de IA
wkhtmltopdf0.12.6 con Qt parcheado0.12.6 con Qt parcheado

¿Qué significa en la práctica? Que Ubuntu 22.04 queda fuera (trae Python 3.10) y que Debian 12 también (Python 3.11 y PostgreSQL 15). Ubuntu 24.04 trae Python 3.12 y PostgreSQL 16, así que cumple sin instalar nada extra.

Antes de empezar

  • Un servidor con Ubuntu 24.04 LTS recién instalado. Para pruebas o una empresa pequeña, 2 vCPU y 4 GB de RAM son un buen punto de partida.
  • Un usuario con sudo y acceso por SSH.
  • Un subdominio, por ejemplo erp.tuempresa.com, con un registro A apuntando a la IP del servidor, y los puertos 80 y 443 abiertos.

En todos los comandos, cambia erp.tuempresa.com por tu dominio.

1. Prepara el sistema

sudo apt update && sudo apt upgrade -y
sudo timedatectl set-timezone America/Santo_Domingo
python3 --version   # Ubuntu 24.04: Python 3.12.x

2. PostgreSQL 16 y pgvector

Instala PostgreSQL antes que Odoo: el paquete de Odoo lo espera en el mismo servidor. Si vas a usar la IA de Odoo, instala también pgvector, que en Ubuntu 24.04 viene empaquetado en el repositorio universe:

sudo apt install -y postgresql postgresql-16-pgvector
psql --version      # debe ser 16 o superior

La documentación de Odoo explica cómo compilar pgvector desde su código fuente; el paquete de Ubuntu es más cómodo de mantener porque se actualiza con apt.

3. wkhtmltopdf con Qt parcheado

Sin la versión correcta, las facturas y cotizaciones en PDF salen sin encabezado ni pie de página. La de los repositorios de Ubuntu no trae el Qt parcheado; se usa el paquete oficial del proyecto publicado para 22.04, que funciona en 24.04:

sudo apt install -y xfonts-75dpi xfonts-base fontconfig
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb
sudo apt install -y ./wkhtmltox_0.12.6.1-3.jammy_amd64.deb
wkhtmltopdf --version   # wkhtmltopdf 0.12.6.1 (with patched qt)

4. Instala Odoo 20 desde el repositorio oficial

Estos son los comandos de la documentación oficial para la rama 20.0. El repositorio publica un paquete nuevo cada noche con las correcciones de la versión:

wget -q -O - https://nightly.odoo.com/odoo.key | sudo gpg --dearmor -o /usr/share/keyrings/odoo-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/odoo-archive-keyring.gpg] https://nightly.odoo.com/20.0/nightly/deb/ ./' | sudo tee /etc/apt/sources.list.d/odoo.list
sudo apt-get update && sudo apt-get install -y odoo
sudo systemctl status odoo

El paquete crea el servicio odoo, el usuario de sistema y el usuario de PostgreSQL odoo (con permiso para crear bases de datos, pero sin ser superusuario), y deja la configuración en /etc/odoo/odoo.conf y el registro en /var/log/odoo/odoo-server.log. Desde ahora, apt upgrade también trae los parches de Odoo 20.

¿Y Odoo 20 Enterprise?

No hay repositorio nocturno para Enterprise. Con una suscripción, descargas el paquete .deb de la página de descargas de Odoo y lo instalas con sudo apt install ./archivo.deb. El resto de la guía es igual. Recuerda que el despliegue en servidor propio de Enterprise requiere el plan Custom; lo explico en cuánto cuesta Odoo.

5. Configura Odoo para producción

sudo nano /etc/odoo/odoo.conf
[options]
; contraseña maestra del gestor de bases de datos: larga y única
admin_passwd = CAMBIA-ESTA-CLAVE-LARGA-Y-UNICA
db_host = False
db_port = False
db_user = odoo
db_password = False

; Odoo solo escucha en local: el acceso público entra por Nginx
http_interface = 127.0.0.1
proxy_mode = True

; modo multiproceso: (núcleos x 2) + 1 como máximo
workers = 5
max_cron_threads = 1
limit_memory_soft = 629145600
limit_memory_hard = 1677721600
limit_time_cpu = 600
limit_time_real = 1200

Con workers mayor que 0, Odoo atiende el chat y las notificaciones en el puerto 8072, igual que en la 19. Cada worker sirve a unos 6 usuarios concurrentes. Odoo 20 añade algunas opciones nuevas, como --db-system (la base de PostgreSQL que usa para operaciones compartidas como el bus, postgres por defecto) o --gevent-workers; con sus valores por defecto no hace falta tocarlas.

sudo systemctl restart odoo
sudo tail -n 30 /var/log/odoo/odoo-server.log

6. Nginx con HTTPS

La guía oficial de despliegue de Odoo 20 es idéntica a la de Odoo 19, así que la configuración de Nginx no cambia: un bloque para la aplicación y otro para /websocket.

sudo apt install -y nginx certbot python3-certbot-nginx
sudo nano /etc/nginx/sites-available/odoo
upstream odoo     { server 127.0.0.1:8069; }
upstream odoochat { server 127.0.0.1:8072; }
map $http_upgrade $connection_upgrade { default upgrade; '' close; }

server {
  listen 80;
  server_name erp.tuempresa.com;
  proxy_read_timeout 720s;
  proxy_connect_timeout 720s;
  proxy_send_timeout 720s;
  client_max_body_size 64m;

  location /websocket {
    proxy_pass http://odoochat;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header X-Forwarded-Host $http_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;
  }

  location / {
    proxy_set_header X-Forwarded-Host $http_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;
    proxy_redirect off;
    proxy_pass http://odoo;
  }

  gzip on;
  gzip_types text/css text/plain text/xml application/xml application/json application/javascript;
}
sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/odoo
sudo rm -f /etc/nginx/sites-enabled/default
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d erp.tuempresa.com --redirect -m tu@correo.com --agree-tos
sudo ufw allow OpenSSH && sudo ufw allow 'Nginx Full' && sudo ufw enable

7. Crea la base de datos y activa pgvector

Entra a https://erp.tuempresa.com, escribe la contraseña maestra y crea la base. Si eliges República Dominicana como país, Odoo propone la localización contable dominicana.

Como el usuario odoo de PostgreSQL no es superusuario y pgvector no es una extensión «de confianza», lo más seguro es crear la extensión tú, como administrador, en la base nueva:

sudo -u postgres psql -d nombre_de_tu_base -c "CREATE EXTENSION IF NOT EXISTS vector;"

Después, oculta el gestor de bases de datos añadiendo a /etc/odoo/odoo.conf estas dos líneas y reinicia Odoo:

list_db = False
dbfilter = ^nombre_de_tu_base$

8. La IA de Odoo 20: qué necesitas saber

La IA nativa de Odoo es de la edición Enterprise: Community no trae esos módulos. Y en Odoo 20, según las notas oficiales, «All AI features now need credits»: cada uso consume créditos de pago que se compran a Odoo, y la IA agéntica es del plan Custom. Si prefieres un costo fijo o que tus datos no salgan de tu empresa, compara las opciones en IA para Odoo.

9. Respaldos: base y filestore

Igual que en cualquier versión: respalda la base de PostgreSQL y el filestore con los adjuntos, guarda una copia fuera del servidor y prueba a restaurarla.

sudo -i
BD=nombre_de_tu_base; mkdir -p /backup
sudo -u postgres pg_dump -Fc "$BD" > /backup/${BD}_$(date +%F).dump
tar czf /backup/${BD}_filestore_$(date +%F).tgz -C /var/lib/odoo/.local/share/Odoo/filestore "$BD"

¿Prefieres que te deje Odoo 20 montado, respaldado y vigilado en tu servidor?

Escríbeme ↗

¿Y en Debian 13?

Debian 13 trae Python 3.13 y PostgreSQL 17, que cumplen los requisitos, pero a 4 de octubre de 2026 la documentación de Odoo 20 solo declara Ubuntu 24.04 para el paquete .deb, y Debian 13 tampoco incluye wkhtmltopdf. Para producción en Debian 13 prefiero la instalación desde el código fuente (rama 20.0 y setup/debinstall.sh) o Docker. Los dos métodos están en mi curso de Odoo 20 Técnico para Implementadores, junto con varios Odoo en un mismo servidor y Nginx Proxy Manager.

Problemas comunes

  • Odoo no arranca y el registro habla de la versión de Python: estás en un sistema con Python anterior al 3.12, como Ubuntu 22.04 o Debian 12. Usa Ubuntu 24.04.
  • Aviso sobre la versión de PostgreSQL: tu servidor tiene PostgreSQL 15 o anterior. Odoo 20 pide la 16 o superior.
  • Las funciones de IA no funcionan: revisa que pgvector esté instalado y que la extensión exista en tu base (paso 7).
  • PDF sin encabezado ni pie: wkhtmltopdf no es la versión parcheada (paso 3).
  • El chat no se actualiza: falta el bloque /websocket en Nginx o workers está en 0.

¿Instalo la 20 o me quedo en la 19?

Para una empresa nueva sin módulos de terceros, Odoo 20 es una opción razonable. Si ya tienes Odoo en producción, espera: a finales de septiembre de 2026 ni el servicio oficial de actualización ni OpenUpgrade migraban todavía a la 20. Lo explico en Odoo 20: novedades y, si necesitas cambiar de versión, en migración de Odoo.

Preguntas frecuentes

¿Odoo 20 Community es gratis?

Sí. Odoo Community tiene licencia LGPL: no pagas licencia, solo el servidor y la implementación o el soporte que necesites. Enterprise se paga por usuario; los precios están en cuánto cuesta Odoo en 2026.

¿Puedo instalar Odoo 20 en Ubuntu 22.04?

No es recomendable. Ubuntu 22.04 trae Python 3.10 y Odoo 20 exige el 3.12 o superior. Tendrías que instalar otro Python y otro PostgreSQL a mano. Para un servidor nuevo, usa Ubuntu 24.04.

¿Hace falta pgvector si no voy a usar la IA?

No. La documentación de Odoo lo pide para las funciones de inteligencia artificial. Si no las vas a usar, Odoo funciona sin pgvector; instalarlo de entrada no estorba y te ahorra el paso más adelante.

¿Cuánto servidor necesita Odoo 20?

Las reglas no cambian respecto a la 19: como máximo (núcleos × 2) + 1 workers y unos 6 usuarios concurrentes por worker. Para hasta 10 usuarios a la vez, 2 vCPU y 4 GB de RAM; con más, mira la tabla de hosting de Odoo.

¿Dónde aprendo a administrar Odoo 20?

En el curso de Odoo 20 Técnico para Implementadores de ADL Academy: 29 lecciones sobre instalación en Ubuntu, Debian y Docker, HTTPS, módulos, permisos, correo, respaldos, seguridad y migración.

Fuentes