App Templates
Deku ships a local starter catalog in the repository under templates/.
Each starter is a local source directory shaped for Deku’s own deploy model:
- They use Deku-supported
dockerfileornixpacksbuilders - They expect Deku-managed services instead of bundled sidecars
- They stay small enough to inspect, copy, and modify directly
- Bun is used in the starters where it fits naturally without making the deploy path harder to reason about
If you already cloned the repository, copy the directory you want from templates/<name>. If you are browsing the public docs, use the GitHub links below.
Quick Picks
Section titled “Quick Picks”- Use
templates/node-expresswhen you want the smallest API starter. - Use
templates/honowhen you want the smallest Bun-native API starter. - Use
templates/nextjsortemplates/nuxtwhen you want an SSR-capable JavaScript app. - Use
templates/astrowhen you want a static site served from a container. - Use
templates/vite-reactwhen you want a Bun-built frontend SPA. - Use
templates/django,templates/laravel, ortemplates/fastapiwhen you want a framework starter that can grow into a database-backed app.
Dockerfile Starters
Section titled “Dockerfile Starters”Next.js
Section titled “Next.js”Plain App Router starter with standalone output.
- Repo directory: templates/nextjs
- Builder:
dockerfile - Package manager:
npm - Best for: Full-stack React apps and SSR routes
- Health check:
/health - Pair with: Managed services through framework-standard env vars
deku deploy run nextjs-demo --path /absolute/path/to/repo/templates/nextjsLaravel
Section titled “Laravel”Laravel starter with a lightweight local overlay and a Docker build that creates a fresh framework skeleton.
- Repo directory: templates/laravel
- Builder:
dockerfile - Package manager:
composerat build time - Best for: PHP web apps and dashboard-style applications
- Health check:
/health - Pair with:
deku postgres,deku mysql, ordeku redis
deku deploy run laravel-demo --path /absolute/path/to/repo/templates/laravelStatic Astro site served from a production container.
- Repo directory: templates/astro
- Builder:
dockerfile - Package manager:
bun - Best for: Docs, marketing sites, and content-heavy frontends
- Health check:
/health/ - Pair with: No backing service by default
deku deploy run astro-demo --path /absolute/path/to/repo/templates/astroNode Express
Section titled “Node Express”Minimal JSON API starter with a small production image and /health route.
- Repo directory: templates/node-express
- Builder:
dockerfile - Package manager:
npm - Best for: APIs, webhooks, and service backends
- Health check:
/health - Pair with:
deku postgresordeku redis
deku deploy run express-demo --path /absolute/path/to/repo/templates/node-expressFastAPI
Section titled “FastAPI”Minimal FastAPI app with environment-driven configuration and a production container.
- Repo directory: templates/fastapi
- Builder:
dockerfile - Package manager:
pip - Best for: Python APIs and service backends
- Health check:
/health - Pair with:
deku postgres
deku deploy run fastapi-demo --path /absolute/path/to/repo/templates/fastapiSmall Bun-native API starter with a minimal Hono server and health route.
- Repo directory: templates/hono
- Builder:
dockerfile - Package manager:
bun - Best for: Lightweight APIs and webhook services
- Health check:
/health - Pair with:
deku postgresordeku redis
deku deploy run hono-demo --path /absolute/path/to/repo/templates/honoVite React
Section titled “Vite React”React single-page app built with Vite and Bun, then served from Nginx.
- Repo directory: templates/vite-react
- Builder:
dockerfile - Package manager:
bun - Best for: Frontend-only apps and dashboards backed by another API
- Health check:
/health - Pair with: Another Deku app or external API
deku deploy run vite-demo --path /absolute/path/to/repo/templates/vite-reactNixpacks Starters
Section titled “Nixpacks Starters”Django
Section titled “Django”Django starter that defaults to SQLite for the first deploy and can switch to a managed database later.
- Repo directory: templates/django
- Builder:
nixpacks - Package manager:
pip - Best for: Traditional server-rendered apps and admin-heavy backends
- Health check:
/health - Pair with:
deku postgreswhen you outgrow SQLite
deku deploy run django-demo --path /absolute/path/to/repo/templates/djangoClean SSR-capable Nuxt starter with an explicit production start command.
- Repo directory: templates/nuxt
- Builder:
nixpacks - Package manager:
bun - Best for: Vue SSR apps and content-rich product applications
- Health check:
/api/health - Pair with: Managed services through runtime config and env vars
deku deploy run nuxt-demo --path /absolute/path/to/repo/templates/nuxtManaged Service Pairings
Section titled “Managed Service Pairings”- Django: Default SQLite; pair with
deku postgreswhen you want a managed relational database - Laravel: Pair with
deku postgres,deku mysql, ordeku redisas the app grows - FastAPI: Pair with
deku postgreswhen you need persistent data - Hono: Pair with
deku postgresordeku rediswhen you need persistence - Node Express: Pair with
deku postgresordeku redisfor stateful workloads - Next.js and Nuxt: Add Deku-managed services through framework-standard environment variables as needed
- Vite React: Static by default; pair it with another Deku app when you need an API
- Astro: Static by default; no backing service required
Selection Notes
Section titled “Selection Notes”- The Laravel starter intentionally keeps a lightweight local overlay and bootstraps the official Laravel skeleton during the Docker build.
- These templates do not bundle sidecars. Use Deku-managed services instead.
- Bun is enabled in the templates where it improves install and build speed without adding runtime ambiguity:
astro,nuxt,hono, andvite-react.
Typical Flow
Section titled “Typical Flow”deku apps create my-appdeku deploy run my-app --path /absolute/path/to/repo/templates/node-expressdeku deploy list my-appdeku logs my-app -n 100