¿Qué es Odoo?
Odoo es una plataforma empresarial ERP/CRM, modular y de código abierto, que unifica múltiples aplicaciones de negocio:
- CRM
- Ventas
- Contabilidad
- Recursos Humanos
- Inventario
- Facturación
- y muchas más...
Su interfaz web moderna y su ecosistema de módulos lo convierten en una solución ideal para empresas pequeñas, medianas y grandes. Conoce más en nuestro artículo sobre Odoo.
¿Qué aprenderás en este tutorial?
Esta guía te mostrará cómo implementar Odoo 18 Community Edition en un servidor Ubuntu 22.04, integrando PostgreSQL, configurando Nginx como proxy inverso, y aplicando buenas prácticas para seguridad y rendimiento.
Esta guía te enseñará a:
- Preparar un servidor Ubuntu 24.04 para producción
- Instalar y configurar PostgreSQL como base de datos para Odoo
- Configurar el repositorio Odoo Nightly
- Crear y configurar el archivo odoo.conf correctamente
- Usar systemd para iniciar Odoo como servicio del sistema
- Configurar Nginx como proxy inverso con HTTPS (opcional)
- Activar funciones como el chat en vivo y el longpolling
- Aplicar ajustes clave de rendimiento y seguridad
Requisitos previos para instalar Odoo 18 en Ubuntu.
Antes de comenzar con la instalación de Odoo 18 en Ubuntu 24.04, asegúrate de cumplir con lo siguiente:
- Una instancia de Ubuntu 24.04 LTS (puede estar en tu PC personal, en un VPS, o en la nube como AWS, Azure o GCP).
- En este tutorial usamos un VPS en la nube de AWS con una CPU de 2 núcleos, 512MB de RAM, y 20GB de espacio en disco. Si cuentas con más recursos mejor.
- Acceso como usuario root o permisos con sudo.
- Una conexión estable a internet.
- Dominio configurado (opcional, pero recomendable para usar Nginx y SSL)
- Si vas a usar un nombre de dominio, asegúrate de que tu instancia de Ubuntu tenga abiertos los puertos 80 y 442.
- Si no vas a usar un nobre de dominio, asegúrate de que tu instancia de Ubuntu tenga abierto el puerto 8069.
Paso 1: Actualización del sistema y configuración inicial.
En este paso nos vamos a conectarnos a nuestro servidor a través de SSH, actualizar el sistema, configurar nuestra zona horaria, y agregar un espacio de memoria swap de 512M para mejorar el rendimiento del sistema.
Reemplaza usuario por tu usuario de acceso, y dirección-IP por la dirección IP pública de tu servidor para conectarte.
# Conéctate a la máquina remota vía SSH
ssh usuario@dirección-IP
# Cambia a super usuario y actualiza el sistema
sudo su
apt update
apt -y upgrade
# Asigna una zona horaria
timedatectl set-timezone America/Bogota;
# Configura la memoria swap
dd if=/dev/zero of=/swapfile bs=1M count=512;
chmod 600 /swapfile;
mkswap /swapfile;
swapon /swapfile;
swapon -s;
echo "/swapfile none swap sw 0 0" >> /etc/fstab ;
Paso 2: Instalación del motor de bases de datos.
En este paso vamos a configurar el repositorio de PostgreSQL e instalar el motor de base de datos.
# Importa el repositorio con las llaves PostgreSQL
apt install curl ca-certificates
install -d /usr/share/postgresql-common/pgdg
curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc
# Crea el archivo de configuración del repositorio de PostgreSQL
. /etc/os-release
sh -c "echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $VERSION_CODENAME-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
# Instala la base de datos PostgreSQL
apt update
apt install -y postgresql-17
Paso 3: Instalación de Odoo.
En este paso vamos a configurar el repositorio de Odoo v18, instalar Odoo, y los demás paquetes requeridos en el servidor.
# Crea el archivo de configuración del repositorio de Odoo v18
wget -q -O - https://nightly.odoo.com/odoo.key | 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/18.0/nightly/deb/ ./' | tee /etc/apt/sources.list.d/odoo.list
# Instala el software Oddoo
apt-get update
apt -y install odoo wkhtmltopdf
En este punto del proceso ya tenemos instalados los requisitos mínimos para ejecutar Odoo v18.
Puedes validar que que todo funciona correctamente conectándote desde un explorador web a la dirección IP de tu servidor en el puerto 8069, así:
Reemplaza dirección-IP por la dirección IP pública de tu servidor.
http://dirección-IP:8069
O si instalaste Odoo en tu coputadora personal puedes usar la dirección local de tu equipo, así:
http://127.0.0.1:8069
Si todo está correcto, deberás ver la pantalla de configuración inicial de Odoo.
En este punto ya puedes configurar Odoo y empezar a utilizarlo para tu negocio sin necesidad de un nombre de dominio.
Paso 4: Instalación de Nginx y el certificado para conexiones HTTPS.
Si no cuentas con un nombre de dominio para tu instancia de Odoo, puedes saltar directamente al paso número 6.
En este paso vamos a instalar y configurar el servidor web Nginx con el nombre de domino que deseas usar, y a generar un certificado de seguridad gratuito con Let'sEncrypt para habilitar las conexiones seguras (HTTPS).
- Reemplaza edu.smartbox.host por el nombre de dominio o subdominio que deseas usar para acceder a tu instancia de Odoo.
- Reemplaza example@smartbox.host por un correo válido donde recibir notificaciones sobre tu certificado de seguridad.
- To nombre de domino debe estar correctamente apuntado a la dirección IP de tu servidor para poder generar el certificado de seguridad.
# Instalamos el servidor web y el software adicional
apt install -y nginx python3-certbot-nginx certbot
# Creamos el host virtual con el nombre de dominio elegido
cat > /etc/nginx/sites-available/edu.smartbox.host.http.conf<< 'EOF'
# http
server {
listen 80;
server_name edu.smartbox.host;
}
EOF
# Activamos el host virtual en el servidor web
ln -s /etc/nginx/sites-available/edu.smartbox.host.http.conf /etc/nginx/sites-enabled/edu.smartbox.host.http
# Solicitamos el certificado de seguridad a la entidad certificadora
certbot -m example@smartbox.host --agree-tos --no-eff-email --redirect --nginx -d edu.smartbox.host
Paso 5: Configurción de Nginx como proxy inverso para el acceso a Odoo.
En este paso vamos a crear la configuración necesaria para acceder a nuestra instancia de Odoo usando nuestro nombre de dominio, y habilitar servicios como chat en vivo.
Reemplaza edu.smartbox.host por el nombre de dominio o subdominio que deseas usar para acceder a tu instancia de Odoo.
# Configuramos los upstreams
cat <<'EOF' > /etc/nginx/conf.d/upstreams.conf
#odoo server
upstream odoo {
server 127.0.0.1:8069;
}
upstream odoochat {
server 127.0.0.1:8072;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
EOF
# Aplicamos la configuración del proxy inverso
cat > /etc/nginx/sites-available/edu.smartbox.host.http.conf<< 'EOF'
# http -> https
server {
if ($host = edu.smartbox.host) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name edu.smartbox.host;
return 404; # managed by Certbot
}
server {
listen 443 ssl; # managed by Certbot
server_name edu.smartbox.host;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
# SSL parameters
ssl_certificate /etc/letsencrypt/live/edu.smartbox.host/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/edu.smartbox.host/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
# log
access_log /var/log/nginx/smartbox.host.access.log;
error_log /var/log/nginx/smartbox.host.error.log;
# Redirect websocket requests to odoo gevent port
location /websocket {
proxy_pass http://odoochat;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
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;
}
# Redirect requests to odoo backend server
location / {
# Add Headers for odoo proxy mode
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;
proxy_redirect off;
proxy_pass http://odoo;
# Enable HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
# requires nginx 1.19.8
#proxy_cookie_flags session_id samesite=lax secure;
}
# common gzip
gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
EOF
# Validamos que la configuración esté correcta y reiniciamos el servidor web
nginx -t
systemctl restart nginx
Paso 6: Configuración de la base de datos de tu sitio Odoo.
Si saltaste a este paso desde el punto número 4, reemplaza edu.smartbox.host por la dirección IP de tu servidor en el puerto 8069, así.
dirección-IP:8069
O si instalaste Odoo en tu coputadora personal, reemplaza edu.smartbox.host por la dirección local de tu equipo, así:
127.0.0.1:8069
Accede desde un explorador web a tu nombre de domino (o a la dirección IP de tu servidor si no tienes un nombre de domino configurado).
http://edu.smartbox.host
Si todo está correcto, deberás ver la pantalla de configuración inicial de Odoo, y también notar que la dirección web cambia de http a https, indicando que ahora es una conexión segura.
Ingersa los datos requeridos y haz clic en el botón "Create database". Recuerda guardar de forma segura tu "Master password" y tu "Password".
El "Master password" nos permite realizar copias de seguridad de nuestra instancia de Odoo. Por otro lado, el "Password" es la contraseña que usaremos para iniciar sesión con privilegios de administrador en Odoo, para instalar los modulos que necesitamos o crear los usuarios de nuestra empresa.
Después de hacer clic en "Create database", el sistema creará la base de datos y las configuraciones necesarias para que nuestra instancia de Odoo quede totalmente funcional y lista para usar.
Si todo marcha bien, después de unos minutos se nos presentará la pantalla de inicio de sesión, donde podremos ingresar por primera vez a nuestra instancia de Odoo usando el "Email" y el "Password" que elgimos en el paso anterior, y configurar nuestro sitio web, comercio electrónico, inventario, o cualquier otra función que necesitemos para gestionar nustro negocio.
Paso 7: Ajustes finales.
En este paso vamos a configurar el servicio de longpolling, proteger nuestras bases de datos del acceso público, aplicar algunos ajustes finales, y reiniciar el servicio de Odoo para aplicar los ajustes realizados.
Si no estas usando Nginx como proxy inverso (los pasos 4 y 5), cambia el valor de proxy_mode de True a False, así:
proxy_mode = False
# Aplicamos los ajustes finales en el archivo de configuración de Odoo
cat >> /etc/odoo/odoo.conf<< 'EOF'
log_level = info
logfile = /var/log/odoo/odoo-server.log
longpolling_port = 8072
list_db = False
workers = 2
proxy_mode = True
EOF
# Reiniciamos el servicio de Odoo
systemctl restart odoo
En este punto ya tenemos listo nuestro servidor Ubuntu 24.04 LTS con nuestra propia instancia de Odoo Community Eedition, lista para utilizarla en la gestión de nuestra empresa .
Ahora puedes regresar a la pantalla de inicio de sesión, loguearte con el correo electrónico y la contraseña elegidas en el paso número 6, y activar los módulos o aplicaciones que necesites usar para tu negocio, entre ellos: Sitio web, E-commerce, Inventario, Punto de venta, y más.
¿Necesitas ayuda con tu implementación de Odoo?
En SmartBox Host te ayudamos a instalar, personalizar, y adaptar Odoo a los procesos de tu negocio. Completa el siguiente formulario y uno de nuestros expertos te contactará para ofrecerte una asesoría gratuita.
Cómo instalar Odoo 18 Community Edition paso a paso en Ubuntu 24.04.