Dockerized development environment for Odoo. Designed for custom module development, upgrades between versions, and client maintenance.
Throughout this document,
acmeis used as a placeholder company name in examples. Replace it with the actual client name in every command.
- Docker Desktop
- Git
- SSH access to GitHub configured
- Directory structure created by
setup.sh(see below) - Claude Code for VS Code extension
Go to Settings → Resources and apply:
- Memory: 10 GB
- CPUs: 4
- Swap: 2 GB
Run setup.sh once on a new machine. It creates the ~/Odoo/ directory structure,
clones Odoo source repos as bare repositories, creates worktrees for the versions
you choose, and installs upgrade tools.
git clone git@github.com:odoo-ps/psmx-claude-dev-container.git
cd psmx-claude-dev-container
./setup.shThe script is interactive and safe to re-run — it skips anything that already exists.
Then, follow the installation instructions in psmx-claude-md.
1. Clone this template for your client
git clone git@github.com:odoo-ps/psmx-claude-dev-container.git ~/Odoo/Customers/acme
cd ~/Odoo/Customers/acme2. Configure the environment
cp .env.example .envEdit .env with the values for your client. Set ODOO_MODE to development
or upgrade, fill in the corresponding version variables, and configure paths
and database name.
3. Build the Docker image
make buildSkip this step if
odoo-dev:<version>was already built on this machine (e.g. another client uses the same Odoo version).
4. Restore a database (optional)
make restore dump=acme_prod.zipAccepts
.zip(Odoo backup with filestore),.dump, or.sql. Skip this step to start with a fresh empty database — Odoo creates it automatically on firstmake start.
5. Start the environment
make startmake start launches the stack in the background and prints the URL once the containers
are up. Run make logs in a separate terminal to follow the Odoo startup.
Odoo will be available at http://localhost:8069
- REFERENCE.md — all commands, debugging, testing, worktree management, pgAdmin4
- WORKFLOWS.md — practical step-by-step scenarios