> ## Documentation Index
> Fetch the complete documentation index at: https://docs.doploy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Supported Odoo Versions

> Which Odoo versions doploy hosts, and what runs underneath each one

# 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 version | Odoo SA support                        | Editions              | Python in the doploy image | PostgreSQL container        |
| ------------ | -------------------------------------- | --------------------- | -------------------------- | --------------------------- |
| 20.0         | Supported by Odoo SA                   | Community, Enterprise | 3.12                       | PostgreSQL 17 with pgvector |
| 19.0         | Supported by Odoo SA                   | Community, Enterprise | 3.12                       | PostgreSQL 17 with pgvector |
| 18.0         | Supported by Odoo SA                   | Community, Enterprise | 3.12                       | PostgreSQL 17               |
| 17.0         | Past Odoo SA support, hosted by doploy | Community, Enterprise | 3.10                       | PostgreSQL 17               |
| 16.0         | Past Odoo SA support, hosted by doploy | Community, Enterprise | 3.10                       | PostgreSQL 16               |
| 15.0         | Past Odoo SA support, hosted by doploy | Community, Enterprise | 3.8                        | PostgreSQL 14               |

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 the `vector` 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.access` and `ir.rule` are replaced by a single `ir.access` model. Modules now ship `security/ir.access.csv` with an `operation` column (for example `cru` for create, read, update) and a `domain` column in place of separate record rules.
* **OWL 3.** Components use `useProps` instead of `this.props`, `t-ref` moves to signals, `onWillUpdateProps` and `static defaultProps` are removed.
* **ORM.** `api.Self` is removed (import `Self` from `typing`), `registry.clear_cache` becomes `transaction.invalidate_ormcache`, and `_rec_names_search` must be a tuple.
* **XML data.** Attachment fields use `type="bytes"` instead of `type="base64"`.

Run the upgrade in test mode on a staging branch first, fix what breaks, and only then upgrade production. See [Upgrading Odoo](/managing-odoo/upgrading).

## OCA modules on 20.0

The Odoo Community Association creates 20.0 branches repository by repository after each release. The [Marketplace](/managing-odoo/oca-modules) indexes them nightly and hides any series that has no installable modules yet, so 20.0 fills in over the weeks after release. Modules that exist for 19.0 but not yet for 20.0 need to be ported or wait for the OCA port.

## Changing a branch's version

Open the branch under **Deployments**, go to **Settings**, and pick a different version. On development branches this destroys the build and creates a fresh one on the new version. On staging and production it re-clones the Odoo source (Community and Enterprise) at the new version and rebuilds the container from that version's image, keeping the database and filestore. It does not migrate the database, so Odoo only starts if the database already matches the new version. To move an existing database to a newer version, use the [Upgrade tab](/managing-odoo/upgrading).
