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
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
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.
- 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).
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
- 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:
- SQL Tools with preconfigured connection for easy Database access in the Sidebar.
- Docker Extension controls container host.
- Odoo Snippets
- Odoo Developments can Grab Odoo Model information from a running Server
- Todo Tree
- For Docker on windows: Clone the repo into the WSL2 Filesystem for better IO performance
- Have Traefik Running on
docker.localhost
Example
There must be a Docker network calledtraefik
that can reach traefik. - 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
- If you have the Devcontainer CLI:
- 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 Addonsmake bare
-> Loads Odoo with onyweb
installed.make kill
-> Search forodoo-bin
processes and kill themmake reset
-> Drops DB, deletes config file and datafolder- The full init script is available via "
godoo
". (See --help for Options)
- You can enable godoo tab-completion by
- Open Odoo
https://$COMPOSE_PROJECT_NAME.docker.localhost
For exampleCOMPOSE_PROJECT_NAME=godoo
--> https://godoo.docker.localhost - Login with
admin:admin
- Profit!
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 microsoft/vscode-remote-release#3665 here.
When you screwed up so bad its time to just start Over godoo has you covered:
There are 3 Options to reset the Dev Env.
- 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) - From Outside the Container run
make reset-hard
in the project root to force rebuild the main Odoo container and then do the same asmake reset
- 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.
- Close vscode
- Remove
app
anddb
container from docker. - Remove volumes:
db, odoo_thirdparty, odoo_web, vscode_extensions
- Restart Devcontainer
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
Use godoo shell
to enter an interactive shell on the Database.
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