This is the Mint System Odoo development environment.
This projects provides a highly opinionated way to develop Odoo and Odoo modules. It supports the following scenarios:
- Docker Compose: Spin up a Odoo, Postgres and pgAdmin Docker container and experiment locally
- Import and Export Database: Use Odoo scripts to copy and restore a remote customer database to the local development environment. Investigate issues and deploy the database at wish
- Community Edition: Checkout the Odoo Community Edition and start editing the source code
- Enterprise Modules: Checkout the Odoo enterprise modules and deploy them into the Odoo Docker container or the Odoo source.
- Develop Modules: Scaffold a new module, develop new Odoo features locally and much more
- Customizing Snippets: Create snippets and push them to an Odoo database
- Odoo Scripts: Develope scripts to patch Odoo code
- Odoo Image: Build and publish an Odoo Docker image
The Odoo development environment has the following requirements:
- Docker and Docker Compose
- Install python 3.6+ with pyenv
- bash/zsh alias
task='./task'
with optional completion
The usage section is a set of workflows. Pick the one required by your scenario. See task help
or task for details about the project commands.
Clone this repository.
git clone git@github.com:Mint-System/Odoo-Build.git
cd Odoo-Build
Checkout branch.
task checkout 13.0
# or
task checkout 14.0
# or
task checkout 15.0
# or
task checkout 16.0
# or
task checkout 17.0
Install Odoo scripts
task install-odoo-scripts
Run Odoo from source. Currently supported OS: Ubuntu, Debian
Install Odoo native requirements
Pull the odoo
submodule and install the python dependencies.
git submodule update odoo
task install-native
Initialize and start Odoo from source
Run database container only
task start db
Initialize database
task init-db
Start Odoo from source
task start native
Open browser to http://localhost:8069 and login with admin:admin
.
Create a new module from source
Scaffold a new module.
task create-module addons/project_report
Load modules from thirdpary folder
To load modules from a thirdparty folder, set this env var in your .env
file
ODOO_ADDONS_PATH=thirdparty/modules/,../other/modules
The paths will be appended to the Odoo config.
Run Odoo with Docker container.
Start and initialize Odoo with Docker
Run docker compose.
task start
Initialize database.
docker-odoo-install
Open browser to http://localhost:8069 and login with admin:admin
.
Install custom module
docker-odoo-install -m show_db_name
Instructions that are true for Docker and native usage paths.
Enable developer mode
Open this url http://localhost:8069/web?debug=1, which contains the debug flag.
Manage database with Docker
Open database manager http://localhost:8000/ and login with admin@example.com:admin
.
Remove Docker conainers
Kill docker containers and volumes.
task kill
Stop all Docker containers
task stop
Remove database
task drop-db
To build the Docker image setup these .env
vars:
ODOO_REVISION=16.5
DOCKER_REGISTRY=mint-system/
Build the Odoo image.
task build
Publish the Odoo image.
task publish
Start mail server.
task start mail
Create a new account odoo@example.com
and set odoo
as password.
Create a new account test@example.com
and set test
as password.
Install a simple mail client such as Claws Mail and connect with credentials:
host: localhost
port: 25
username: odoo@example.com
password: test
For incoming mails use these informations:
server type: IMAP
host: localhost
port: 143
username: odoo@example.com
password: test
Repeat the same for test@example.com
.
Activate mail sever option with example.com
domain.
For outgoing mails use these informations:
host: localhost
port: 25
username: odoo@example.com
password: odoo
For incoming mails use these informations:
server type: IMAP
host: localhost
port: 143
username: odoo@example.com
password: odoo
Follow these steps to test a mail exchange:
- Send mail in Odoo to
test@example.com
- In mail client create reply to the mail and save as draft
- Copy the mail to the inbox of
odoo@example.com
- Trigger fetchmail in Odoo
- Check if reply has been processed
Problem
While starting the native server this error is thrown:
OSError: [Errno 24] inotify instance limit reached
Solution
Increase ifnotify watch limit.
sudo vi /etc/sysctl.conf
fs.inotify.max_user_watches=524288
fs.inotify.max_user_instances=256
sudo sysctl -p
Problem
Instance with auth_ldap
does not start.
ImportError: libldap_r-2.4.so.2: cannot open shared object file: No such file or directory
Solution
Reinstall with pip flags.
pip install python-ldap --force-reinstall --no-binary python-ldap