Deploy to Tomcat via Manager

Octopus.TomcatDeploy exported 2026-07-22 by Octopus Deploy belongs to ‘JavaAppServer’ category.

Deploy a Java application to Tomcat 7+ via the Tomcat Manager.

Parameters

When this step is included in a project’s deployment process, the parameters below can be set.

Tomcat Manager URL

Tomcat.Deploy.Controller (required)

The URL of the Tomcat Manager instance that the package will be uploaded to. This URL is relative to the host that is executing the step.

Default: http://localhost:8080/manager

Example: http://localhost:8080/manager

Management user

Tomcat.Deploy.User (required)

The username to use with the management interface. This user must be assigned to the manager-script group in the tomcat-users.xml file.

Management password

Tomcat.Deploy.Password (required)

The password to use with the management interface.

Context path

Tomcat.Deploy.Name

The context path of the deployed artifact. For example, setting this field to ‘myapp’ will result in the deployment having the context path /myapp in Tomcat. Set the value to / to deploy to the root context.

Example: myapp

Deployment version

Tomcat.Deploy.Version

The Tomcat version used with parallel deployments. Leave blank to leave the Tomcat version undefined, which will overwrite any existing deployment with the same context path.

Application state

Tomcat.Deploy.Enabled

Whether to leave the application running or stop the application after deployment.

Allowed values: True, False

Default: True

Optional features

Enable features by adding their IDs to Octopus.Action.EnabledFeatures (a comma-separated list).

Custom Deployment Scripts Octopus.Features.CustomScripts

Execute scripts during the deployment (pre-deploy, deploy, post-deploy) without embedding them in your package.

Octopus.Action.CustomScripts.PreDeploy.

Octopus.Action.CustomScripts.PreDeploy.<ext>

Pre-deploy script body. The key’s is the script language extension: ps1 (PowerShell), sh (Bash), csx (C#), or py (Python).

Octopus.Action.CustomScripts.Deploy.

Octopus.Action.CustomScripts.Deploy.<ext>

Deploy-phase script body. The key’s is the script language extension: ps1 (PowerShell), sh (Bash), csx (C#), or py (Python).

Octopus.Action.CustomScripts.PostDeploy.

Octopus.Action.CustomScripts.PostDeploy.<ext>

Post-deploy script body. The key’s is the script language extension: ps1 (PowerShell), sh (Bash), csx (C#), or py (Python).

Structured Configuration Variables Octopus.Features.JsonConfigurationVariables

Replace settings in JSON, YAML, XML, and Java Properties files with Octopus variables. Enabled by default for package deployments.

Octopus.Action.Package.JsonConfigurationVariablesTargets

Octopus.Action.Package.JsonConfigurationVariablesTargets

Newline-separated list of target files (e.g. appsettings.json). Wildcards supported.

Substitute Variables in Templates Octopus.Features.SubstituteInFiles

Transforms files using the Octopus #{Variable} substitution syntax. Enabled by default for package deployments.

Octopus.Action.SubstituteInFiles.TargetFiles

Octopus.Action.SubstituteInFiles.TargetFiles

Newline-separated list of file names to transform (relative to package). Wildcards supported.

Octopus.Action.SubstituteInFiles.OutputEncoding

Octopus.Action.SubstituteInFiles.OutputEncoding

Encoding name for the output file (e.g. utf-8). Optional.

Step configuration using OCL

Example in Octopus Configuration Language (OCL):

step "deploy-to-tomcat" {
    name = "Deploy to Tomcat"
    properties = {
        Octopus.Action.TargetRoles = "tomcat-server"
    }

    action {
        action_type = "Octopus.TomcatDeploy"
        properties = {
            Octopus.Action.Package.DownloadOnTentacle = "False"
            Octopus.Action.Package.FeedId = "octopus-server-built-in"
            Octopus.Action.Package.PackageId = "MyApp"
            Octopus.Action.RunOnServer = "false"
            Tomcat.Deploy.Controller = "http://localhost:8080/manager"
            Tomcat.Deploy.Enabled = "True"
            Tomcat.Deploy.Name = "myapp"
            Tomcat.Deploy.Password = "#{Tomcat.Manager.Password}"
            Tomcat.Deploy.User = "tomcat-manager"
        }

        packages {
            acquisition_location = "Server"
            feed = "octopus-server-built-in"
            package_id = "MyApp"
        }
    }
}

Page updated on Wednesday, July 22, 2026