Project templates

An overview of project templates

Project templates are in Public Preview. The feature is still evolving and standard SLAs don’t apply. We don’t recommend it for production workloads yet. It’s available to Enterprise customers on Cloud and to self-hosted customers running Octopus 2026.2. We’d love your feedback as we work towards General Availability, tell us what you think.

Overview

Project templates are reusable project blueprints that can be shared across multiple spaces in Octopus Deploy. Instead of manually configuring each new project from scratch, defining deployment steps and variables every time, you create a single template that any space can use as a starting point. This ensures teams follow the same standards and removes the risk of configuration drift.

To create or manage your project templates, navigate to Platform Hub. If you haven’t set up your Git repository, you must do so before creating a project template.

  1. Navigate to Project Templates in Platform Hub.
  2. Give the project template a Name and an optional Description.
  3. Create your project template.

Creating a project template with a name and description

After creating your template, Octopus adds the template’s folder and OCL files to your Git repository. If you’ve already created templates or are joining an existing team, you’ll see the existing templates on the overview page.

The Project Templates overview page

You can now define the deployment process, parameters, and variables for the template.

Deployment process

The deployment process defines the steps Octopus orchestrates when deploying a project created from this template. Each project template has a single deployment process, and you can use Octopus’s built-in steps, step templates, community step templates, and process templates to define it.

Projects created from the template can’t modify the deployment process. They can’t add, remove, reorder, or disable steps. The only thing a project can configure is the parameter values explicitly exposed in the template, ensuring every project based on the template follows the same deployment process.

Some steps behave differently inside the project template editor. Instead of letting you set a value directly, they ask for parameters or variables. Parameters are required when a step requires a resource that Platform Hub can’t define, such as a Worker Pool, and that resource must be supplied by the project. These fields accept parameters so projects can provide the right values for their context.

A step in a project template asking for a Worker Pool parameter

Unlike standard projects, project templates validate the deployment process when you publish, not when you commit. You can save an incomplete process and continue configuring parameters and variables before publishing. This will change once we add inline variable configuration to the deployment process editor.

If your deployment process includes a process template configured to auto-update on patch or minor versions, those updates flow through to templated projects automatically, even without you publishing a new version of the project template. This means two releases created on different days could use different versions of the process template, without anyone making any change to the project template or the project itself.

The project template process editor shows a warning callout when included process templates have received automatic updates since the template was last published. Use it to review the changes before publishing a new version.

We’re interested in your feedback on whether this behavior meets your expectations.

Parameters

Parameters let you define the inputs a user must supply when they create a project from the template. They’re the mechanism for making a template flexible. Rather than hardcoding values that differ between teams or spaces, you expose them as parameters.

Project templates don’t yet support parameter scoping or sensitive parameter default values. We’re still shaping how parameters, variables, and scoping work together and expect this area to evolve. We’d love your feedback.

For a full reference of supported parameter types and default values, see Template parameters.

To create a parameter, navigate to Parameters on your project template and add a new parameter.

The Parameters tab in a project template

Variables

Variables in a project template work the same way as project variables in a standard Octopus project. Any variable you define is available to the deployment and can be selected in steps.

Unlike parameters, users can’t change the variables defined in a template when creating a project from it. Use variables for values that must be consistent across every project, like accounts. If you need users to provide their own value, expose it as a parameter instead.

Variable values can reference parameters, letting you combine fixed template-level values with project-supplied inputs where needed.

Variable types

Project template variables support the following types:

  • Text: plain string values.
  • Sensitive: encrypted values like passwords and API keys.
  • Account: references to accounts defined in Platform Hub. Add the account in Platform Hub before using it in a template.
  • Certificate: references to certificates defined in Platform Hub.

Variable scoping

You can scope a project template variable to any combination of the following:

  • Specific steps in the deployment process.
  • Process template usages, when the template’s deployment process includes one or more.
  • Environment parameters, target tag parameters, or tenant tag parameters defined on the template. Whatever the project’s parameter value resolves to determines the scope.

Scoping is fixed at the template level. The same scoping rules apply to every project created from the template.

The Variables tab in a project template

Project settings

Project templates let you set a few project-level defaults that flow through to every project created from the template. Configure these in Settings on the project template.

  • Multi-tenant Deployments: choose whether projects created from the template require tenants, allow tenants, or run untenanted. Users can’t change this on a project created from the template.
  • Project Persistence: choose the preferred storage for projects created from the template, either in Octopus or backed by Git. The project creation flow defaults to your recommendation and lets users pick a different option if they need to.

We’re planning to add more template-level settings, including default lifecycle and channel configuration, once those features are available in project templates.

Git repository structure

Octopus stores each project template as a folder in the Platform Hub Git repository. The folder name is a slug derived from the template name. Each folder contains four OCL files:

project-templates/<template-slug>/
    deployment_process.ocl
    parameters.ocl
    template.ocl
    variables.ocl
  • template.ocl contains the template settings
  • deployment_process.ocl contains the deployment process steps
  • parameters.ocl contains the parameters defined for the template
  • variables.ocl contains the variables defined for the template

Octopus stores published versions, sensitive variables, and space sharing configurations in the database, not in the Git repository.

Committing, publishing, and sharing

After you’ve configured your project template, see Publishing and sharing templates for how to commit, publish, and share it.

Using a project template

After you publish and share a template, users in a space can create a new project from it. For details on creating and managing templated projects, see Templated projects.

Feedback

Project templates are in Public Preview and we’re actively shaping how the feature works. If you run into something unexpected or have thoughts on how parameters, variables, scoping, or anything else should work, we’d love to hear from you. Share your feedback to help us build this the right way.

Help us continuously improve

Please let us know if you have any feedback about this page.

Send feedback

Page updated on Thursday, May 28, 2026

Use Octopus docs with AI