odpm (Odoo Developer Project Manager)
Odoo development breaks on infrastructure, not Python syntax: many repositories, path consistency, mixed OS and CPU architectures on team machines, Docker, venv, odoo.conf, IDE, CI, and more layers to watch. odpm turns that into one reproducible project contour from a single
odpm.jsonso the team spends time on modules, not rebuilding or debugging the environment.
odpm builds a full developer workspace and the same Odoo environment for the whole team — including servers and CI. A single odpm.json in the repository is enough: odpm prepares directories, containers, configuration, module paths, and typical database operations.
The project was created to lower the very high barrier to Odoo development — including solo developers and small teams without a dedicated infrastructure administrator.
Problems odpm solves
You can install Odoo from a system package (deb, rpm) or a long online guide, and the service will start. That is not enough for day-to-day development.
A developer needs more than “the server is up” — a connected whole:
- a directory where they write their code (customer or company modules);
- quick access to all environment settings in one logical place;
- clear system and Python dependencies in an isolated environment;
- an Odoo config file with correct addon paths;
- Odoo platform source for reading, debugging, and updating modules;
- sources of all linked projects and dependencies (OCA, corporate repos);
- consistent addon paths and their own codebase locations.
Assembling this manually is hard even on one machine. Add Docker “so everyone has the same stack” and complexity doubles: what to mount from disk, user permissions, paths inside vs outside the container, config paths matching the real filesystem. That is when “it works for my colleague, my module is not found” usually appears.
odpm takes over this assembly: one project directory on your machine, one odpm.json in the module git repo — automatic cloning, docker-compose generation, Odoo configuration, and commands for backup, module install, and editor debugging.
Full article (10 pain layers, program roles, alternatives, boundaries): Why odpm.
Short on-ramp for beginners: Beginner-friendly guide.
Quick start
You need Docker, git, and odpm on the host (see installation).
mkdir odoo_demo_project-19 && cd odoo_demo_project-19
odpm --init https://github.com/aayartsev/odoo_demo_project.git --branch 19.0
On first run the setup wizard asks about directories and scenario; press Enter for unknown answers to use defaults.
After the environment is prepared:
odpm -d test_db -i -u
Open in the browser: http://127.0.0.1:8069.
Step-by-step guide: Local dev from scratch.
Installing odpm
Platform overview: Installing odpm (all platforms).
Usage scenarios
The scenario is set by ODPM_SCENARIO in .env. Same odpm.json; different launch mode (debugging, security, image build).
| Value | Who and why |
|---|---|
developer |
Developer on their computer: VS Code debugging, Odoo dev mode |
server |
VM or customer server without debugger, restricted DB access |
ci |
Baked image for continuous integration pipeline |
Articles: developer · server · ci · team scaling.
Full documentation
Published site: https://aayartsev.github.io/odpm/ (RU) · English (EN). Table of contents in the repository: docs/README.md.
| Topic | Link |
|---|---|
| Legacy or inherited project | legacy-project.md |
| Team coordinator role | team-coordinator.md |
| Custom Odoo platform fork | platform-fork.md |
| Git repository links (git, https, file) | git-links.md |
| All command-line options | cli.md |
.env, odpm.json, odoo.conf |
reference |
| Server security | security.md |
| Migrating from 3.0 | migration-3-to-4.md |
For odpm contributors
Contributing, tests, UI translations: docs/contributing/README.md.
Project goals
- OS independence and CPU architecture where possible (including Apple Silicon via Docker).
- Project description via
odpm.json— new environments deploy automatically. - Developer operations: DB drop/restore, new DB with language and demo data, admin password change, module install/update, translation export, new module scaffold.
- One project composition — three launch scenarios: developer, server admin, and build engineer share one manifest; only packaging differs.
Metadata
Release files for odpm 4.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| odpm-4.7.0.tar.gz | 522.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| odpm-4.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 937.3 kB
Release files / odpm-4.7.0.tar.gz
| Download URL | odpm-4.7.0.tar.gz |
|---|---|
| Size | 522.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
209e5ea351bf66dcf050d0046d06bd75da64c68591d7144f210c75e275769262
|
|
BLAKE2b-256 checksum How to use checksums |
9a0e790504e5baa5c6c20fc07dca944f3a79ab3f4c54ff38964e80643e2f5abb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / odpm-4.7.0-py3-none-any.whl
| Download URL | odpm-4.7.0-py3-none-any.whl |
|---|---|
| Size | 414.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
82e37c2bb325b56af622dfd742ff28bbfb171e2fdb5f4d5d729399552d5a5283
|
|
BLAKE2b-256 checksum How to use checksums |
b229f7ac225c5d520c81d76901359b92e4064ea820063ff51d2c5e45b65b8d42
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|