Odoo - el erp opensource por excelencia
Aprende sobre Odoo, un proyecto opensource de gran alcance que se enfoca en el erp, contiene módulos para gestionar tu empresa desde un solo lugar.
Síguenos con el tutorial
Section titled “Síguenos con el tutorial”- En QuéPasalinux Odoo Community- Introducción a Odoo con Docker un vídeo práctico sobre Odoo Community con Docker y Podman
Volver a Página Principal
Ver Tutorial en YouTube
🚀 Odoo 19 + PostgreSQL (Multi-Runtime: Docker & Podman)
Section titled “🚀 Odoo 19 + PostgreSQL (Multi-Runtime: Docker & Podman)”Este proyecto despliega una instancia resiliente de Odoo 19 con persistencia de datos y soporte para módulos personalizados. Está diseñado para funcionar indistintamente con Docker Compose o Podman Compose.
🛠️ Requisitos Previos
Section titled “🛠️ Requisitos Previos”Puedes elegir cualquiera de estos dos motores:
- Opción A: Docker (Docker Engine + Docker Compose)
- Opción B: Podman (Podman + Podman Compose / Podman-docker)
📂 Configuración del Archivo docker-compose.yml
Section titled “📂 Configuración del Archivo docker-compose.yml”He actualizado la configuración a Odoo 19.0. Se han añadido políticas de reinicio y una gestión de volúmenes que garantiza la compatibilidad con los contextos de seguridad (SELinux) de Podman mediante el sufijo :z.
services: web: image: odoo:19.0 depends_on: - db ports: - "8069:8069" volumes: - ./custom_addons:/mnt/extra-addons:z # Importante: Mantenemos la ruta base para no perder los módulos oficiales command: --addons-path=/mnt/extra-addons,/usr/lib/python3/dist-packages/odoo/addons restart: always
db: image: postgres:15 environment: - POSTGRES_DB=postgres - POSTGRES_PASSWORD=odoo - POSTGRES_USER=odoo volumes: - odoo_db_data:/var/lib/postgresql/data restart: always
volumes: odoo_db_data:🚀 Guía de Despliegue
Section titled “🚀 Guía de Despliegue”Antes de empezar, crea la carpeta de módulos:
mkdir custom_addonsOpción 1: Utilizando Docker
Section titled “Opción 1: Utilizando Docker”Si utilizas el motor tradicional de Docker:
# Levantar el stackdocker compose up -d
# Ver logsdocker compose logs -fOpción 2: Utilizando Podman
Section titled “Opción 2: Utilizando Podman”Podman gestiona los volúmenes de forma más estricta. La configuración ya incluye :z para que Podman reetiquete automáticamente los permisos de SELinux en la carpeta custom_addons.
# Levantar el stack con podman-composepodman-compose up -d
# Si usas el comando nativo de podman para ver los podspodman pod ps🔌 Gestión de Addons Personalizados
Section titled “🔌 Gestión de Addons Personalizados”Para importar nuevos módulos en cualquiera de las dos plataformas:
- Añadir: Copia la carpeta de tu módulo dentro de
./custom_addons. - Permisos (Solo Podman): Si tienes problemas de permisos en Linux, ejecuta:
chown -R 101:101 ./custom_addons(101 es el ID de usuario por defecto en la imagen de Odoo). - Activar:
- Entra en Odoo (
http://localhost:8069). - Activa el Modo Desarrollador.
- En Aplicaciones, pulsa en Actualizar lista de aplicaciones.
🔄 Diferencias Clave entre Motores
Section titled “🔄 Diferencias Clave entre Motores”| Característica | Docker | Podman |
|---|---|---|
| Daemon | Requiere un servicio corriendo (Root) | Daemonless (Rootless disponible) |
| Seguridad | Menos restrictivo por defecto | Más seguro (usa SELinux/remapping) |
| Comandos | docker compose | podman-compose o podman compose |
🛡️ Resiliencia y Persistencia
Section titled “🛡️ Resiliencia y Persistencia”- Persistencia: La base de datos se guarda en el volumen nombrado
odoo_db_data. Aunque borres los contenedores, tus datos están a salvo. - Auto-reinicio: Si el servidor se apaga inesperadamente, el parámetro
restart: alwaysasegura que Odoo y la DB vuelvan a levantarse automáticamente al iniciar el motor.