Instalando Odoo 19 en Docker en Ubuntu 24.04: Guía completa (Comunidad y Empresa) | INTROSERV

Odoo 19 en Docker: Guía completa de instalación para Ubuntu 24.04 (Community & Enterprise)

Introducción

Desplegar un sistema ERP a menudo parece una tarea desalentadora, pero la contenedorización convierte este proceso en un flujo de trabajo racionalizado. En esta guía, vamos a caminar a través de cómo configurar Odoo 19 en una instancia fresca de Ubuntu 24.04.

Lo más destacado de este método es su versatilidad. Estamos definiendo una arquitectura que le permite comenzar con la versión gratuita Community mientras mantiene la capacidad de actualizar instantáneamente a Enterprise simplemente copiando módulos. No hay "sobre la marcha" hacks configuración - sólo la gestión de contenedores limpia y SSL automática a través de Caddy.

Pila técnica (verificada):

  • SO: Ubuntu 24.04 LTS (Dado que se trata de una instalación Docker, el método se aplica también a otras distribuciones de Linux)
  • Contenedorización: Docker 29.1.5 + Docker Compose
  • Servidor Web: Caddy (HTTPS automático)
  • Base de datos: PostgreSQL 18
  • Especificaciones VM: 2 vCPU, 4 GB RAM, 40 GB NVMe

Paso 0: Instalar Docker

Instale Docker desde el repositorio oficial:

curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh

Añade tu usuario al grupo docker:

sudo usermod -aG docker $USER newgrp docker

Habilite e inicie Docker:

sudo systemctl enable docker sudo systemctl start docker

Verifique la instalación:

docker ps

Paso 1: Configurar la estructura del proyecto

Cree el directorio de trabajo y las carpetas necesarias:

mkdir odoo-stack && cd odoo-stack mkdir -p addons enterprise

Paso 2: Crear docker-compose.yml

Cree un nuevo archivo Docker Compose:

nano docker-compose.yml

Pegue la siguiente configuración (reemplace odoo_secure_password en las secciones db environment y odoo environment con su contraseña real):

YAML

services: db: image: postgres:18 environment: - POSTGRES_DB=postgres - POSTGRES_PASSWORD=odoo_secure_password - POSTGRES_USER=odoo - PGDATA=/var/lib/postgresql/data/pgdata volumes: - odoo-db-data:/var/lib/postgresql/data/pgdata restart: unless-stopped odoo: image: odoo:19.0 depends_on: - db volumes: - odoo-web-data:/var/lib/odoo - ./addons:/mnt/extra-addons - ./enterprise:/mnt/enterprise-addons entorno: - HOST=db - USER=odoo - PASSWORD=odoo_secure_password comando: --addons-path=/usr/lib/python3/dist-packages/odoo/addons,/mnt/enterprise-addons,/mnt/extra-addons --proxy-mode restart: unless-stopped caddy: image: caddy:latest ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy-data:/data restart: unless-stopped volumes: odoo-web-data: odoo-db-data: caddy-data:

Paso 3: Crear el Caddyfile

Cree el archivo de configuración de Caddy:

nano Caddyfile

Pega la configuración de abajo (sustituye :80 por tu dominio para SSL automático):

# Sustituye :80 por TU_DOMINIO para SSL automático :80 { # Aumenta el tamaño máximo del cuerpo del cliente para subir archivos request_body { max_size 300MB } # Longpolling para chats y notificaciones reverse_proxy /longpolling/* odoo:8072 { header_up X-Forwarded-Host {host} header_up X-Forwarded-Proto {scheme} } # Tráfico principal reverse_proxy odoo:8069 { header_up X-Forwarded-Host {host} header_up X-Forwarded-Proto {scheme} } }

Paso 4: Iniciar la pila

Inicie la pila:

docker compose up -d

Comprueba el estado (los 3 contenedores deberían estar "Up"):

docker compose ps

Compruebe los registros para asegurarse de que no hay errores:

docker compose logs odoo

Paso 5: Configuración inicial

Abra su navegador y navegue a

  • Vía IP: http://YOUR_SERVER_IP
  • Vía Dominio: https://YOUR_DOMAIN (si está configurado en el Caddyfile)

Complete el formulario de creación de base de datos:

  • Contraseña maestra: Se sugerirá una contraseña maestra en el primer acceso (guarde esta contraseña, es crítica).
  • Nombre de la base de datos: por ejemplo, miempresa.
  • Correo electrónico: Su dirección de correo electrónico accesible (este será su login).
  • Contraseña: Su contraseña de acceso al sistema.
  • Idioma: Seleccione su idioma preferido.
  • País: Seleccione su país.
  • Datos de demostración: Dejar sin marcar para una base de datos de producción limpia.

Haga clic en Crear base de datos y espere a que finalice el proceso (1-2 minutos).

Actualización de Community a Enterprise

Para pasar de Community a Enterprise, simplemente coloque los módulos en el directorio designado.

Paso 1. Obtener los módulos Enterprise Obtener los módulos Enterprise (a través de la suscripción de Odoo).

Paso 2. Extraerlos en la carpeta ./enterprise/.

Paso 3. Reinicie el contenedor. Reinicie el contenedor:

docker compose restart odoo

Paso 4. Instale los módulos Enterprise necesarios a través de la interfaz de usuario.
No se necesitan cambios en los archivos de configuración - la ruta a los módulos enterprise ya está preconfigurada.

Configuración del Firewall

Si está utilizando UFW, ejecute lo siguiente:

sudo ufw allow ssh/tcp && \ sudo ufw allow 80/tcp && \ sudo ufw allow 443/tcp && \ sudo ufw default deny incoming && \ sudo ufw default allow outgoing && \ sudo ufw --force enable

Comandos útiles

Detener todo:

docker compose down

Reiniciar sólo Odoo:

docker compose restart odoo

Ver logs:

docker compose logs -f odoo docker compose logs -f db docker compose logs -f caddy

Copia de seguridad de la base de datos:

docker compose exec db pg_dumpall -U odoo > backup_$(date +%Y%m%d).sql

Restaurar Base de Datos:

cat backup_20240125.sql | docker compose exec -T db psql -U odoo

Borrado completo (¡Precaución!):

docker compose down -v rm -rf addons enterprise Caddyfile

Uso de un nombre de dominio

Para obtener un certificado SSL automático de Let's Encrypt:

Paso 1. Configurar DNS: Apunta un registro A de TU_DOMINIO a la IP de tu servidor.

Paso 2. Actualizar Caddyfile Actualizar Caddyfile: Sustituya :80 por SU_DOMINIO.

Paso 3. Reinicie Caddy. Reinicie Caddy:

docker compose restart caddy

Caddy aprovisionará automáticamente el certificado SSL.

Paso 4. Acceda a Odoo a través de Acceda a Odoo a través de https://YOUR_DOMAIN.

Verifique la emisión del certificado:

docker compose logs caddy | grep certificate


VAT

  • Other

    Other

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    %
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • Other
  • canada
  • poland
  • european-union
  • france
  • germany
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria