Open Source · Self-hosted · Kubernetes-native

Deploy to Kubernetes
without writing a
single manifest.

Vesta is a self-hosted PaaS that turns your Kubernetes cluster into a deployment platform. Git push, CLI, or API — deploy your way.

terminal — zsh
$ helm install vesta oci://ghcr.io/vesta-infra/charts/vesta \
-n vesta-system --create-namespace
✓ Operator deployed
✓ API server running
✓ UI dashboard ready
$ vesta deploy my-app --tag v1.2.3 --env production
→ Building from image: my-app:v1.2.3
→ Deploying to production...
✓ Deployment successful
https://my-app.apps.getvesta.sh
$
Zero
YAML needed
< 60s
to deploy
100%
open source
Any
K8s cluster
Features

Everything you need to ship.

A complete platform built on Kubernetes primitives. No vendor lock-in, no hidden complexity.

Zero-Manifest Deploys

Deploy from a pre-built image, git push, or API call. No Kubernetes YAML required — Vesta generates Deployments, Services, and Ingress for you.

Secrets Management

Opaque, Docker registry, and TLS secrets with per-app bindings. Secure by default.

Autoscaling

CPU, memory, and custom metric-based HPA with configurable scaling behavior and thresholds.

Multi-Environment

Organize apps into projects with per-environment config. Staging, production, and custom stages with independent pod sizes.

Private Registries

ImagePullSecrets at project, app, and environment levels. Pull from any private Docker registry.

Notifications

Slack, Discord, Google Chat, webhooks with HMAC-SHA256, and email via SMTP. Stay informed on every deploy.

How it works

Three commands. That's it.

01

Install

One Helm command to deploy the entire platform — Operator, API, and UI — to your cluster.

terminal
helm install vesta oci://ghcr.io/vesta-infra/charts/vesta \
  -n vesta-system --create-namespace
02

Push

Deploy your application with a single CLI command, API call, or git push. Zero YAML.

terminal
vesta deploy my-app --tag v1.2.3 --env production
03

Live

Your app is running with automatic ingress, TLS, health checks, and autoscaling. Done.

terminal
✓ Deployment successful
  https://my-app.apps.getvesta.sh

  Replicas:     2/2 ready
  Ingress:      my-app.apps.getvesta.sh
  TLS:          letsencrypt-prod
  Autoscaling:  2-10 pods (CPU > 70%)
Architecture

Four components.
One platform.

Each component is independently deployable and follows Kubernetes-native patterns.

Operator

Go / Kubebuilder

Watches CRDs and reconciles Deployments, Services, Ingress, HPA, and Secrets.

API Server

Go / Gin

REST API for projects, apps, deployments, secrets, auth, and notifications.

Web UI

React / TypeScript

Dashboard for managing the platform — projects, apps, secrets, and deployments.

CLI

Go / Cobra

Command-line tool for all operations — deploys, secrets, projects, and more.

Comparison

Why Vesta?

The flexibility of Kubernetes with the simplicity of a PaaS — at no cost.

Feature Vesta
Heroku Render Coolify
Self-hosted
Open source
Kubernetes-native
Secrets management
Custom K8s config
Multi-environment
API-first deploys
Approval gates
Free forever

Ready to deploy?

Install Vesta on your cluster in under a minute. No credit card, no sign-up — it's open source.

terminal
helm install vesta oci://ghcr.io/vesta-infra/charts/vesta \
  -n vesta-system --create-namespace