$ bns environments deploy --pr

Kill Shared Staging.
Every PR Gets Its Own.

Every pull request gets a full-stack, production-like environment in minutes. Auto-created on push, destroyed on merge. No staging contention. No DevOps tickets.

No credit card required

How Bunnyshell works — architecture diagram

$ cat how-it-works.md

How Bunnyshell works

01

Connect your repo

Link your GitHub, GitLab, or Bitbucket repository. Define your environment using Docker Compose, Helm, or Terraform — tools you already use.

GitHubGitHub
GitLabGitLab
BitbucketBitbucket
DockerDocker
HelmHelm
K8sK8s
02

Open a pull request

Bunnyshell auto-provisions an isolated, full-stack environment for every PR. Share the preview URL with your team.

PR #142env-142.preview.bunnyshell.dev• Running
PR #143env-143.preview.bunnyshell.dev• Running
PR #144env-144.preview.bunnyshell.dev• Running
03

Merge and move on

Tests pass, code is reviewed, PR merges. The environment auto-destroys. No cleanup. No surprise cloud bills.

End-to-end tests passed
Code review approved
Merged — environment destroyed

See it in action.

Deploy your first ephemeral environment in under 30 minutes. Free tier — no credit card required.

01

Auto-Deploy
on PR Open.

No clicking "deploy." No filing tickets. Open a pull request and your environment starts provisioning immediately. Every component — from your API to your database — builds and deploys in parallel.

  • Git-native triggerGitHub, GitLab, and Azure DevOps webhooks fire automatically on PR open
  • Parallel buildsindependent components build and deploy simultaneously, cutting provision time
  • Auto-update on pushpush new commits and your environment updates in place. No redeploy needed
  • Git ChatOps/bns:deploy, /bns:stop, /bns:start from PR comments for manual control
See how auto-deploy works
B
Environments / PR #247 — feat/checkout / Pipeline
$ git push origin feat/checkout
Enumerating objects: 12, done.
remote: Resolving deltas: 100%
▸ Bunnyshell: provisioning environment…
  ▸ Building frontend… done (42s)
  ▸ Building backend-api… done (38s)
  ▸ Starting postgres:15… done (8s)
  ▸ Starting redis:7… done (4s)
  ▸ Seeding database… done (12s)
  ▸ Running healthchecks… all passing
✓ Environment ready in 3m 22s
  🌐 https://pr-247.bunnyenv.com
  📝 https://api-pr247.bunnyenv.com/docs
02

Full-Stack
Replication.

Not just frontend previews. Every environment includes your application, backend services, database with seeded data, and infrastructure — all replicated from production. Test real integrations, not mocked endpoints.

  • App + DB + infraDocker Compose, Helm, and Terraform components in a single environment
  • Database cloningnative connectors for Neon, PlanetScale, Xata. Seed data automatically
  • Production paritysame container images, same networking, same configs. Catch bugs before production
  • 7 component typesDocker Compose, Helm, K8s Manifests, Terraform, Custom Docker Image, Static App, Generic
See supported components
B
Environments / PR #247 \u2014 feat/checkout / Components
ComponentTypePortStatus
frontendDocker Compose:3000Running
backend-apiDocker Compose:8080Running
workerDocker ComposeRunning
postgresHelm:5432Running
redisHelm:6379Running
elasticsearchHelm:9200Running
infra (VPC, RDS)TerraformApplied
03

Preview URLs &
Collaboration.

Every environment gets a unique, shareable URL — automatically posted to your pull request. QA reviews without setup. Product managers see features before merge. Stakeholders give feedback on real, running code.

  • Auto-posted URLsBunnyshell comments on your PR with environment URL and status
  • Per-component URLsfrontend, API docs, admin panel — each gets its own accessible endpoint
  • Custom domainsassign your own domain to any environment for client demos or external reviews
  • IP whitelistingrestrict access for sensitive applications. Secure by default
See URL & domain config
bunnyshellbotcommented just now

