- A GitHub account for source code and container registry
- A bunny.net account with Magic Containers enabled
Create the Astro app
Create a new Astro project:Add the Node adapter
Astro requires an adapter for server-side rendering. Install the Node adapter:astro.config.mjs to include the adapter:
astro.config.mjs
Create an API route
Create a simple endpoint to test the deployment:src/pages/index.json.ts
Run locally
Start the development server:Create the Dockerfile
Dockerfile
Build and push to GitHub Container Registry
- GitHub Actions
- Docker CLI
Create Push your code to trigger the workflow:
.github/workflows/build.yml to automatically build and push on every commit to main:.github/workflows/build.yml
If your package is private, set the visibility to Public in GitHub or
configure Magic Containers with registry
credentials.
Deploy to Magic Containers
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.
Add a container
Click Add Container, then configure:
| Field | Value |
|---|---|
| Registry | GitHub Container Registry |
| Image | YOUR_USERNAME/{imageName} |
| Tag | latest |
Test your app
Visit your container URL in the browser to see your Astro site, or test the API route: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:- Go to Database > [Your Database] > Access
- Click Generate Tokens
- Click Add Secrets to Magic Container App
- Select your app
DB_URL and DB_TOKEN environment variables are now available in your app:
src/pages/api/users.ts