Kubernetes powered PaaS that runs in your own cloud. https://porter.run

Alexander Belanger 0bc00dd365 Merge branch 'master' of https://github.com/porter-dev/porter into beta.3.provisioning-integration %!s(int64=5) %!d(string=hai) anos
.github baecc4fa6c fix syntax error %!s(int64=5) %!d(string=hai) anos
cli 16e0e8e390 use prod as host and set project by default %!s(int64=5) %!d(string=hai) anos
cmd 0d2a60a0bc docker credentials helper cli command %!s(int64=5) %!d(string=hai) anos
dashboard 77c9c3481c Merge pull request #155 from porter-dev/beta.3.velero-in-tree %!s(int64=5) %!d(string=hai) anos
docker f1ac0e4b69 cli major update %!s(int64=5) %!d(string=hai) anos
docs ff17b95702 Create GCR.md %!s(int64=5) %!d(string=hai) anos
internal 2673e97534 update provisioner args %!s(int64=5) %!d(string=hai) anos
scripts e51a889bd1 update docs %!s(int64=5) %!d(string=hai) anos
server 77c9c3481c Merge pull request #155 from porter-dev/beta.3.velero-in-tree %!s(int64=5) %!d(string=hai) anos
.air.toml f1ac0e4b69 cli major update %!s(int64=5) %!d(string=hai) anos
.darwin.goreleaser.yml 55d41a804e fixes #110 %!s(int64=5) %!d(string=hai) anos
.dockerignore d7b83fb445 onboarding with default sqlite %!s(int64=5) %!d(string=hai) anos
.gitignore 507ba65d39 delete tf directory %!s(int64=5) %!d(string=hai) anos
.goreleaser.yml 55d41a804e fixes #110 %!s(int64=5) %!d(string=hai) anos
LICENSE 1f483861ca add MIT license %!s(int64=5) %!d(string=hai) anos
README.md 8573bf525b Update README.md %!s(int64=5) %!d(string=hai) anos
docker-compose.dev.yaml a5c69a1bda stream ephemeral provisioning logs (no XACK) %!s(int64=5) %!d(string=hai) anos
go.mod 0d2a60a0bc docker credentials helper cli command %!s(int64=5) %!d(string=hai) anos
go.sum b27df994a7 merged redis conf %!s(int64=5) %!d(string=hai) anos
package-lock.json 05045fbbe3 parity with old form.yaml functionality %!s(int64=5) %!d(string=hai) anos

README.md

Porter

MIT License Go Report Card

Porter is a Kubernetes-powered PaaS that runs in your own cloud provider. Porter brings the Heroku experience to Kubernetes without compromising its flexibility. Get started on Porter without the overhead of DevOps and fully customize your infra later when you need to.

Provisioning View

Why Porter?

A PaaS that grows with your applications

Traditional PaaS's like Heroku are great at minimizing unnecessary DevOps work but don't offer enough flexibility as your applications scale. Custom network rules, resource constraints, and cost are common reasons developers move their application off Heroku beyond a certain scale.

Porter brings the simplicity of traditional PaaS's to your own cloud provider while preserving the configurability of Kubernetes. It's built on top of a popular Kubernetes framework called Helm and is compatible with standard Kubernetes management tools like kubectl, preparing your infra for mature DevOps work from day 1.

image

Features

Basics

  • One-click provisioning of a Kubernetes cluster in your own cloud console

    • ✅ AWS
    • 🚧 GCP
    • 🚧 Digital Ocean
  • Simple deploy of any public or private Docker image

  • Heroku-like GUI to monitor application status, logs, and history

  • Marketplace for 1-click add-on's (e.g. MongoDB, Redis, PostgreSQL)

  • Application rollback to previous deploy versions

  • Native CI/CD with buildpacks (Coming Soon)

DevOps Mode

For those who are familiar with Kubernetes and Helm:

  • Visualize, deploy and configure Helm charts via the GUI

  • User-generated form overlays for managing values.yaml

  • In-depth view of releases, including revision histories and component graphs

  • Rollback/update of existing releases, including editing of raw values.yaml

  • Connect to existing Kubernetes clusters that are not provisioned by Porter

Graph View

CLI Installation

Mac

Run the following command to grab the latest binary:

{
name=$(curl -s https://api.github.com/repos/porter-dev/porter/releases/latest | grep "browser_download_url.*porter_.*_Darwin_x86_64\.zip" | cut -d ":" -f 2,3 | tr -d \")
name=$(basename $name)
curl -L https://github.com/porter-dev/porter/releases/latest/download/$name --output $name
unzip -a $name
rm $name
}

Then move the file into your bin:

chmod +x ./porter
sudo mv ./porter /usr/local/bin/porter

For Linux and Windows installation, see our Docs.

Getting Started

  1. Sign up and log into Porter Dashboard.

  2. Create a Project and select a cloud provider you want to provision a Kubernetes cluster in.

  3. Put in your credentials, then Porter will automatically provision a cluster and an image registry in your own cloud account.

  4. Build and push your Docker image to the provisioned registry with the CLI.

  5. From the Templates tab on the Dashboard, select the Docker template. Click on the image you have just pushed, configure the port, then hit deploy.

Want to Help?

We welcome all contributions. Submit an issue or a pull request to help us improve Porter! porter