Build System
deploybase builds static sites in isolated Kubernetes Jobs. Each build gets its own container with controlled resources and network access.
Build Pipeline
Section titled “Build Pipeline”1. Git clone (branch + commit)2. Install dependencies (framework-specific)3. Run build command4. Upload output directory to Bunny.net CDN storage5. Configure CDN edge rule (production or preview)6. Update deployment status7. Send notification emailIsolation
Section titled “Isolation”Each build runs in a dedicated Kubernetes Job pod:
| Resource | Limit |
|---|---|
| CPU | 1 core |
| Memory | 2 GB |
| Disk | 10 GB temporary storage |
| Timeout | 10 minutes |
| Network | Isolated namespace |
Builds cannot access other builds, the deploybase database, or internal services. They can access the public internet (for downloading dependencies from npm, crates.io, etc.).
Docker Images
Section titled “Docker Images”Each framework uses a specific Docker image:
| Framework | Image |
|---|---|
| Next.js, SvelteKit, Astro, Vite, Gatsby, Custom | node:24-alpine |
| Hugo | hugomods/hugo:0.139.0 |
| Jekyll | jekyll/jekyll:4 |
The install and build commands run inside this image. Node.js frameworks use npm install by default.
Build Command Execution
Section titled “Build Command Execution”The full build command is constructed as:
{install_command} && {build_command}For Hugo (no install step), only the build command runs: hugo --minify.
Custom build commands can be set per project. They are validated for safety — shell metacharacters (&, ;, |, `, $, ()) are rejected to prevent command injection. See Supported Frameworks for validation rules.
Artifact Upload
Section titled “Artifact Upload”After a successful build, the contents of the output directory are uploaded to Bunny.net CDN storage at:
/{tenant_id}/{project_slug}/{deployment_id}/Uploads run concurrently (10 parallel workers) with automatic Content-Type detection based on file extension.
Build Limits
Section titled “Build Limits”Build minute usage is tracked per billing period. Limits depend on the subscription plan — see pricing for current limits.
When a build exceeds the 10-minute timeout, it is terminated and the deployment status is set to failed.
Cancellation
Section titled “Cancellation”Pending, queued, or building deployments can be cancelled:
curl -X POST https://api.deploybase.eu/api/v1/deployments/DEPLOYMENT_ID/cancel \ -H "Authorization: Bearer $TOKEN"Cancelled builds do not count toward build minute usage.