Skip to content
fireDevelop edited this page Apr 8, 2025 · 1 revision

🚀 Odoo 17 + Windows 11 + WSL 2 Ubuntu + Docker + PyCharm + PostgreSQL - Setup Guide

Esta guía detalla cómo instalar y ejecutar Odoo 17 usando Docker, conectarlo con PyCharm y acceder a la base de datos PostgreSQL desde Docker. También incluye backups, módulos personalizados y solución de problemas.


📁 Estructura del Proyecto

odoo-docker/
├── addons/                 # Módulos personalizados
├── backups/                # Backups de PostgreSQL
├── .env                    # Variables de entorno (config Docker)
├── docker-compose.yml      # Config principal de Docker
└── README.md               # Esta documentación

⚙️ Archivo docker-compose.yml

Este es el contenido recomendado de tu docker-compose.yml para levantar Odoo 17 y PostgreSQL:

version: '3.1'

services:
  web:
    image: odoo:17
    depends_on:
      - db
    ports:
      - "8069:8069"
    volumes:
      - ./addons:/mnt/extra-addons
      - odoo-web-data:/var/lib/odoo
    environment:
      - HOST=db
      - USER=odoo
      - PASSWORD=odoo
    restart: always

  db:
    image: postgres:15
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=odoo
      - POSTGRES_PASSWORD=odoo
    volumes:
      - odoo-db-data:/var/lib/postgresql/data
    restart: always

volumes:
  odoo-web-data:
  odoo-db-data:

🔐 Archivo .env (opcional)

Puedes definir variables de entorno aquí si quieres externalizarlas del docker-compose.yml:

POSTGRES_DB=postgres
POSTGRES_USER=odoo
POSTGRES_PASSWORD=odoo

Luego, en docker-compose.yml reemplaza las líneas correspondientes por:

environment:
  - POSTGRES_DB=${POSTGRES_DB}
  - POSTGRES_USER=${POSTGRES_USER}
  - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}

▶️ Ejecutar Docker

cd odoo-docker
docker compose up -d

Verifica que los contenedores están activos:

docker ps

🧩 Addons personalizados

Coloca tus módulos en la carpeta:

odoo-docker/addons/

Ya está montada en /mnt/extra-addons dentro del contenedor.


🧠 Acceder a PostgreSQL desde Docker

Conéctate al contenedor de PostgreSQL:

docker exec -it odoo-docker-db-1 bash
psql -U odoo -d postgres

Comandos útiles en PostgreSQL:

\l          -- Listar bases de datos
\dt         -- Listar tablas
\q          -- Salir

🧠 Configurar PyCharm con Docker

  1. Abre PyCharm > File > Settings > Project > Python Interpreter.
  2. Haz clic en el engranaje ⚙ > Add....
  3. Elige Docker Compose > selecciona:
    • Service: web
    • Python interpreter path: /usr/bin/python3
  4. Aplica los cambios y espera a que se configure.

💾 Backup y Restore de PostgreSQL

Crear Backup

docker exec odoo-docker-db-1 pg_dump -U odoo -d postgres > backups/odoo_backup.sql

Restaurar Backup

cat backups/odoo_backup.sql | docker exec -i odoo-docker-db-1 psql -U odoo -d postgres

📂 .gitignore recomendado

__pycache__/
*.py[cod]
*.log
*.sql

/backups/
/odoo-web-data/
/odoo-db-data/
/volumes/
/odoo/
/env/
/.env

.DS_Store
.vscode/
.idea/
venv/
.venv/

🧯 Solución de Problemas

❌ Error: could not load pg_hba.conf

  • Asegúrate de que el archivo pg_hba.conf no tenga errores de sintaxis.
  • Puedes restaurar el archivo eliminando el volumen dañado:
docker volume rm odoo-docker_db-data
docker compose up -d

❌ Error: could not translate host name "db"

Verifica que:

  • El contenedor db está corriendo (docker ps)
  • El docker-compose.yml usa db como nombre del host en el contenedor web.

✅ Estado del Proyecto

  • Odoo 17 funcionando en contenedor Docker
  • PostgreSQL accesible desde Docker
  • Addons personalizados cargados desde carpeta local
  • PyCharm conectado al contenedor Odoo
  • Backup y restauración configurados