Instalación de Odoo 18 en Ubuntu 24.04 LTS

Este documento detalla los pasos necesarios para desplegar Odoo 18 Community Edition en un entorno de producción o desarrollo bajo Linux.

1. Preparación del Sistema

Primero, actualizamos el sistema e instalamos las dependencias básicas necesarias para Python y la gestión de paquetes.

# Actualizamos repositorios y sistema sudo apt update && sudo apt upgrade -y

# Instalamos Git, Pip y librerías de desarrollo básicas sudo apt install git python3-pip python3-dev libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev build-essential libssl-dev libffi-dev libmysqlclient-dev libjpeg-dev libpq-dev libjpeg8-dev liblcms2-dev libblas-dev libatlas-base-dev -y

2. Configuración de PostgreSQL

Odoo necesita una base de datos PostgreSQL. Vamos a instalarla y crear un usuario dedicado.

# Instalamos el servidor y cliente de BBDD sudo apt install postgresql postgresql-client -y

# Creamos el usuario de base de datos 'odoo18' sudo su - postgres -c "createuser -s odoo18"

# Entramos a la consola SQL para ponerle contraseña sudo su - postgres
psql
# OJO: No olvidar el punto y coma al final ALTER ROLE odoo18 WITH PASSWORD 'admin';
\q # Salimos de psql exit # Salimos del usuario postgres

3. Creación del Usuario del Sistema

Por seguridad, Odoo no debe ejecutarse como root. Creamos un usuario de sistema llamado odoo18 con su propia carpeta home en /opt/odoo18.

# Creamos usuario con home en /opt/odoo18 sudo useradd -m -d /opt/odoo18 -U -r -s /bin/bash odoo18

4. Descarga del Código y Entorno Virtual

Ahora clonaremos el código fuente de Odoo y prepararemos el entorno aislado de Python (venv).

# Instalamos herramienta para entornos virtuales sudo apt install python3-venv -y

# Cambiamos al usuario odoo18 para hacer la instalación sudo su - odoo18

# Clonamos el repositorio (rama 18.0) git clone https://github.com/odoo/odoo.git --depth 1 --branch 18.0 --single-branch odoo

# Creamos el entorno virtual llamado 'venv' python3 -m venv venv

# Activamos el entorno source venv/bin/activate

# Instalamos las dependencias de Python pip install wheel
pip install -r odoo/requirements.txt

# Desactivamos el entorno por un momento deactivate
exit
# Salimos del usuario odoo18 para volver a tu usuario normal

5. Archivo de Configuración

Creamos el archivo de configuración odoo.conf. Lo guardaremos en una ruta accesible.

# Creamos el archivo (usando sudo porque /etc requiere permisos) sudo nano /etc/odoo18.conf

Pega el siguiente contenido dentro del archivo:

[options]
; Esta es la contraseña maestra para crear BBDD (Mantenla segura)
admin_passwd = admin
db_host = False
db_port = False
db_user = odoo18
db_password = admin
addons_path = /opt/odoo18/odoo/addons
logfile = /var/log/odoo/odoo18.log
        
# Crear carpeta de logs y dar permisos sudo mkdir /var/log/odoo
sudo chown odoo18:odoo18 /var/log/odoo

6. Automatización: Crear Servicio (Systemd)

Para que Odoo arranque automáticamente al encender el servidor y se ejecute en segundo plano, creamos un servicio.

# Creamos el archivo de servicio sudo nano /etc/systemd/system/odoo18.service

Contenido del archivo de servicio:

[Unit]
Description=Odoo 18
Documentation=http://www.odoo.com
; Iniciar después de que la red y postgres estén listos
After=network.target postgresql.service

[Service]
; Usuario que ejecutará el servicio
User=odoo18
Group=odoo18
; Ruta donde está instalado
SyslogIdentifier=odoo18
PermissionsStartOnly=true
Type=simple
; Comando de ejecución: Python del venv + binario de Odoo + Configuración
ExecStart=/opt/odoo18/venv/bin/python3 /opt/odoo18/odoo/odoo-bin -c /etc/odoo18.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target
        

Finalmente, habilitamos y arrancamos el servicio:

# Recargar el demonio de servicios sudo systemctl daemon-reload

# Habilitar para arranque automático sudo systemctl enable odoo18

# Arrancar el servicio ahora sudo systemctl start odoo18

# Ver estado del servicio sudo systemctl status odoo18
¡Todo listo! Abre tu navegador en: http://localhost:8069 (o la IP de tu servidor).

← Volver a la Portada