Odoo Docker Instance Management
by David Montero Crespo https://github.com/davidmonterocrespo24/odoo_micro_saasAvailability |
Odoo Online
Odoo.sh
On Premise
|
Lines of code | 996 |
Technical Name |
micro_saas |
License | AGPL-3 |
Website | https://github.com/davidmonterocrespo24/odoo_micro_saas |
Versions | 14.0 15.0 16.0 17.0 18.0 |
The Micro SaaS - Odoo Docker Instance Management module is a powerful and flexible solution for efficiently deploying multiple Odoo instances within Docker containers. Designed for businesses requiring an agile development and testing environment, along with the ability to manage several Odoo instances, this module simplifies development environment management and enhances collaboration in software projects.
Micro SaaS - Odoo Docker Instance Management
Functionality:
Key Features:

Changelog
2.3.0 [2024-13-10]- Fixed some bugs and update
- Use template for odoo version
- Migrate to Odoo 16
- Fixed some bugs
- Initial release
Key Benefits:
Screenshots




New Functionality
Docker Compose Template
Define templates for Odoo instances running in Docker containers.
- Each template has a name, sequence, and can be associated with tags.
- Templates include variables that can be customized when creating instances based on the template.
Docker Compose Template Variable
Define variables that can be used in Docker Compose templates.
- Variables can be of "Free Text" or "Field of Model" types.
- "Field of Model" variables are used to extract values from Odoo records.
Odoo Docker Instance
Represents specific instances of Odoo running in Docker containers.
- Each instance is created from a defined template.
- Instances can have names, states (Draft, Stopped, Running, Error), HTTP ports, long polling ports, and more.
- Multiple templates can be defined, and when creating an instance, you can select an existing template and customize its variables.
- The instance can clone custom code repositories (e.g., Odoo modules) and configure a specific "odoo.conf" file for it.



