CLI scaffolder for multi-project Odoo development workspaces
Project description
██████ ██████ ██ █████ ██████
██ ██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██ ██ ██ ███████ ██████
██ ██ ██ ██ ██ ██ ██ ██ ██
██████ ██████ ███████ ██ ██ ██████
odoo-lab (oolab)
CLI scaffolder para crear y gestionar workspaces de desarrollo Odoo con soporte multi-proyecto.
Desarrollado por IKU Solutions SAS | Autor: Yan Chirino <yan.chirino@iku.solutions>
Que es oolab?
oolab es una herramienta de linea de comandos que automatiza la creacion y gestion de entornos de desarrollo Odoo. Permite trabajar con multiples proyectos de clientes simultaneamente, compartiendo un solo framework Odoo (Community + Enterprise opcional), con configuraciones de debug individuales por proyecto.
Caracteristicas principales
- Multi-proyecto: gestiona multiples clientes/tenants en un solo workspace
- Multi-version: soporte para Odoo 16, 17, 18 y 19
- Enterprise ready: integra Odoo Enterprise via git o copia local (requiere licencia propia)
- VSCode integrado: genera
launch.jsoncon configs de debug por proyecto (run, shell, install, update) - Entornos aislados: venvs por version de Odoo (
.venv-v19,.venv-v18) - Scaffold OCA: crea proyectos vacios con estructura de calidad (pre-commit, ruff, pylint)
- Dependencias robustas: instalacion con uv + fallbacks automaticos
- Interactivo: wizard paso a paso con spinners y feedback visual
- Multi-plataforma: compatible con macOS, Linux y Windows
Sobre Odoo Enterprise
oolab permite configurar proyectos que usan Odoo Enterprise, pero no incluye ni distribuye los modulos Enterprise. Para usarlos necesitas:
- Tener una suscripcion activa de Odoo Enterprise o ser partner autorizado de Odoo.
- Acceso al repositorio privado
github.com/odoo/enterprise(Odoo otorga acceso con la suscripcion), o bien tener una copia local de los modulos Enterprise en tu maquina.
Al agregar un proyecto Enterprise con oolab add, el CLI te preguntara si quieres clonar desde un repositorio git (necesitas acceso SSH/HTTPS al repo de Enterprise) o indicar un directorio local donde ya tengas los modulos.
Importante: Los modulos Enterprise estan protegidos por la licencia Odoo Enterprise Edition. Consulta los terminos de licencia de Odoo antes de usarlos.
Instalacion
Requisitos previos
- Python >= 3.10
- git
- Docker + Docker Compose v2
- uv (se instala automaticamente si no existe)
Instalar uv (si no lo tienes)
macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Instalar oolab
uv tool install odoo-lab --python 3.11
O con pipx:
pipx install odoo-lab
Agregar al PATH (si es necesario)
macOS / Linux (zsh):
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
macOS / Linux (bash):
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Windows (PowerShell): uv agrega automaticamente al PATH. Si no, agrega %USERPROFILE%\.local\bin a las variables de entorno del sistema.
Instalar desde el codigo fuente (para desarrollo)
Si quieres contribuir o modificar oolab:
git clone https://github.com/ikusolutions/odoo-lab.git
cd odoo-lab
uv tool install -e . --python 3.11
Verificar
oolab -v
Quick Start
# 1. Navega a donde quieres crear el workspace
cd ~/Projects
# 2. Crea el workspace (wizard interactivo)
oolab init
# 3. Entra al workspace creado
cd odoo-launchpad
# 4. Agrega proyectos de clientes
oolab add
# 5. Abre en VSCode y presiona F5
code .
Comandos
| Comando | Descripcion |
|---|---|
oolab init |
Crea un nuevo workspace odoo-launchpad/ con wizard interactivo |
oolab add |
Agrega un proyecto de cliente (clona repo o crea con scaffold OCA) |
oolab remove <nombre> |
Elimina un proyecto del workspace |
oolab list |
Lista todos los proyectos configurados con su estado |
oolab generate |
Regenera todos los archivos de configuracion desde oolab.yaml |
oolab doctor |
Verifica dependencias del sistema (git, docker, uv, python) |
oolab -v |
Muestra version e informacion del CLI |
oolab -h |
Muestra la ayuda |
Estructura del workspace
odoo-launchpad/
├── odoo/ # Odoo Community (compartido entre proyectos)
├── enterprise/ # Enterprise addons (opcional, compartido)
├── tenants/
│ ├── cliente-a/ # Proyecto de cliente A (repo independiente)
│ └── cliente-b/ # Proyecto de cliente B (repo independiente)
├── config/
│ └── odoo/odoo.conf # Configuracion central de Odoo
├── docker/
│ └── docker-compose.yaml
├── .vscode/
│ ├── launch.json # Configs de debug: Community, Shell, Update, Install + tenants
│ ├── settings.json # Python paths, venv
│ └── tasks.json # docker-compose-up
├── .venv-v19/ # Entorno virtual (uno por version de Odoo)
├── .env
└── oolab.yaml # Fuente de verdad del workspace
Ejemplo de uso
Crear workspace con Enterprise y un cliente
$ cd ~/Projects
$ oolab init
Odoo Lab v0.1.0 | IKU Solutions SAS | https://www.iku.solutions
Version de Odoo [16 / 17 / 18 / 19] (19): 19
Incluir Enterprise? [y/n]: y
URL del repositorio Enterprise: git@github.com:odoo/enterprise.git
Agregar un proyecto de cliente ahora? [y/n]: y
Nombre del proyecto: Mi Cliente ERP
Clonar desde un repositorio existente? [y/n]: y
URL del repositorio: git@github.com:org/mi-cliente-erp.git
...spinners y progreso...
Workspace listo!
Agregar otro proyecto despues
$ cd odoo-launchpad
$ oolab add
Nombre del proyecto: Otro Cliente
Version de Odoo [16 / 17 / 18 / 19] (19): 18
Clonar desde un repositorio existente? [y/n]: n
Proyecto 'Otro Cliente' agregado correctamente.
Contribuir
Las contribuciones son bienvenidas! Este es un proyecto open source mantenido por IKU Solutions SAS.
Como contribuir
- Fork el repositorio
- Crea tu branch (
git checkout -b feature/mi-feature) - Commit tus cambios (
git commit -m 'feat: descripcion') - Push al branch (
git push origin feature/mi-feature) - Abre un Pull Request
Reportar issues
Si encuentras un bug o tienes una sugerencia, abre un issue.
Guias de desarrollo
- Usa Conventional Commits para mensajes de commit
- El codigo sigue las convenciones de Ruff con line-length=88
- Pre-commit hooks recomendados para calidad de codigo
Roadmap
- Soporte para multiples versiones de Odoo en un mismo workspace
- Comando
oolab upgradepara actualizar el framework - Comando
oolab dbpara gestionar bases de datos - Soporte para PyCharm/IntelliJ
- Publicacion en PyPI
Licencia
Este proyecto esta licenciado bajo LGPL-3.0-or-later.
Copyright (c) 2026 IKU Solutions SAS
Autor: Yan Chirino <yan.chirino@iku.solutions>
Website: https://www.iku.solutions
Hecho con Python + Typer + Rich por IKU Solutions
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file odoo_lab-0.3.0.tar.gz.
File metadata
- Download URL: odoo_lab-0.3.0.tar.gz
- Upload date:
- Size: 77.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be5c2589bfd96beb45f51c34fd4f3da9cee06605e810a310b0a883d06ff05011
|
|
| MD5 |
6cdf2f00f27eb3c576c4694124ed5bd5
|
|
| BLAKE2b-256 |
ef96b7e95c6b07a0fd5fddd58a4a581f3a263e2c824c6bccdaf25478275bf298
|
Provenance
The following attestation bundles were made for odoo_lab-0.3.0.tar.gz:
Publisher:
publish.yml on ikusolutions/odoo-lab
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
odoo_lab-0.3.0.tar.gz -
Subject digest:
be5c2589bfd96beb45f51c34fd4f3da9cee06605e810a310b0a883d06ff05011 - Sigstore transparency entry: 1244108105
- Sigstore integration time:
-
Permalink:
ikusolutions/odoo-lab@aeb9f5073828d370c18c498957ef71f6f4423f9f -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/ikusolutions
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@aeb9f5073828d370c18c498957ef71f6f4423f9f -
Trigger Event:
release
-
Statement type:
File details
Details for the file odoo_lab-0.3.0-py3-none-any.whl.
File metadata
- Download URL: odoo_lab-0.3.0-py3-none-any.whl
- Upload date:
- Size: 36.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6841668de64bf99a5e6c5a97720b89093b1a7cfe09c7b8279dcae1275d64d26b
|
|
| MD5 |
5c4f5e06474b4fcc30bb389f9250bfe4
|
|
| BLAKE2b-256 |
09740cea512c315c236ac018f67fc9e2d4be1299077d8d59f3336d47ef1e17e7
|
Provenance
The following attestation bundles were made for odoo_lab-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on ikusolutions/odoo-lab
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
odoo_lab-0.3.0-py3-none-any.whl -
Subject digest:
6841668de64bf99a5e6c5a97720b89093b1a7cfe09c7b8279dcae1275d64d26b - Sigstore transparency entry: 1244108301
- Sigstore integration time:
-
Permalink:
ikusolutions/odoo-lab@aeb9f5073828d370c18c498957ef71f6f4423f9f -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/ikusolutions
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@aeb9f5073828d370c18c498957ef71f6f4423f9f -
Trigger Event:
release
-
Statement type: