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

Alexander Belanger f44c6910aa Merge branch 'master' into beta.3.email-integration 5 năm trước cách đây
.github a01577757b Update staging.yaml 5 năm trước cách đây
build e013a3ff6e update release builds for cgo 5 năm trước cách đây
cli 1bb8f66d07 ingress custom annotations uses key value input 5 năm trước cách đây
cmd f0a9bac5c7 reset password backend 5 năm trước cách đây
dashboard e1256fad64 email verification logout handling + frontend & fixes #419 5 năm trước cách đây
docker 1ccae4a9a6 increase nginx proxy time out. fixes #244 5 năm trước cách đây
docs 2ef9136aa9 prettier 5 năm trước cách đây
helm 2ef9136aa9 prettier 5 năm trước cách đây
internal e902ef8645 handle password reset for github users 5 năm trước cách đây
scripts b133d644f8 portersvr with ldflag and proper overwrite 5 năm trước cách đây
server 4e804f1c83 remove log 5 năm trước cách đây
services fe56c2c1f7 quick metrics fix 5 năm trước cách đây
.air.toml f1ac0e4b69 cli major update 5 năm trước cách đây
.dockerignore d7b83fb445 onboarding with default sqlite 5 năm trước cách đây
.gitignore a397550757 fixes #253 5 năm trước cách đây
.prettierignore 4369eef02d prettier 5 năm trước cách đây
LICENSE 1f483861ca add MIT license 5 năm trước cách đây
README.md 2ef9136aa9 prettier 5 năm trước cách đây
docker-compose.dev.yaml 2ef9136aa9 prettier 5 năm trước cách đây
go.mod 079ea6c294 fix merge conflicts 5 năm trước cách đây
go.sum 079ea6c294 fix merge conflicts 5 năm trước cách đây
staging.sh f721859ed6 provisioner WIP 5 năm trước cách đây

README.md

Porter

MIT License Go Report Card Discord Twitter

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

Community and Updates

For help, questions, or if you just want a place to hang out, join our Discord community.

To keep updated on our progress, please watch the repo for new releases (Watch > Custom > Releases) and follow us on Twitter!

Why Porter?

A PaaS that grows with your applications

A traditional PaaS like Heroku is great for minimizing unnecessary DevOps work but doesn't offer enough flexibility as your applications grow. Custom network rules, resource constraints, and cost are common reasons developers move their applications off Heroku beyond a certain scale.

Porter brings the simplicity of a traditional PaaS to your own cloud provider while preserving the configurability of Kubernetes. Porter is built on top of a popular Kubernetes package manager helm and is compatible with standard Kubernetes management tools like kubectl, preparing your infra for mature DevOps work from day one.

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 one click add-ons (e.g. MongoDB, Redis, PostgreSQL)
  • Application rollback to previously deployed versions
  • Deploy webhooks that can be triggered from CI/CD pipelines
  • Native CI/CD with buildpacks for non-Dockerized apps (🚧 Coming Soon)

DevOps Mode

For those who are familiar with Kubernetes and Helm:

  • Connect to existing Kubernetes clusters that are not provisioned by Porter
  • 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

Graph View

Docs

Below are instructions for a quickstart. For full documentation, please visit our official Docs.

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 (AWS, GCP, DO). It is also possible to link up your own Kubernetes cluster.

  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, or connect your git repository. We are currently working on supporting the latter option for non-Dockerized applications.

  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! If you're interested in contributing, please join our Discord community.

porter