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.
The project is still under development.
Currently, this project could be used in parallel with odoo-helper-scripts.
Following features currently implemented:
- Server management
- Database management
- Basic addons management (fetch/install/update/uninstall)
- Running tests
- CI utils (versions, forwardports, etc)
- Postgres utils
- Doc utils
- Linters - use pre-commit and per-repo configurations, instead of directly running linters
- 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 (experimental)
You can use on of prebuilt images to run Odoo managed by Odood in containers:
This is the recommended way to install Odood.
- Download package for your os from Releases
- Install downloaded debian package
- Run
odood --help
to get info about available commands
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:
- Clone this repository and checkout in the repository root.
- Install system dependencies for this project (you can check lists of depenencies here).
- Install DLang compiler
- Build Odood with command
dub build -b release
. After build completed, there will be generated binaryodood
inbuild
directory. - 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/
- 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.
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
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 with Service Desk / ITSM solution by CR&D.
Just test it at yodoo.systems: choose template you like, and start working.
Odood is distributed under MPL-2.0 license.