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.

Download 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.