Supported Odoo Versions
doploy hosts Odoo 15.0 through 20.0, Community and Enterprise. You pick the version when you create a project. Staging and development instances can be created on a different version from the Deploy Odoo Instance dialog (the Odoo Version field next to the branch), which gives that branch a fresh database on the chosen version. Production always follows the project version.Version matrix
Odoo SA supports the three most recent major versions. Once a version falls out of that window it no longer receives security fixes from Odoo, but doploy keeps hosting it so you can upgrade on your own schedule.
Each instance runs in its own container built from a per-version base image. The Python version is the one shipped by the Ubuntu release that image is based on. Your repository’s
requirements.txt is installed into that Python at build time.
What is new for Odoo 20.0 hosting
Odoo 20.0 raised its minimum requirements to Python 3.12 and PostgreSQL 16. Every doploy 20.0 instance runs Python 3.12 and PostgreSQL 17, so there is nothing to change on your side. pgvector. The PostgreSQL container for 19.0 and 20.0 ships with thevector extension. Odoo Enterprise AI features that store embeddings need it and find it already enabled.
PDF engines. wkhtmltopdf remains the default PDF engine on 20.0 and every report works as before. Odoo’s new engine, Paper Muncher (v0.8.0), is preinstalled in the 20.0 image as well. To try it on a report, turn on developer mode, remove the Apps filter in the Apps menu, install Report Engine: Paper Muncher (it is a technical module, so it is hidden by default), then open the report action and set Format to PDF (Paper Muncher). Switching back is changing the same field.
Odoo 20.0 and your custom modules
Odoo 20.0 changes several framework APIs. A module that works on 19.0 will usually need edits before it installs on 20.0. The most common ones:- Access rights.
ir.model.accessandir.ruleare replaced by a singleir.accessmodel. Modules now shipsecurity/ir.access.csvwith anoperationcolumn (for examplecrufor create, read, update) and adomaincolumn in place of separate record rules. - OWL 3. Components use
usePropsinstead ofthis.props,t-refmoves to signals,onWillUpdatePropsandstatic defaultPropsare removed. - ORM.
api.Selfis removed (importSelffromtyping),registry.clear_cachebecomestransaction.invalidate_ormcache, and_rec_names_searchmust be a tuple. - XML data. Attachment fields use
type="bytes"instead oftype="base64".

