Zodoo makes it simple to set up your own Odoo instance for testing or production environments.
1. Install Zodoo
If Zodoo isn’t already installed, instructions for installation can be found on the github repo: 🔗
2. Initialise New Project
In an empty directory, run:
odoo init .You’ll be prompted to select an Odoo version for your project:
#Sample output:
#Use arrow key and ENTER to select
Already up to date.
[?] : 16.0
18.0
17.0
> 16.0
15.0
14.0
13.0
12.0
11.0
9.0It may then take several minutes for code to be cloned to your machine.
3. Create Docker Compose File
The reload command creates a docker-compose file and configures the project settings at ~/.odoo/settings.<project-name>. It does so by extracting the dependencies from your code.
The optional --demo flag configures demo data for every module (needs to be run before the database is initialised)
#Without mock data
odoo reload
#With mock data
odoo reload --demoReload safe to call during build.
If odoo reload warns that the Python version is too old (this depends on the selected Odoo version), adjust the version like this:
odoo setting ODOO_PYTHON_VERSION 3.12.10You also most likely want to be using the latest Postgres version
odoo setting POSTGRES_VERSION 174. Build Project
Next, build the project. The command creates a docker container from the docker-compose (similar to the docker build command).
It may take several minutes to complete.
odoo build5. Configure Port and Reload
The next command searches for the next available port and adds it to the existing settings file at ~/.odoo/settings.<project-name>.
odoo nextIt requires a reload afterwards, since it updates docker-compose file. Repeat step 3. The --demo flag must be reused if used before, otherwise the previous settings will be lost:
#Without mock data
odoo reload
#With mock data
odoo reload --demo6. Initialise Database
Use the db reset command to create a postgres database with default credentials (user: admin, password: admin) and initialise it with mock data, if specified in the docker-compose file.
odoo -f db resetOptionally, restore a database backup instead. This may require fixing any broken imported links to the ir.attachments folder, by deleting the ir.attachments table and recreating entries.
odoo -f restore odoo-db <filename>
odoo restore-web-icons7. Update Codebase and Run
Finally, to get your Odoo project running, update the code base and start the docker containers. This command also installs the modules specified in the manifest file.
odoo updateNow your system is running!
8. Open Web UI
All that remains is to get the URL of your running instance and open it. Run the status command to the get the URL
odoo statusSample output:
projectname: my-project
version: 16.0
db: my_project@postgres (user: odoo)
url: http://192.180.77.28:80 #Here is where to find the URL where your instance is running
DEFAULT_DEV_PASSWORD:admin
ODOO_DEMO:False
ODOO_QUEUEJOBS_CHANNELS:root:1
ODOO_QUEUEJOBS_CRON_IN_ONE_CONTAINER:False
ODOO_CRON_IN_ONE_CONTAINER:False
RUN_ODOO_CRONJOBS:True
RUN_ODOO_QUEUEJOBS:TrueThe default login credentials for the UI will match the Postgres database (user: admin, password: admin)
9. (Optional) Start Dev Mode
If you want to be able to debug the python code, run the dev command. It’s the equivalent of odoo debug odoo and shuts down and recreates the running containers.
odoo devSample output:
Please note:
---------------
* just debug:
* debug
* emulate real run:
* run.py
* open shell:
* shell.py
# Start the project in debug mode:
debug10. Enable User Access
Open Settings in the Odoo UI and navigate to Users:
.png?sv=2022-11-02&spr=https&st=2026-01-16T00%3A54%3A55Z&se=2026-01-16T01%3A06%3A55Z&sr=c&sp=r&sig=CgDsSJTvF1EQ%2BMPrysKhdUvggR6bgdye8IF7ZWTr4Nk%3D)
Find and select your user:
.png?sv=2022-11-02&spr=https&st=2026-01-16T00%3A54%3A55Z&se=2026-01-16T01%3A06%3A55Z&sr=c&sp=r&sig=CgDsSJTvF1EQ%2BMPrysKhdUvggR6bgdye8IF7ZWTr4Nk%3D)
Set yourself as a Zebroo-Sync Manager:
Save and refresh the page and you should now be able to find the Zebroo Sync app in the menu and create your first pipeline!