Skip to content

Project directory layout

AI-translated from Russian.

An odpm project directory (e.g. odoo_demo_project-19/) is the working environment shell on your computer. Module sources may physically live elsewhere (in ODOO_PROJECTS_DIR or at a file:// path).

Files in the environment root

Object Purpose
odpm.json Stack description (file from the modules git repository)
user_settings.json Modules, database, git behaviour, development mode
.env Ports, scenario, backup and clone directories (overrides ~/.odpm/.env)
odoo.conf or {platform_name}.conf Odoo settings on disk — dedicated article
docker-compose.yml Generated by odpm — do not edit manually
Dockerfile, .dockerignore Generated by odpm
venv/ Host Python environment (mounted into the container)

.odpm/ directory

Object Purpose
deps.lock.json Git revision lock — keep in git
runtime/config.json Host→container service contract — do not commit, do not edit
database/last_run.json PostgreSQL configuration snapshot (fingerprint) — do not commit; see database-state.md
runtime/debug-profile.json IDE-neutral debugger profile (developer) — do not commit, do not edit
secrets.example.json Secret keys template — keep in git
secrets.json Module secrets source — do not commit; see secrets
runtime/secrets.json Materialized copy for container mount — do not commit, do not edit
dockerignore Template for root .dockerignore

Other directories

Object Purpose
dependencies/ Service links to dependency clones
data/odoo/ Process home in container, tests, cache
.vscode/ Debug settings (developer scenario)

Where platform and module sources live

  • Repositories cloned via HTTPS/SSH — in ODOO_PROJECTS_DIR (set in .env).
  • Projects via file:// links — at the given absolute path, without clone or version switching.

With create_module_links enabled, symbolic links may appear in the root for editor navigation — see debugging.