Skip to main content

Creating an instance

Creating an instance happens in two distinct parts, and separating them is deliberate: first you describe the instance, then you install it. Describing costs nothing and can be revised. Installing builds an image, a container, an nginx site and a certificate.

In the Web UI

Instances → New instance runs a five-step wizard.

  1. Basics. Host names (comma-separated, the first is the main one), Odoo version, edition, role, classification and description. Finishing this step writes the configuration. Nothing is installed yet, and you can stop here.
  2. Tuning. A sizing method and the number of concurrent users you expect. Worker counts and memory limits are derived from that rather than typed in.
  3. Git. Optional addon repositories and the credentials to reach them.
  4. Modules. Which modules to enable.
  5. Install. A review, then Install now.

The install runs as a background job. The page moves through queued → running → completed, and the full log is streamable and downloadable from the Jobs page.

On the command line

Local only
# odoocli instance config create
Remote or localagainst prod-1
# odoocli instance install --instance acme
Remote or localagainst prod-1
# odoocli instance database init --instance acme

-i, --instance accepts an id, a name, an HTTP port or a description. Omit it and the CLI shows a picker rather than guessing.

Choosing a version and edition

Antelao hosts Odoo 15.0, 16.0, 17.0, 18.0 and 19.0. Both editions are supported, and instances of different versions run side by side against the same PostgreSQL server.

Removing Enterprise addons from an instance is not gated. An unlicensed server can always undo an Enterprise install; it just cannot perform one.

Host names and DNS

The host names you give the instance are what nginx serves it on, and what a certificate will be requested for. Check them before installing:

Remote or localagainst prod-1
# odoocli instance config validate-dns --instance acme

If the server was configured with an auto-enrolment wildcard such as *.odoo.example.com, an instance under that wildcard needs no DNS work of its own.

What installing actually builds

StepResult
ImageA per-instance Odoo image for the chosen version, with the Python packages that version needs
Containerodoo-<12 hex>, attached to the managed Docker networks
nginx siteA server block for the instance's host names on the shared odoo-nginx container
CertificateA trusted certificate if it can be obtained, otherwise a self-signed one
Data treeThe instance's directories under the instance root

Nothing is shared between instances except PostgreSQL, nginx and the host itself.

Quotas

InstancesUnregisteredCommunityDeveloperProfessionalProvider
Limit12Unlimited5Unlimited

The limit applies to creating an instance. Instances that already exist keep running whatever your edition, including after a licence lapses.