odood ~main

Manage local development odoo installations with ease


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:


This package provides sub packages which can be used individually:

odood:exception - Odood exceptions package

odood:tipy - Dynamically loaded python.

odood:utils - Odood utils that do not require Odood project to use them.

odood:git - Odood wrapper for Git CLI

odood:lib - Odood core as a library

odood:cli - CLI Interface for Odood

Odood

The easy way to install and manage odoo for local development. This project is successor of odoo-helper-scripts and is compatible with odoo installations made by odoo-helper-scripts.

Github Actions codecov DUB DUB Current status

Overview

This project aims to simplify the process of development and maintenance of addons developer for Odoo.

This project is successor of odoo-helper-scripts

Following features available:

  • Super easy installation of Odoo for development
  • Super easy installation of Odoo for production (see docs)
  • Simple way to manage multiple development instances of Odoo on same developer's machine
  • Everything (including nodejs) installed in virtualenv - no conflicts with system packages
  • Best test runner for Odoo modules:
    • Easy run test for developed modules
    • Show errors in the end of the log, that is really useful feature for large (few megabytes size test logs)
    • Test module migrations with ease
  • Super easy of third-party addons installation:
    • Install modules directly from Odoo Apps
    • Easily connect git repositories with Odoo modules to Odoo instance managed by Odood
    • Automatic resolution of addons dependencies:
  • Simple database management via commandline: create, backup, drop, rename, copy database
  • Simple installation via prebuilt debian package (see releases)
  • Support for assemblies: single repo with all addons for project, populated in semi-automatic way.
  • Build with docker-support in mind

Supported Odoo versions

  • Odoo 7.0 (partial)
  • Odoo 8.0 (best efforts)
  • Odoo 9.0 (best efforts)
  • Odoo 10.0 (best efforts)
  • Odoo 11.0 (best efforts)
  • Odoo 12.0 (tested)
  • Odoo 13.0 (tested)
  • Odoo 14.0 (tested)
  • Odoo 15.0 (tested)
  • Odoo 16.0 (tested)
  • Odoo 17.0 (tested)
  • Odoo 18.0 (tested)

Prebuild docker-images with preinstalled Odoo and Odood

You can use on of prebuilt images to run Odoo managed by Odood in containers:

Installation (as Debian Package)

This is the recommended way to install Odood.

  1. Download package (.deb) for your os from Releases
  2. Install downloaded debian package
  3. Run odood --help to get info about available commands

Note, that usually you will need to manually install additional system packages, that include:

Installation (locally from source)

Note, that this way is mostly useful for development of Odood, and requires significant RAM amount to build Odood. Better, download and install it as debian package.

If you want to install it locally from source, follow steps below:

  1. Clone this repository and checkout in the repository root.
  2. Install system dependencies for this project (you can check lists of depenencies here).
  3. Install DLang compiler
  4. Build Odood with command dub build -b release. After build completed, there will be generated binary odood in build directory.
  5. Link Odoo binary to bin directory:
    • Assume that current working directory is Odood source code root.
    • mkdir -p ~/bin
    • ln -s "$(pwd)/build/odood" ~/bin/
  6. Run odood --help to get info about available commands

Use in parallel with odoo-helper

The only thing needed to manage odoo-helper project with Odood is to run command odood discover odoo-helper somewhere inside odoo-helper project.

Quick start

Use following command to create new local (development) odoo instance:

odood init -v 17 -i odoo-17.0 --db-user=odoo17 --db-password=odoo --http-port=17069 --create-db-user

This command will create new virtual environment for Odoo and install odoo there. Also, this command will automatically create database user for this Odoo instance.

For production installations, you can use command odood deploy that will deploy Odoo of specified version to machine where this command is running. For example: odood deploy -v 17 --supervisor=systemd --local-postgres --enable-logrotate But this command is still experimental.

Next, change current working directory to directory where we installed Odoo:

cd odoo-17.0

After this, just run command:

odood browse

and it will automatically start Odoo and open it in browser.

Next, you can use following commands to manage server:

odood server start
odood server stop
odood server restart
odood server log

Next, let's create some test database with pre-installed CRM module for this instance:

odood db create --demo my-test-database --install=crm

After this command, you will have created odoo database my-test-database with already installed module crm.

Additionally you can manage odoo addons from commandline via command odood addons. See help for this command for more info:

odood addons --help

It is possible to easily add repositories with third-party addons to odood projects. To do this, following command could be used

odood repo add --help

For example, if you want to add crnd-inc/generic-addons you can run following command:

odood repo add --github crnd-inc/generic-addons

Example setup for docker compose

Odood has prebuilt docker images, that could be used to easily run Odoo powered by Odoo inside docker-based infrastructure.

See examples directory for more details.

Example docker-compose.yml:

version: '3'

volumes:
    odood-example-db-data:
    odood-example-odoo-data:

services:
    odood-example-db:
        image: postgres:15
        container_name: odood-example-db
        environment:
            - POSTGRES_USER=odoo
            - POSTGRES_PASSWORD=odoo-db-pass

            # this is needed to avoid auto-creation of database by postgres itself
            # databases must be created by Odoo only
            - POSTGRES_DB=postgres
        volumes:
            - odood-example-db-data:/var/lib/postgresql/data
        restart: "no"

    odood-example-odoo:
        image: ghcr.io/katyukha/odood/odoo/17.0:latest
        container_name: odood-example-odoo
        depends_on:
            - odood-example-db
        environment:
            ODOOD_OPT_DB_HOST: odood-example-db
            ODOOD_OPT_DB_USER: odoo
            ODOOD_OPT_DB_PASSWORD: odoo-db-pass
            ODOOD_OPT_ADMIN_PASSWD: admin
            ODOOD_OPT_WORKERS: "1"
        ports:
            - "8069:8069"
        volumes:
            - odood-example-odoo-data:/opt/odoo/data
        restart: "no"

Level up your service quality

Level up your service quality with Service Desk / ITSM solution by CR&D.

Just test it at yodoo.systems: choose template you like, and start working.

License

Odood is distributed under MPL-2.0 license.

Authors:
  • Dmytro Katyukha
Sub packages:
odood:exception, odood:tipy, odood:utils, odood:git, odood:lib, odood:cli
Dependencies:
odood:exception, odood:utils, odood:tipy, odood:git, odood:lib, odood:cli
Versions:
0.4.0 2025-May-29
0.4.0-rc.4 2025-May-29
0.4.0-rc.3 2025-May-28
0.4.0-rc.2 2025-May-26
0.4.0-rc.1 2025-May-26
Show all 101 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 3 downloads this month

  • 460 downloads total

Score:
1.3
Short URL:
odood.dub.pm