Create Environments from a Template in Bunnyshell
Templates are one of the most practical features in Bunnyshell. Instead of manually defining every service, database, and configuration for a new environment, you can start from a template that packages a complete, ready-to-deploy stack. Watch the video above for a detailed walkthrough of creating environments from both marketplace and custom templates.
What Are Bunnyshell Templates?
A Bunnyshell template is a reusable environment blueprint. It defines the complete topology of an application — which services to run, how they connect, what container images or source repositories to use, which environment variables to set, and how networking is configured. Think of it as infrastructure-as-code specifically designed for development and staging environments.
Templates solve a real problem. In most organizations, setting up a new environment means copying YAML files from another project, tweaking configurations manually, and debugging the inevitable mismatches. Templates eliminate this by providing a tested, versioned starting point. A new team member can go from zero to a running full-stack environment in minutes, not hours.
Bunnyshell templates are defined in YAML and can include multiple components — frontend applications, backend APIs, databases, message queues, caching layers, and any other service your application needs. Each component specifies its source (a Git repository or a Docker image), build instructions, exposed ports, resource limits, and dependencies on other components.
Using the Template Marketplace
Bunnyshell provides a template marketplace with pre-built configurations for popular technology stacks. You will find templates for combinations like React with Node.js and PostgreSQL, Django with Redis and Celery, Spring Boot with MySQL, and many more. These marketplace templates are maintained and tested, so they work out of the box.
To create an environment from a marketplace template, navigate to the Environments section in your project and click "Create Environment." Select "From Template" and browse the marketplace. Each template includes a description of the stack it deploys, the components involved, and any prerequisites.
When you select a template, Bunnyshell presents the template parameters — configurable values that let you customize the environment without editing the raw YAML. Common parameters include the Git repository URL (so you can point the template at your own code), the branch to deploy, database credentials, and application-specific settings like API keys or feature flags.
These parameters are the key to making templates flexible. A single template can serve multiple projects and teams, with each deployment customized through its parameters. The template author decides which values are configurable and can set sensible defaults, making the creation process straightforward even for developers who are unfamiliar with the underlying infrastructure.
Customizing Templates and Managing Versions
Sometimes the default parameters are not enough and you need to make deeper changes. Bunnyshell allows you to edit the template YAML directly before creating the environment. This is useful when you need to add a service that the template does not include, change resource allocations, or modify networking rules. Any edits you make apply only to the environment you are creating — the original template remains unchanged.
Template versioning is important for teams that rely on templates as their standard environment configuration. When a template is updated — say, to upgrade a base image or add a new service — Bunnyshell tracks the version history. Environments created from an older version of the template continue to work with their original configuration. You can choose to update an existing environment to the latest template version or keep it pinned to the version it was created from.
This versioning model gives teams stability without sacrificing the ability to evolve. The platform team can iterate on templates, test new configurations, and publish updates, while individual developers continue working in their existing environments without disruption. When a developer is ready to pick up the latest template changes, they can update their environment with a single action.
For organizations with multiple teams or projects, templates also serve as a standardization tool. By publishing approved templates, platform teams can ensure that every environment follows the same architecture, uses approved base images, and includes required observability and security configurations. This is especially valuable in regulated industries where environment consistency is not just a convenience — it is a compliance requirement.
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
What is a Bunnyshell template?
A Bunnyshell template is a pre-configured environment definition that packages everything needed to deploy a full-stack application — services, databases, networking, environment variables, and build instructions. Templates can be shared, versioned, and reused, allowing teams to spin up consistent environments in minutes without manual configuration.
Can I modify a template before deploying it?
Yes. When creating an environment from a template, Bunnyshell lets you customize parameters like repository URLs, branch names, resource limits, and environment variables before deployment. You can also edit the underlying YAML configuration directly if you need deeper customization.
What is the difference between marketplace templates and custom templates?
Marketplace templates are maintained by Bunnyshell and the community. They cover popular stacks like React + Node.js + PostgreSQL or Django + Redis and are designed to work out of the box. Custom templates are created by your team for your specific applications and can include proprietary configurations, internal services, and company-specific defaults.