Skip to main content

Wrapper around Odoo-Bin with some convinience RPC functions.

Project description

gOdoo Dev Environment

OdooLogo ComposeLogo

gOdoo is short for go Odoo.
It is a Vscode Devcontainer Environment for Odoo with Python CLI godoo convenience wrapper around odoo-bin.

This repository is the base source for the Python package godoo-cli and serves as an all batteries included development environment.

This is the source repository for gOdoo. If you want to use gOdoo please refer to ./docker/Dockerfile and modify it to install godoo using Pip.

Made Possible by: WEMPE Elektronic GmbH

gOdoo-cli

Python package that provides godoo command line interface around odoo-bin.

It's build with Typer to provide some convenience Wrappers for Odoo development and Deployment.

Most flags can be configured by Env variables.
Use godoo --help to find out more. HINT: Install tab-completion with godoo --install-completion

Docker

This workspace also contains Docker and Docker-Compose files. \

They are used to provide either easy Odoo instances where the source is pulled according to ODOO_MANIFEST.yml, or as a all batteries included devcontainer for VScode.

Requirements

  • Docker Compose
  • Traefik container running with docker provider and "traefik" named docker network. Example: Traefik Devproxy
  • SSH Agent running. (check echo $SSH_AUTH_SOCK)
    This gets passed trough in the Buildprocess to clone Thirdparty repos (Optional).

Just wanna have a quick and easy Odoo Instance?

git clone https://github.com/OpenJKSoftware/gOdoo
cd godoo
. scripts/container_requirements.sh # Check Requirements
docker-compose build
docker-compose up
# wait......
# wait a bit mode ...
# just a little bit longer ..
# There we go.
# Odoo should be reachable on 'https://godoo.docker.localhost' assuming you didn't change .env TRAEFIK_HOST_RULE or COMPOSE_PROJECT_NAME

Devcontainer

Features

  • All batteries included Devcontainer with postgres service Container and local DNS resolvig managed by Traefik.
  • Easy fully working Odoo instance by docker-compose up with https access.
  • godoo CLI wrapper around Odoo. (Most flags can be configured by Environment Variables and are already preconfigured in the Containers. See .env.sample)
  • Cups Container, that provides a CUPS Printserver
  • odoo-bin is added to PATH and can thus be invoked from every folder.
  • Odoo will run in Proxy_Mode behind a Traefik reverse proxy for easy access on https://$COMPOSE_PROJECT_NAME.docker.localhost
  • Odoo Pylint plugin preconfigured in vscode
  • Preinstalled vscode Extensions Highlights:

Usage

  1. For Docker on windows: Clone the repo into the WSL2 Filesystem for better IO performance
  2. Have Traefik Running on docker.localhost Example
    There must be a Docker network called traefik that can reach traefik.
  3. Open Devcontianer:
    • If you have the Devcontainer CLI: devcontainer open .
    • If not open the workspace in Local Vscode. In the Command pallete search for Reopen in container
  4. From within the container start Odoo using one of the following commands:
    • You can enable godoo tab-completion by godoo --install-completion
    • make -> Loads Odoo + Workspace Addons
    • make bare -> Loads Odoo with ony web installed.
    • make kill -> Search for odoo-bin processes and kill them
    • make reset -> Drops DB, deletes config file and datafolder
    • The full init script is available via "godoo". (See --help for Options)
  5. Open Odoo https://$COMPOSE_PROJECT_NAME.docker.localhost
    For example COMPOSE_PROJECT_NAME=godoo --> https://godoo.docker.localhost
  6. Login with admin:admin
  7. Profit!

Access to Odoo and Thirdparty addon Source

You can access the Odoo source by opening the VsCode workspace full.code-workspace from within the Container. This will open a Multi-Root Workspace. Really waiting for https://github.com/microsoft/vscode-remote-release/issues/3665 here.

Reset Devcontainer Data

