Manage all your configuration variables

Manage your configuration variables

Store settings that differ between environments - even the sensitive ones - and make them available to your deployments.

Try it free Getting started guide

Variables in Octopus

As you promote your application through each environment, there are going to be differences in database connection strings, application settings, web service URLs, API keys, and many other parameters. You might need to put these values into configuration files, or access them from a script. 

To make it easy to support different environments without hard-coding these configuration values, you can define variables related to your project.  These variables are used during your application deployment. For example, variables you define will be automatically substituted into XML configuration files, and made available to your PowerShell scripts. This allows you to create applications and deployment processes that are agnostic of the target environment.

Scope variables to environments, machines, tenants and steps

Variables can have different values depending on the environment (Dev, Test, Production), machine or step you are deploying to. For multi-tenant deployments, you can have variables that are defined by each individual tenant, or variables which apply to all tenants with a given tag.

Learn more →

Easily scope your variables to any number of targets

Securely store passwords

Values like passwords, API keys, and certificates, can be safely stored in Octopus by marking them as sensitive. Octopus will store them encrypted in its database, never give the value back out via the UI, but still make it available to deployment scripts or configuration files. We even try our best to mask them from deployment logs if the values are accidentally printed.

Learn more →

Safely and reliably store your passwords

Scripting and binding

Variables can be referenced from within Octopus deployment steps using a special #{VariableName} syntax, and they will be accessible from within PowerShell, Bash and other scripts so that you can use them in any custom deployment logic.

Learn more →

Use your variables within your custom build steps and even custom scripts written languages we support such as Powershell, Bash and others

Prompt at deployment time

If you don't want to store the value in Octopus permanent, Octopus can ask for it at deployment time.

Audited and snapshotted

Octopus taks a snapshot of variables each release to keep them consistent, and audits changes made to them.

Output variables

Steps and custom scripts can emit variables that are used by other steps on other machines in the deployment.

Creating happy deployments at more than 25,000 companies, including:

Shout out to @OctopusDeploy for making their software so easy to work with. Just upgraded a 2 year out of date instance and migrated it to a new server and it worked with no effort beyond what their documentation said to do.

Twitter user Alex Dent Alex Dent

We've been overhauling our internal infrastructure and back-end systems over the past month, including a move back to full @OctopusDeploy deployments; rediscovering how nice it is to have a platform-agnostic orchestrator that can deploy practically anything, anywhere ❤

Twitter user Nicholas Blumhardt Nicholas Blumhardt

Tools like @OctopusDeploy can be great in enabling culture change, we've been able to scale and improve our configuration story since we started using it

Twitter user Niel Chalk Niel Chalk

Give your team a single place to release, deploy and operate your software.

Octopus Server

Octopus on your infrastructure.
Free for small teams, no time limits.

Download Octopus Server Server

Octopus Cloud

Octopus hosted by us.
Free for small teams.

Sign up for Octopus Cloud Sign up