Skip to main content

Odoo Framework

Project description

Odoo Docker Framework

Provides functionalities:

  • setup empty new odoo with one bash command odoo init --version 15.0

  • setup full fleged odoo server environment containing

    • supports MANIFEST file in odoo root directory to install and uninstall modules
    • postgres with pg_activity, enhanced pgcli
    • fake webmail to receive AND SEND mails
    • logs.io integration to display container output on web browser
    • dividing web, cron, queuejob container per default
    • progress bar on postgres dump/restore
  • fzf compatible creation of and AST of your project

  • fast restore / create snapshots of complete databases using btrfs, which helps testing things on customer databases

How to install

Install minimum

# as root:
pip3 install wheel
pip3 install wodoo

Give sudo rights

To be not blocked when working on btrfs volumes and so, this is suggested on dev machines:

> /usr/local/sbin/odoo <EOF
#!/bin/bash
sudo -E /opt/odoo/odoo "$@"
EOF

chmod a+x /usr/local/sbin/odoo
> /etc/sudoers.d/odoo <EOF
Cmnd_Alias ODOO_COMMANDS_ODOO = /usr/bin/find *, /opt/odoo/odoo *, /usr/bin/btrfs subvolume *, /usr/bin/mkdir *, /usr/bin/mv *, /usr/bin/rsync *, /usr/bin/rm *,  /usr/bin/du *, /usr/local/bin/odoo *, /opt/odoo/odoo *, /usr/bin/btrfs subvol show *, /usr/sbin/gosu *
odoo ALL=NOPASSWD:SETENV: ODOO_COMMANDS_ODOO

EOF

Make new empty odoo instance

odoo init <folder>
cd <folder>
odoo reload
odoo -f db reset
odoo up -d

# now open browser on http://localhost

Store settings not in ~/.odoo but local inside the current directory in .odoo

This is excellent for jenkins jobs where different branches are tested.

odoo reload --local --devmode --headless --project-name 'unique_name'

How to extend an existing service

  • make a docker-compose file like ~/.odoo/docker-compose.yml
services:
  odoo3:
    labels:
      compose.merge: base-machine
    environment:
      WHAT YOU WANT
    volumes:
      WHAT YOU WANT

Example for fixed ip addresses

services:
    proxy:
        networks:
            network1:
                ipv4_address: 10.5.0.6
networks:
    network1:
        driver: bridge
        ipam:
            config:
                - subnet: 10.5.0.0/16

Some labels

services:
    new_machine:
        ...
        labels:
          odoo_framework.apply_env: 0  # do not apply global environment from settings here

How to upload new version

  • increase version in setup.py
  • one time: pipenv install twine --dev
pipenv shell
pip install build
rm dist -Rf
python -m build 
twine upload dist/*
exit

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wodoo-0.2.34.tar.gz (89.5 kB view hashes)

Uploaded Source

Supported by

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