Preview Environment deployed on Bunnyshell

ComponentEndpoints
frontendhttps://frontend-pr247.bunnyenv.com/
backend-apihttps://api-pr247.bunnyenv.com/
admin-panelhttps://admin-pr247.bunnyenv.com/

See: Environment Details | Pipeline Logs

Available commands (reply to this comment):

  • 🔴 /bns:stop to stop the environment
  • 🚀 /bns:deploy to redeploy the environment
  • /bns:delete to remove the environment
04

Auto-Destroy &
Lifecycle Management.

Environments that manage themselves. Merge a PR and the environment destroys itself. Leave for the night and it auto-sleeps. Come back in the morning and it wakes up. No forgotten resources. No surprise cloud bills.

  • Auto-destroy on mergePR merged or closed? Environment gone. Zero manual cleanup
  • Auto-sleep schedulesstop at 8 PM, start at 8 AM. Custom schedules per environment
  • Per-environment cost trackingKubecost integration shows what each environment costs per hour
  • Termination protectionlock critical demo environments against accidental deletion
See lifecycle automation
B
Environments / PR #247 \u2014 feat/checkout / Activity
TimeEventStatus
Mon 09:14PR #247 openedEnvironment created
Mon 09:22Pipeline completeDeployed
Mon 11:30New commit pushedRedeployed
Mon 20:00Auto-sleep scheduleSleeping
Tue 08:00Auto-wake scheduleRunning
Tue 14:15PR #247 mergedDestroying...
Tue 14:16Cleanup completeDestroyed

Your entire engineering org
ships faster.

Developers

No more staging queues

Open a PR, get your own environment in minutes. Code, test, and iterate without stepping on anyone else's work.

QA Engineers

Self-serve UAT

Self-serve UAT environments for every feature branch. No more "can I get a staging slot?" Test in isolation, file bugs with a link to the exact environment.

Platform Teams

Zero environment tickets

Stop fielding "I need an environment" tickets. Developers self-serve from templates you control. Enforce standards without being the bottleneck.

Engineering Leaders

Ship faster, measure everything

Faster releases with fewer regressions. Track deployment frequency and cycle time with built-in DORA metrics. See ROI in the first week.

Product Managers

Review features before merge

Every PR gets a shareable URL. Click, review, give feedback — no setup, no VPN, no waiting for deploys. Ship with confidence.

Solution Architects

Demo any branch, anytime

Spin up isolated demo environments for client presentations. Show real, running code — not slides. Tear down when done.

Deploy your first ephemeral environment today.

Free tier includes 5 environments. No credit card required. Free white-glove onboarding.

Teams that replaced staging
with ephemeral environments.

Enterprise-grade security.
Your data stays in your cloud.

Bunnyshell connects to YOUR Kubernetes cluster. Your code and data never leave your infrastructure. SOC 2, ISO 27001, and ISO 9001 compliant.

SOC 2
ISO 27001
ISO 9001

RBAC

Three-layer permission model: Policies, Resource Selectors, and Teams. Granular enough for enterprise.

SSO

Enterprise single sign-on. Integrate with your existing identity provider.

Network Isolation

Dedicated Kubernetes namespace per environment. Pods accessible only within their namespace.

Secrets Management

Environment variables and secrets handled securely. Never hard-coded, always encrypted.

IP Whitelisting

Restrict access to specific IP ranges. Control who can reach your environments.

Audit Logs

Full audit trail for every environment action. Who deployed what, when, and where.

Frequently asked
questions

Can’t find what you’re looking for? Talk to our team

An ephemeral environment is a full-stack, isolated copy of your application — frontend, backend, database, and infrastructure — that is automatically created for a specific pull request and destroyed when the PR is merged or closed. It is not a preview deployment or a frontend-only snapshot. It replicates your production stack.

Your staging bottleneck ends today.

Start free \u2014 deploy your first ephemeral environment in minutes. Free tier includes 5 environments. No credit card required. Free white-glove onboarding.