Skip to main content
Deploying to Magic Containers happens on a single page. You pick a container image, configure the container, choose a region, and click Deploy. If you need more regions or different scaling settings, you can configure them after your app is deployed. Public images from Docker Hub and GitHub work out of the box. To deploy a private image, connect the registry first. See Image Registries.
1

Open the Deploy App page

In the bunny.net dashboard, go to Magic Containers and click + Add App.
Deploy App page in Magic Containers
The page opens with one empty container named Container-1. When you select an image, the container is renamed after the image automatically. Click the pencil icon to give it a different name.
2

Select a container image

Use the search field to find a container image. The search covers every registry connected to your account: the public Docker Hub and GitHub registries, plus any private Docker Hub or GitHub registries you’ve added. The registry chips above the search field show which registries are included. Click + Add Registry to connect a private registry without leaving the page.Once you select an image, its available tags are displayed. If a latest tag exists, it is selected automatically. Click any other tag to switch, or use the search button to find a tag that isn’t listed.
Container configuration with image, endpoints, volumes, and environment variables
Magic Containers only supports images built for the linux/amd64 architecture.
3

Configure endpoints

Endpoints define how your container is reachable from the internet. Two endpoint types are available:
  • CDN: routes traffic through bunny.net’s CDN edge network. Best for HTTP(S) services that benefit from caching and global distribution.
  • Anycast IP: exposes your container directly on a globally anycast IP. Better suited for non-HTTP protocols or latency-sensitive TCP and UDP services.
Click + CDN or + Anycast IP to add an endpoint, then give it a name and set the container port. This is the port your application listens on inside the container. Add more endpoints if your app exposes multiple ports.When an image declares known ports, an endpoint is pre-filled for you. Review it before deploying.
Endpoints make your container publicly accessible. Only create endpoints for services that are meant to be public-facing, such as web servers or APIs. Do not expose private services such as databases, caches, or internal APIs through an endpoint.
See Endpoints for details on each endpoint type.
4

Add persistent volumes (optional)

If your container needs to write data that should survive restarts and redeployments, click + Volume under Persistent volumes. Give the volume a name, set the mount path inside the container, and set its size in GB.Leave this section empty if your container is stateless. See Persistent Volumes for how volumes behave across regions and instances.
5

Set environment variables

Under Environment variables, configure any runtime settings your container needs. Click + Variable to add a key and value one at a time, or click Raw editor to paste multiple variables in KEY=value form.For public Docker Hub images, Magic Containers inspects the image metadata and pre-fills known environment variables with their default values. Review each one before deploying. Pay special attention to:
  • Passwords and secrets: replace any placeholder values with strong, unique secrets. Never leave default or example passwords in production.
  • Paths and ports: confirm that pre-filled values match your actual container configuration.
See Environment Variables for more.
6

Add more containers (optional)

Click + Add container to add another container to the same app. Each container gets its own image, endpoints, volumes, and environment variables.All containers in an app run in the same pod and share a network namespace, so they can reach each other on localhost. They must listen on different ports. See Multi-Container Apps.
7

Name your app and pick a region

Under App name, enter a name for the app. The name of the first image is pre-filled as a default.Under Region, the region geographically closest to you is selected automatically. Change it if you need to deploy closer to your users or a specific data source. See Regions for the full list.After deploying, you can add regions and configure scaling from the app’s Regions and Scaling settings. See Autoscaling.
8

Deploy

Once everything looks good, click Deploy. Your app is created, the containers are scheduled, and the endpoints are activated.You’ll be taken to the app overview where you can monitor the deployment status.
App overview page
Trial accounts must add valid payment card details before deploying, and are limited to one application, three regions, and three instances per region. See Limits.
Last modified on September 2, 2026