When you screwed up so bad its time to just start Over godoo has you covered:

Automatic Reset

There are 3 Options to reset the Dev Env.

  1. From Outside the Container run make reset in the project root to delete docker volumes and restart the container. (Vscode will prompt to reconnect if still open)
  2. From Outside the Container run make reset-hard in the project root to force rebuild the main Odoo container and then do the same as make reset
  3. From Inside the Container run make reset to drop the DB and delete filestore and config file, which is way quicker than the other options.

Manual Reset

  1. Close vscode
  2. Remove app and db container from docker.
  3. Remove volumes: db, odoo_thirdparty, odoo_web, vscode_extensions
  4. Restart Devcontainer

Python Debugging

VsCode Debugging

Debugging doesn't reliably work with Odoo Multiprocess mode enabled.
The container ships with a Vscode Debug profile, that sets --workers 0 to allow for Debugging Breakpoints. See .vscode/launch.json

Interactive Shell

Use godoo shell to enter an interactive shell on the Database.

🚀 CI/CD Pipeline

gOdoo uses GitHub Actions workflows for quality assurance and release management. The complete workflow documentation is available in the .github/workflows/README.md file.

✅ Quality Checks

Every pull request and push to main triggers automated quality checks:

  • Linting and formatting with the latest Python tools
  • Test execution with full coverage reports
  • Docker image builds for verification

🔖 Version Management

The project uses a structured version management process:

flowchart TD
    A[Manual Trigger] -->|version-bump.yml| B[Create Release Branch]
    B --> C[Bump Version in __about__.py]
    C --> D[Create PR]
    D --> E[Quality Checks]
    E --> F[PR Review]
    F -->|Merged| G[Release Creation]
    G --> H[PyPI Publication]

📦 Release Process

  1. A maintainer triggers a version bump (patch/minor/major/pre-release)
  2. A pull request is automatically created with version changes
  3. After CI passes and approval, the PR is merged
  4. An automated process creates the GitHub release and publishes to PyPI

Odoo Modules

Third Party Modules (manifest.yml)

The godoo bootstrap function, will download some modules using git.
Which Repos to download is specified in ODOO_MANIFEST.yml (Default)
Not all of the cloned addons are automatically installed.
Install them via the Apps Page in Odoo using godoo rpc modules install or using odoo-bin.
Modules downloaded on the Odoo Marketplace can be dropped as a .zip archive in ./thirdparty

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

godoo_cli-0.16.0.tar.gz (219.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

godoo_cli-0.16.0-py3-none-any.whl (76.0 kB view details)

Uploaded Python 3

File details

Details for the file godoo_cli-0.16.0.tar.gz.

File metadata

  • Download URL: godoo_cli-0.16.0.tar.gz
  • Upload date:
  • Size: 219.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

File hashes

Hashes for godoo_cli-0.16.0.tar.gz
Algorithm Hash digest
SHA256 f3c1dd58cba891ba5465b45274eb066a0534219e9814bbac62eaea2ff0f45bd3
MD5 0cccfc8014b49a0be752ba67c58546a7
BLAKE2b-256 468f267a903681b981722a70a19e9378d0371b7a359eaf67773b8ed7f5a4c9b4

See more details on using hashes here.

File details

Details for the file godoo_cli-0.16.0-py3-none-any.whl.

File metadata

  • Download URL: godoo_cli-0.16.0-py3-none-any.whl
  • Upload date:
  • Size: 76.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

File hashes

Hashes for godoo_cli-0.16.0-py3-none-any.whl
Algorithm Hash digest
SHA256 93483ace0a2cde5492c434a5136ea10f8324b05e97ac0d8f7a00a00f54e16960
MD5 f572de45a1ede2578423c6b7f3909880
BLAKE2b-256 9deaa2f0d4dd5e918ac3cf2324e7d59564d93d6f27a3a70ce3c60e9e9b429426

See more details on using hashes here.

Supported by

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