Open Source & Self-Hosted

Preview Environments That Actually Work for Full-Stack Apps

Automatic preview environments with real databases for every Pull Request. The open-source, self-hosted alternative to Vercel and Qovery.

Terminal
$ git push origin feature/new-checkout-flow
Enumerating objects: 15, done.
Writing objects: 100% (15/15), done.

$ gh pr create --title "Add new checkout flow"
Creating pull request for feature/new-checkout-flow...

✓ PR Environment deploying...
✓ PostgreSQL database provisioned
✓ Redis cache provisioned
✓ Application deployed

Preview URL: https://myapp-pr-42.k8s-ee.example.com

Sound Familiar?

These common challenges slow down development teams every day.

Staging is Broken Again

Shared environments are constantly in a broken state from competing changes.

Can't Review Without Pulling

Reviewers need to checkout code locally just to see UI changes.

Frontend-Only Previews

Existing tools don't support full-stack apps with real databases.

$500-2000/month for SaaS

Enterprise preview tools are expensive and lock you into their platform.

How It Works

Add preview environments to your repo in three simple steps.

1

Add Config File

Create a k8s-ee.yaml in your repo root to define your app and databases.

2

Add Workflow

Copy our reusable GitHub Actions workflow that handles the entire lifecycle.

3

Open a PR

Every PR automatically gets a unique preview URL with isolated resources.

Everything You Need

Full-stack preview environments with all the bells and whistles.

Database per PR

PostgreSQL, MongoDB, Redis, MariaDB, and MinIO. Each PR gets isolated databases.

Built-in Observability

Prometheus metrics, Loki logs, and pre-built Grafana dashboards out of the box.

Secure by Default

Network policies, RBAC, Sealed Secrets. Each environment is completely isolated.

Fast Deployments

From PR open to live URL in under 10 minutes. Includes database provisioning.

Auto Cleanup

Environments are automatically destroyed when PRs are merged or closed.

Cost Effective

Run on your own infrastructure for ~$120/month instead of $500-2000 for SaaS.

Simple Config

One YAML file defines everything. No complex setup or configuration needed.

GitHub Native

GitHub Actions, PR comments with preview URLs, and status checks integration.

How We Compare

See how K8s-EE stacks up against other preview environment solutions.

Comparison of preview environment platforms: K8s-EE, Vercel, Netlify, and Qovery
Feature K8s-EE Vercel Netlify Qovery
Full-stack apps
Database per PR
Self-hosted
Open source Partial
Built-in observability
Monthly cost ~$120 $150-600 $99-500 $300-1500

Simple Configuration

Define your entire environment in a single YAML file. Enable databases, configure health checks, and customize resources with just a few lines.

  • Choose from PostgreSQL, MongoDB, Redis, MinIO, or MariaDB
  • Automatic health check monitoring
  • Resource quotas calculated automatically
  • Database migrations and seeding supported
View Full Reference
k8s-ee.yaml
projectId: myapp

app:
  port: 3000
  healthPath: /health
  replicas: 1

databases:
  postgresql: true
  redis: true
  mongodb: true
  minio: true

env:
  NODE_ENV: production
  LOG_LEVEL: info

Built-in Observability

Every environment comes with pre-configured Grafana dashboards for monitoring your application.

PR Environment Overview Dashboard showing app status, error rate, latency, and recent logs

Real Grafana dashboards from a live PR environment

Architecture

See how K8s-EE creates isolated environments for each Pull Request.

PR Opened
GitHub Actions
k3s Cluster
Isolated Namespace
Preview URL

Each namespace contains: App pods, Database instances, Network policies, Resource quotas, and Ingress rules.

View Full Architecture

Frequently Asked Questions

Got questions? We've got answers.

Initial setup takes about 30 minutes to 1 hour, depending on your Kubernetes experience. After that, adding preview environments to a new repository takes less than 5 minutes—just add two files (config + workflow) and you're done.

K8s-EE supports PostgreSQL (via CloudNativePG), MongoDB, Redis, MariaDB, and MinIO for S3-compatible object storage. You can enable any combination of these in your config file.

Currently, K8s-EE is designed for GitHub Actions and GitHub repositories. Support for GitLab CI and Bitbucket Pipelines is on the roadmap for future releases.

A single VPS capable of running 3-5 simultaneous PR environments costs around $100-150/month from providers like Oracle Cloud, Hetzner, or DigitalOcean. This is significantly cheaper than SaaS alternatives that charge $500-2000/month.

Yes! K8s-EE has completed Phase 1 and Phase 2 development with 34 implemented user stories. It includes security features like network policies, RBAC, resource quotas, and organization allowlists. The platform is actively maintained and used in real projects.

The environment is automatically destroyed, including all databases and storage. A cleanup job also runs every 6 hours to catch any orphaned namespaces. You can also use the /preserve command to keep an environment running for up to 48 hours after the PR is closed.

Ready to Ship Faster?

Join the teams using K8s-EE to streamline their development workflow.