Deployment Methods

Porter supports multiple deployment methods for different types of applications. These deployment methods are as follows:

Deploying from a Github Repository

Porter will automatically update your applications on a push to a specific branch in a Github repository.

Deploying from a Docker Registry

you can create and update applications from an existing Docker registry that you manage.

Deploying from the CLI

you can create and update applications directly from the CLI.

Using your own CI Tool

you can configure your CI tools, such as CircleCI, Travis CI, or Gitlab, to deploy to Porter.

Which Deployment Method Should I Use?

If you’re unsure of which deployment method to use, we highly recommend deploying from a Github repository.

Types of Applications

There are three types of applications you can deploy on Porter: web services, workers, and jobs.

Web Service

Web services are processes that are constantly running and are exposed to either external or internal traffic. This includes any servers or web applications - most of your deployments should fall into this category.

You can choose to expose your application to external traffic on a custom domain - Porter will automatically secure your endpoints with SSL certificates. Alternatively, you can expose your web service to only internal traffic (i.e. accessible only by other deployments in the same cluster).

Worker

Worker processes are constantly running processes that are exposed to neither external nor internal traffic. Workers have no URLs or ports - they’re best suited for background processes, queuing systems, etc. Most of the configuration options are identical to web applications, excluding the options that manage the endpoint.

Jobs and Cron Jobs

Jobs are processes that run to completion. They’re best suited for ephemeral tasks such as database migration or clean up scripts.

On Porter, you can run either one-off jobs or cron jobs. One-off jobs can be triggered manually through the dashboard or using the CLI. Cron jobs run periodically on a schedule specified as a cron expression. Please see the Running Jobs and Cron Jobs documentation section for more information.