Installation Guide: Docker, Docker Compose, and Git
Docker:
- Visit the official Docker website for installation instructions: Docker Installation Guide: https://docs.docker.com/get-docker/.
- Choose the appropriate installation method for your operating system (Windows, macOS, or Linux).
- After installation, verify Docker's successful installation by running
docker --version
.
Docker Compose:
- Docker Compose simplifies the management of multi-container Docker applications. To install Docker Compose:
- Follow the official Docker Compose installation guide: Docker Compose Installation: https://docs.docker.com/compose/install.
- Select the instructions relevant to your operating system.
- Confirm the installation by running
docker-compose --version
.
Git:
- Git is a distributed version control system. To install Git:
- Visit the Git website and download the appropriate installer for your OS: Git Downloads: https://git-scm.com/downloads.
- Follow the installation instructions provided.
- Verify Git's installation by running
git --version
.
Community Support and Contribution
We're thrilled to offer this module to the community as a free resource for efficient Odoo Docker instance management. We welcome contributions, feedback, and suggestions from the community to enhance and improve this tool further.
Your support can help us create more features, improve stability, and make it even more valuable for users worldwide. Please feel free to get involved by reporting issues, submitting pull requests, or providing feedback on how we can make this module even better.
Together, we can make a positive impact on the Odoo community and simplify development processes for all users. Thank you for your support!
For more information, please contact us at davidmonterocrespo24@gmail.com
GitHub Repository: https://github.com/davidmonterocrespo24/odoo_micro_saas
Recommended Odoo Installation Script
https://github.com/Yenthe666/InstallScriptThis script is based on the install script created by André Schenkels but goes a bit further and has been improved. It simplifies the installation of Odoo and provides additional configuration options.
Installing Nginx
If you set the parameter INSTALL_NGINX
to True, you should also configure workers. Without
workers, you may encounter connection loss issues. Refer to the deployment guide from Odoo on how to
configure workers.
Installation Procedure
- Download the script:
- Modify the parameters as you wish. Here are some commonly used options:
sudo wget https://raw.githubusercontent.com/Yenthe666/InstallScript/16.0/odoo_install.sh
OE_USER
: The system user's username.GENERATE_RANDOM_PASSWORD
: Set to True to generate a random password, or set to False to use the password configured inOE_SUPERADMIN
.INSTALL_WKHTMLTOPDF
: Set to False if you don't want to install Wkhtmltopdf, or True if you want to install it.OE_PORT
: The port on which Odoo should run, e.g., 8069.OE_VERSION
: The Odoo version to install, e.g., 16.0 for Odoo V16.IS_ENTERPRISE
: Set to True to install the Enterprise version on top of 16.0, or False for the community version.OE_SUPERADMIN
: The master password for this Odoo installation.INSTALL_NGINX
: Set to False by default. Set to True to install Nginx.WEBSITE_NAME
: Set the website name here for Nginx configuration.ENABLE_SSL
: Set to True to install certbot and configure Nginx with HTTPS using a free Let's Encrypted certificate.ADMIN_EMAIL
: Email needed for Let's Encrypt registration. Replace the default placeholder with your organization's email.
Note: To enable SSL through Let's Encrypt, you agree to certain policies.
sudo chmod +x odoo_install.sh
sudo ./odoo_install.sh
Where to Host Odoo
There are plenty of great services that offer reliable hosting for Odoo. This script has been tested with major providers such as Google Cloud, Hetzner, Amazon AWS, and DigitalOcean. You can use DigitalOcean with my referral link to get a $200 voucher for free for the first 60 days.
Minimal Server Requirements
While it's technically possible to run Odoo on a server with 1GB of RAM, it's not advised. A Linux instance typically uses 300MB-500MB, and the rest needs to be split among Odoo, PostgreSQL, and other services. To run Odoo smoothly, it's recommended to use at least 2GB of RAM. This script might fail with fewer resources. There are known issues on DigitalOcean where the installation crashes on 1GB RAM machines. See #243.
Please log in to comment on this module
Report comment
Any abuse of this reporting system will be penalizedSetup Nginx possible?
Is it possible to use nginx for each instance using subdomain for each instance instead of using ip and port number?
Please we will appreciate having a video that shows how to use the module.
Thank you for the good works done
Getting this error when creating instance
Getting this error while trying to start instance
Trying to contact the developer
Hi There,
We have been trying to contact the developer. Please can someone put us in touch with them.
Marius Meyer
QBIS Software
marius@qbismail.za.com
other error when starting docker
Re: other error when starting docker
Hello
Thank you for reporting the bugs, but I would ask you to improve the reports in the GitHub repository https://github.com/davidmonterocrespo24/odoo_micro_saas
so as not to create so many messages here
You can also download the most updated module on GitHub
Greetings
Hola
Gracias por reportar los errores, pero te solicitaría que mejor los reportes en el repositorio de GitHub https://github.com/davidmonterocrespo24/odoo_micro_saas
para no crear tantos mensajes aquí
también te puedes descargar el módulo más actualizado en GitHub
Saludos
this error appear when you asign repositories
RPC_ERROR
Odoo Server Error
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1584, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 133, in retrying
result = func()
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1611, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1815, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
result = endpoint(**request.params)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 697, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 42, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 33, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/api.py", line 461, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/api.py", line 448, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/usr/lib/python3/dist-packages/odoo/models.py", line 6532, in onchange
todo = [
File "/usr/lib/python3/dist-packages/odoo/models.py", line 6535, in
if name not in done and snapshot0.has_changed(name)
File "/usr/lib/python3/dist-packages/odoo/models.py", line 6318, in has_changed
return self[name] != record[name]
File "/usr/lib/python3/dist-packages/odoo/models.py", line 5891, in __getitem__
return self._fields[key].__get__(self, type(self))
File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1157, in __get__
self.recompute(record)
File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1365, in recompute
apply_except_missing(self.compute_value, recs)
File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1338, in apply_except_missing
func(records)
File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1387, in compute_value
records._compute_field_value(self)
File "/usr/lib/python3/dist-packages/odoo/models.py", line 4215, in _compute_field_value
fields.determine(field.compute, self)
File "/usr/lib/python3/dist-packages/odoo/fields.py", line 97, in determine
return needle(*args)
File "/mnt/extra-addons/otros/micro_saas/models/odoo_docker_instance.py", line 30, in _compute_addons_path
repo_path = name_repo_url = line.repository_id.name.split('/')[-1]
AttributeError: 'bool' object has no attribute 'split'
The above server error caused the following client error:
null
Not working lot of errors
Not working lot of errors
Not working in my case
Re: Not working lot of errors
Hello
I would appreciate it if you reported the bug on github.
Copy the bug or describe it at https://github.com/davidmonterocrespo24/odoo_micro_saas
Greetings