| title | Deploy |
|---|---|
| description | Choose from Magic, Single region, or Advanced deployment options. |
Magic Containers offers three deployment options: Magic deployment for effortless global provisioning, Single region for fast deployment without auto-scaling, and Advanced for full control over regions and scaling based on user activity. Before deploying, you'll need a private container registry configured.
Magic deployment is the simplest way to get your app up and running. It leverages the power of Magic Containers AI to handle global provisioning efficiently and cost-effectively.
Magic Containers AI will automatically analyze your app's requirements, determine the optimal deployment regions, and provision your app globally in just a few clicks. This approach ensures the best possible performance while minimizing costs.
Single region deployment gives you full control over provisioning settings, allowing you to deploy to the closest single region without the worry of any scaling. This is ideal for scenarios where you are wanting fast deployment and no auto-scaling.
Login to [bunny.net dashboard](https://dash.bunny.net/auth/login?pk_buttonlocation=menu). Select **Magic Containers** and click the **Add App** button.<Frame>

</Frame>
<Frame>

</Frame>
<Frame>

</Frame>
After configuring the **App region** settings, click **Next Step.**
<Frame>

</Frame>
<Frame>

</Frame>
If you want your app to be available on the internet, you need to set up edge endpoints. Go to the **Endpoints** tab and click **Add New Endpoint**.
<Frame>

</Frame>
- You need to name the endpoint (it must have a unique name).
- Decide how you want to expose the app, either using CDN or Anycast.
- Define the container port, which is the port on which the application is listening inside the container.
- Specify whether your application inside the container uses SSL for origin (only CDN setting).
Click **Add endpoint**, and then click **Add Container**.
<Frame>

</Frame>
Click **Confirm and Create**.
<Frame>

</Frame>
You will be navigated to the overview screen of your app. The processing button should turn green, indicating that your app is being deployed.
<Frame>

</Frame>
Your application is now deployed and can be accessed by clicking here:
<Frame>

</Frame>
The provisioner will take your region settings into account and deploy your app accordingly.
Advanced deployment gives you full control over provisioning settings, allowing you to customize the deployment regions and react to user activity. This level of customization is ideal for scenarios where you have specific geographical requirements or want to optimize your deployment strategy based on user behavior.
Login to [bunny.net dashboard](https://dash.bunny.net/auth/login?pk_buttonlocation=menu). Select **Magic Containers** and click the **Add App** button.<Frame>

</Frame>
<Frame>

</Frame>
- **Base region**: Regions where your app will always be deployed. You must select at least one base region and there is no maximum limit.
- **Enabled region**: The provisioning system will actively monitor user locations and behavior. If it identifies active users in a specific region, it will dynamically deploy the app to accommodate the user traffic. Conversely, if there is no user activity in a region, the app will not be deployed in that area.
<Frame>

</Frame>
Based on your settings, the provisioner will react to user activity as follows:
- If the **Enabled Regions** and **Base Regions** are equal, the provisioner will use Static Provisioning. In this mode, the regions deployed over time will remain the same.
- If the sets are different, the provisioner will use **Auto Provisioning**. Regions are chosen based on end-user activity. If users are active in a region, the app will be deployed there. If there are no active users in a region, the app won't be deployed.
After configuring the region settings, click **Next Step.**
<Frame>

</Frame>
Select the provisioning type.
<Frame>

</Frame>
If you want your app to be available on the internet, you need to set up edge endpoints. Go to the **Endpoints** tab and click **Add New Endpoint**.
<Frame>

</Frame>
- You need to name the endpoint (it must have a unique name).
- Decide how you want to expose the app, either using CDN or Anycast.
- Define the container port, which is the port on which the application is listening inside the container.
- Specify whether your application inside the container uses SSL for origin (only CDN setting).
Click **Add endpoint**, and then click **Add Container**.
<Frame>

</Frame>
Click **Confirm and Create**.
<Frame>

</Frame>
You will be navigated to the overview screen of your app. The processing button should turn green, indicating that your app is being deployed.
<Frame>

</Frame>
Your application is now deployed and can be accessed by clicking here:
<Frame>

</Frame>
The provisioner will take your region settings into account and deploy your app accordingly.