Skip to main content
This guide walks you through building and deploying a PHP API using Slim Framework to Magic Containers with GitHub Container Registry. You’ll need:
  • A GitHub account for source code and container registry
Don’t have a bunny.net account yet? Sign up and enable Magic Containers to get started.

Create the Slim app

Create a new directory and initialize the project:
Create the following files:

Run locally

Start the PHP development server:
Test the API:

Create the Dockerfile

Dockerfile

Build and push to GitHub Container Registry

Create .github/workflows/build.yml to automatically build and push on every commit to main:
.github/workflows/build.yml
Push your code to trigger the workflow:
If your package is private, set the visibility to Public in GitHub or configure Magic Containers with registry credentials.

Deploy to Magic Containers

1

Create a new app

In the bunny.net dashboard, go to Magic Containers and click Add App. Enter a name and select your deployment option.
2

Add a container

Click Add Container, then configure:
3

Add an endpoint

Go to the Endpoints tab, click Add New Endpoint, and set the container port to 80.
4

Deploy

Click Add Container, then Next Step, and Confirm and Create.
For more details, see the quickstart guide.

Test your API

Response
You can add a custom hostname from the Endpoints section in your app settings.

Connect a database

You can connect your app to Bunny Database directly from the dashboard:
  1. Go to Database > [Your Database] > Access
  2. Click Generate Tokens
  3. Click Add Secrets to Magic Container App
  4. Select your app
The BUNNY_DATABASE_URL and BUNNY_DATABASE_AUTH_TOKEN environment variables are now available in your app. Install the libSQL PHP extension or use HTTP requests to connect:
See the Bunny Database documentation for more details.

Next steps

  1. Automate deploys with GitHub Actions
  2. Add a custom hostname
  3. Add a persistent volume
Last modified on June 26, 2026