Your application and everything you need to deploy
Together πŸ’

Package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command

What is Porter?

Take everything you need to do a deployment, the application itself and the entire process to deploy it: command-line tools, configuration files, secrets, and bash scripts to glue it all together. Package that into a versioned bundle distributed over standard Docker registries or plain tgz files.

Now anyone can install your application without deep knowledge of your deployment process, or following a step-by-step deployment doc, regardless of the tech stack.

Why Porter?

  • Single command to find and deploy any application, regardless of the tech stack. No knowledge of the deployment process necessary.
  • Secure handling of secrets and credentials, integrated with industry standard secret stores.
  • Share the operational load of managing your team's deployments.
  • Works with and improves existing tools, such as bash, cloud CLIs, terraform and helm. You don't rewrite your existing deployments to start using Porter.
  • Reliable deployments because the client environment: cli versions, installed commands, configuration... is dependable and consistent.

When would I use Porter?

Porter is never a replacement for an existing tool. Think of it as doing extra nice things on top of what those great tools already do!

  • πŸ“¦ Package everything you use to deploy in a single artifact that can be easily distributed over registries and across air gapped networks.
  • πŸ” Sign the bundle and verify its signature before installing as part of your supply chain security solution.
  • πŸ•‘ Save time because the bundle contains the exact version of your deployment tools. Users don’t need to find and install tools or switch between versions.
  • πŸ—‚ View rich metadata about a deployment. Run porter explain to quickly see how to customize an installation with parameters, what credentials are needed by the bundle. There is no need for detailed installation documentation.
  • 🧠 Reduce the operational knowledge required to manage an application. Often deployments involve multiple tools, such as terraform, AND helm, AND kubectl; all glued together with bash scripts. Bundles abstract away the details of a deployment, and provide a consistent set of commands to deploy any application.
  • πŸ’β€β™€οΈ Manage deployments securely as a team. Porter uses secure just-in-time credential injection and remembers the parameters last used to deploy. Teammates don’t need to hunt down the proper values themselves, or copy sensitive credentials into local environment variables or files. Secrets remain secure in a secret store such as Hashicorp Vault or Azure Key Vault.

These are just some of the reasons why working with bundles with the tools embedded inside is helpful vs. using the same tools standalone.

Porter Features

Credentials and Secrets πŸ”

Credentials and secrets are retrieved from industry standard secret stores and securely injected.

Parameterized Bundles πŸ‘©πŸ½β€πŸ”¬πŸ§¬

Use different configuration for production and staging, toggle feature switches and customize each installation of a bundle with parameters.

Connect Action Inputs and Outputs🧩

Wire together tools that were not designed to integrate and seamlessly pass data between them.

Contribute a Mixin

Porter is a cloud-agnostic tool that can work anywhere and with any tool, but in order to have great support for these clouds and tools, custom-made mixins are best.

Do you know tools we don't have custom mixins for yet?

Help us make more mixins! πŸ™Œ

Example Bundles

Looking for ideas and copy/pasta?

Example Bundles

Join the Community

More information about the Porter project, and how to contribute.

Project Status

Porter is committed to supporting the CNAB specification. We support the current 1.1.0 specification and all published sub-specifications.

Check out our roadmap.

Work on Porter with us! πŸ’–

We are actively seeking out new contributors with the hopes of building up both casual contributors and enticing some of you into becoming reviewers and maintainers.

Learn how to join us.