Skip to content

Documentation / Teams and agencies

Creating a Template

Define a reusable provisioning template for automated server and Odoo deployments.

A provisioning template stores all the configuration needed to deploy a complete server and Odoo stack. Once created, you can reuse it to provision new environments with a single click.

Creating a new template #

1. Navigate to Provisioning Templates #

In the sidebar under Infrastructure, click Provisioning Templates and then click the New Provisioning Template button.

2. Name and description #

  • Name — A descriptive name for the template (e.g., "Standard Customer Setup", "Demo Environment")
  • Description — Optional notes about what this template is used for

3. Server configuration #

Configure the cloud server that will be created:

  • Cloud Provider — Select your cloud provider (e.g., Hetzner). The provider must be added to your account first.
  • SSH Key — Select the SSH key to install on the server for access.
  • Location — Choose the data center location. Options load dynamically from your provider.
  • Server Type — Select the server size (CPU, RAM, disk). Options load dynamically based on the selected location.
  • Image — Choose the operating system image. Options load dynamically based on the selected server type.

The location, server type, and image fields depend on each other. Select them in order — location first, then server type, then image.

4. Services configuration #

Configure the infrastructure services that will be set up on the server:

  • PostgreSQL User — The database superuser name (defaults to postgres)
  • ACME Email — The email address used for Let's Encrypt SSL certificate registration via Traefik
  • Telegraf Monitoring — Toggle to enable server monitoring with Telegraf. When enabled, CPU, memory, disk, and network metrics will be collected automatically.
  • Enable Fail2ban — Blocks IP addresses after repeated failed SSH and Odoo logins on provisioned servers. See Fail2ban.
  • Keep log history — Sends the logs of every Odoo on provisioned servers to calmo.cloud's log storage from the start. Only shown while log history is enabled for your team.
  • Prevent system domain crawling — Enabled by default. Services created from this template send an X-Robots-Tag: noindex header on their platform domain so search engines do not index it. See Search Engine Crawling.

5. Odoo configuration #

Configure the Odoo service that will be deployed:

  • Odoo Version — Select the Odoo version (e.g., 18.0, 19.0, 20.0)
  • Service Type — Choose the type of service:
    • Test — For development and testing
    • Live — For production use
    • Demo — For demonstrations
  • Image pull strategy — Choose how the service keeps its base image up to date: Manual (default) or automatically Daily, Weekly, Monthly, or Quarterly. See Managing Services for details.
  • Initial Modules — Optionally specify Odoo modules to install automatically when the service starts (e.g., sale, purchase, crm). Type to search from available core modules.

6. Backup settings #

Configure how services created from this template are backed up, in the Backup Settings section:

  • Backup destinations — The destinations every provisioned service starts with, each with its frequency, retention count and primary flag. See Multiple Backup Destinations.
  • Back up the database only — Off by default. When enabled, services provisioned from this template leave the filestore (attachments, images and documents) out of their backups. See Database-only backups.

7. Save the template #

Click Create. The template is saved and ready to use for provisioning.

Editing a template #

You can edit any template by clicking on it in the list. Changes only affect future provisionings — existing servers and services created from the template are not modified.

Deleting a template #

Templates can be deleted from the list. Deleted templates are soft-deleted and can be restored from the trash filter if needed. Existing provisionings created from a deleted template are not affected.