Lesson 3March 20, 20264 min read

Using Environments in Bunnyshell

With the conceptual foundation from the previous lesson in place, it is time to get hands-on. Watch the video above for a quick walkthrough of the core workflow, then use this guide to reinforce the key steps and pick up additional practical tips.

Creating and Deploying Your First Environment

The fastest way to get started is through the Bunnyshell dashboard. After logging in and selecting your project, you will see the option to create a new environment. Choose the Git repository and branch you want to deploy, and Bunnyshell will read the bunnyshell.yaml configuration file from that branch to understand what needs to be built and deployed.

Once you click deploy, Bunnyshell handles the rest: it pulls your code, builds container images (if your configuration specifies builds from Dockerfiles), and deploys all components to the connected Kubernetes cluster. The deployment progress is visible in real time through the dashboard, with each component showing its current status — queued, building, deploying, or running.

If you prefer the command line, the Bunnyshell CLI offers the same capabilities. The bns environment create command lets you specify the project, repository, and branch, and the bns environment deploy command triggers the build and deployment pipeline. The CLI is particularly useful for scripting and CI/CD integration, where you may want to create environments programmatically as part of an automated workflow.

Redeploying is just as straightforward. When you push new code to the branch an environment is tracking, you can trigger a redeploy from the dashboard or CLI. Bunnyshell is smart about rebuilds — it only rebuilds components whose source code has changed, which speeds up subsequent deploys significantly compared to the initial one.

Checking Logs, Status, and Debugging

Once your environment is running, the dashboard becomes your control center. Each component displays its current health status, resource usage, and the logs from its running containers. Logs stream in real time, so you can watch application output as it happens — invaluable for catching errors during deployment or while testing a new feature.

The environment overview page gives you a bird's-eye view of all components: which ones are running, which are still deploying, and whether any have encountered errors. If a component fails to start, the logs will usually tell you why — a missing environment variable, a failed health check, or a container that crashed on startup.

For deeper debugging, Bunnyshell lets you open a remote shell directly into a running container. This is the equivalent of kubectl exec but accessible right from the dashboard without needing direct cluster access. You can inspect file systems, run diagnostic commands, check database connectivity, or tail application logs that are not sent to stdout.

Working with Environment URLs

One of the most immediately useful features of Bunnyshell is the unique URLs assigned to each environment's exposed services. When your frontend is deployed, it gets a URL like frontend-abc123.bunnyenv.com. Your API gets a different URL. If you expose a database admin tool, that gets its own URL too.

These URLs are what make Bunnyshell environments so powerful for collaboration. Instead of telling a QA engineer "check out my branch and run it locally," you send them a link. Instead of scheduling a demo on a shared staging server, you point the stakeholder to your environment's URL. Instead of describing a bug in a Slack message, you share the URL where the bug is visible.

Because each environment is isolated, these URLs are stable for the lifetime of the environment. You can bookmark them, share them in pull request comments, or include them in automated test configurations. When the environment is deleted, the URLs simply stop resolving — there is no cleanup needed on your end.

This tight feedback loop — push code, get a URL, share it, iterate — is the core workflow that makes Bunnyshell a daily driver for development teams rather than just another DevOps tool that sits in the background.

Ship faster starting today.

14-day full-feature trial. No credit card required. Pay-as-you-go from $0.007/min per environment.

Frequently Asked Questions

How do I create my first Bunnyshell environment?

You can create an environment through the Bunnyshell dashboard by selecting your project, choosing a Git branch, and clicking Deploy. Alternatively, use the Bunnyshell CLI with the environment create command. Both methods read your bunnyshell.yaml configuration to provision the full stack.

How do I access services running in a Bunnyshell environment?

Every service that exposes a port gets a unique, publicly accessible URL generated by Bunnyshell. You can find these URLs in the environment dashboard under each component. These URLs are ideal for sharing with teammates, QA, or stakeholders for review.

Can I connect directly to a running container in Bunnyshell?

Yes. Bunnyshell provides remote shell access to running containers directly from the dashboard or through the CLI. This is useful for debugging, running one-off commands, or inspecting the state of a service in real time.