Skip to main content

Odoo Development Environment Helper

Project description

odoo-dev

A CLI tool for managing Odoo development environments. Handles local Python setup, Docker containers, database operations, and more.

It is the successor to the older odoo-deploy shell scripts — if you have notes for odoo-deploy, the rough mapping is: odoo-dev docker start/stop/build replaces the old odoo-dev.sh start/stop/build, and odoo-dev run/test/shell give you a local (venv-based) workflow that odoo-deploy didn't.

Installation

# Install with uv (recommended) — installs the published package from PyPI
uv tool install odoo-dev

# Or with pip
pip install odoo-dev

Then make sure the install location is on your PATH (uv prints the path; usually ~/.local/bin):

uv tool update-shell   # or: export PATH="$HOME/.local/bin:$PATH"

Quick Start

# In your Odoo project directory
cd my-odoo-project

# Full setup: clone Odoo repos, create venv, install deps, configure VSCode
odoo-dev setup

# Or for community edition only
odoo-dev setup --community

setup reads ODOO_VERSION / PYTHON_VERSION from a .env in the project root (or prompts for them and offers to save). It then clones the Odoo repos, builds a .venv, installs system dependencies, and generates conf/odoo.conf. It will offer to set up Docker at the end — answer "no" if you only want the local venv workflow.

Database setup (read this before your first run/test)

The generated conf/odoo.conf connects as PostgreSQL user odoo over the local socket. You need a running PostgreSQL server and a matching role. setup installs PostgreSQL but does not start it or create the role, so on a fresh machine do this once:

macOS (Homebrew):

brew services start postgresql@18          # start the server (use your installed version)
createuser -s odoo                         # create the role odoo.conf expects
# Homebrew's versioned postgres is keg-only; add its bin to PATH if psql/createuser aren't found:
#   export PATH="$(brew --prefix postgresql@18)/bin:$PATH"

Debian/Ubuntu:

sudo systemctl start postgresql
sudo -u postgres createuser -s odoo

You can change the DB user/password in conf/odoo.conf if you prefer a different role.

Commands

Local Development (default)

odoo-dev run                          # Start Odoo locally (default port 8069)
odoo-dev run -d mydb -p 8070          # Pick a database and HTTP port
odoo-dev run -d mydb -i base          # Initialize module(s) on start
odoo-dev run -d mydb --dev reload     # With hot reload
odoo-dev run --debug                  # With debugpy (VSCode attach on 5678)
odoo-dev shell mydb                   # Open an Odoo shell
odoo-dev update base -d mydb          # Update modules
odoo-dev test my_module               # Run a module's tests (coverage on by default)
odoo-dev test my_module --test-tags my_module --no-coverage
odoo-dev test                         # Auto-discover & test all addons in addons/
odoo-dev scaffold my_module           # Create a new module

Note: the HTTP port flag is -p / --port (not --http-port).

Database Operations

odoo-dev db list                      # List databases
odoo-dev db restore backup.zip        # Restore from backup (neutralized by default)
odoo-dev db restore backup.zip mydb --no-neutralize
odoo-dev db drop mydb                  # Drop database
odoo-dev db neutralize mydb            # Disable emails/crons

Docker (optional)

odoo-dev docker start                 # Start containers
odoo-dev docker stop                  # Stop containers
odoo-dev docker restart               # Restart containers
odoo-dev docker logs                  # View logs
odoo-dev docker build                 # Rebuild image
odoo-dev docker shell mydb            # Shell in container
odoo-dev docker psql                  # PostgreSQL shell

Setup Commands

odoo-dev setup                        # Full setup
odoo-dev setup --community            # Community edition only
odoo-dev setup-venv                   # Just create the venv (no repo clone)
odoo-dev vscode                       # Configure VSCode debugging

Project Structure

odoo-dev expects this project structure:

my-odoo-project/
├── .env                 # Optional: ODOO_VERSION, PYTHON_VERSION
├── addons/              # Your custom addons
├── requirements.txt     # Project-specific Python deps
├── odoo/                # Cloned by setup
├── enterprise/          # Cloned by setup (unless --community)
├── design-themes/       # Cloned by setup
├── .venv/               # Created by setup
└── conf/
    └── odoo.conf        # Created by setup

Configuration

Create a .env file in your project root:

ODOO_VERSION=19.0
PYTHON_VERSION=3.12

Requirements

  • Python 3.12+
  • uv (recommended) or pip
  • Git
  • PostgreSQL (for local development — server + an odoo role; see "Database setup")
  • Docker (optional, for containerized development)

Development

# Clone and install for development
git clone git@github.com:bemade/odoo-dev.git
cd odoo-dev
uv sync

# Run tests
uv run pytest                 # All tests
uv run pytest -m "not slow"   # Fast tests only

# Build
uv build

License

LGPL-3. For complete license terms, visit https://www.gnu.org/licenses/lgpl-3.0.en.html

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

odoo_dev-0.3.3.tar.gz (49.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

odoo_dev-0.3.3-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

File details

Details for the file odoo_dev-0.3.3.tar.gz.

File metadata

  • Download URL: odoo_dev-0.3.3.tar.gz
  • Upload date:
  • Size: 49.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Pop!_OS","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for odoo_dev-0.3.3.tar.gz
Algorithm Hash digest
SHA256 227afbc45cb240c4e688aa470cf0991194987239bc1ace83cd7352c71ce47be8
MD5 97e571851023f86843093e4dbff93b9a
BLAKE2b-256 fdff2b7c074dbae01ea4db895dd2a716460ea90810c8555b41092c1789cc956d

See more details on using hashes here.

File details

Details for the file odoo_dev-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: odoo_dev-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 24.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Pop!_OS","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for odoo_dev-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 08c262741e6c2360d87870b00ee85e1bed65625451371a53542ce73071e4aae1
MD5 68952202e282b9b2b9e3db4482c9cd86
BLAKE2b-256 2d288ad3bf0e2e37aff82234829cb9166a98fcd1b0aacf8962c73467cb4d49b9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page