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:
python3 -m venv /var/lib/wodoo_env
. /var/lib/wodoo_env/bin/activate
python3 -mpip install wheel
python3 -mpip install gimera
python3 -mpip 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 in ./odoo of source code

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

Using the registry

Pushing

  • Configure HUB_URL on the pusher side.
  • >odoo login
  • >odoo build
  • >odoo regpush
  • All images even base images like redis are pushed; tag name contains SHA name

Pulling

  • Configure REGISTRY=1 in settings and setup HUB_URL
  • >odoo login
  • >odoo regpull
  • All images will be pulled from registry

Services Explained

Proxy

  • nodejs application
  • between user browser and odoo
  • if odoo is being restarted catches the requests, holds them and releases them to odoo if it is up again
  • manages handling of /longpolling path; so if used in custom proxy setups, just refer to that one port here

Tools

Backup and Restore

odoo backup odoo-db <path> (or default name used)
odoo restore odoo-db <path> (or select from list)

Show Database activity

odoo pgactivity

Configurations in ~/.odoo/settings explained

Setting Description
PROJECT_NAME Pasted into container names, postgres volumes and so on; please keep it as short as possible, as there are limits example docker containername 53 characters at time of writing
DBNAME Uses projectname or a configured one
HUB_URL=value user:password@host:port/paths.. to configure
REGISTRY=1 Rewrites all build and images urls to HUB_URL. Should be used on production systems to force pull only from registry and block any local buildings.
RUN_PROXY=1 If the built-in nodejs proxy is enabled
POSTGRES_VERSION=13 Choose from 11, 12, 13, 14

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.145.tar.gz (98.2 kB view details)

Uploaded Source

File details

Details for the file wodoo-0.2.145.tar.gz.

File metadata

  • Download URL: wodoo-0.2.145.tar.gz
  • Upload date:
  • Size: 98.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.7

File hashes

Hashes for wodoo-0.2.145.tar.gz
Algorithm Hash digest
SHA256 3c6f0c3cfb486c778219927c119b2b14f7bc7ed29a17f7dd7ef295ca75e2d218
MD5 a5a137f0af38ad3cdab1ecf98857f5bb
BLAKE2b-256 121753134d5d335e64d54e01f10392f66e8ffcf6a0db7e35818e80062288b188

See more details on using hashes here.

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