Skip to content

App templates

Deku ships a local starter catalog in the repository under templates/.

These starters are local source directories shaped for Deku’s own deploy model:

  • They use Deku-supported dockerfile or railpack builders
  • They expect Deku-managed services instead of bundled sidecars
  • They stay small enough to inspect, copy, and modify directly
  • They use Bun 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.

  • Use templates/node-express when you want the smallest API starter.
  • Use templates/hono when you want the smallest Bun-native API starter.
  • Use templates/nextjs or templates/nuxt when you want an SSR-capable JavaScript app.
  • Use templates/astro when you want a static site served from a container.
  • Use templates/vite-react when you want a Bun-built frontend SPA.
  • Use templates/django, templates/laravel, or templates/fastapi when you want a framework starter that can grow into a database-backed app.

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
Terminal window
deku deploy run nextjs-demo --path /absolute/path/to/repo/templates/nextjs

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: composer at build time
  • Best for: PHP web apps and dashboard-style applications
  • Health check: /health
  • Pair with: deku postgres, deku mysql, or deku redis
Terminal window
deku deploy run laravel-demo --path /absolute/path/to/repo/templates/laravel

Static 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
Terminal window
deku deploy run astro-demo --path /absolute/path/to/repo/templates/astro

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 postgres or deku redis
Terminal window
deku deploy run express-demo --path /absolute/path/to/repo/templates/node-express

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
Terminal window
deku deploy run fastapi-demo --path /absolute/path/to/repo/templates/fastapi

Small 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 postgres or deku redis
Terminal window
deku deploy run hono-demo --path /absolute/path/to/repo/templates/hono

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
Terminal window
deku deploy run vite-demo --path /absolute/path/to/repo/templates/vite-react

Django starter that defaults to SQLite for the first deploy and can switch to a managed database later.

  • Repo directory: templates/django
  • Builder: railpack
  • Package manager: pip
  • Best for: Traditional server-rendered apps and admin-heavy backends
  • Health check: /health
  • Pair with: deku postgres when you outgrow SQLite
Terminal window
deku deploy run django-demo --path /absolute/path/to/repo/templates/django

Clean SSR-capable Nuxt starter with an explicit production start command.

  • Repo directory: templates/nuxt
  • Builder: railpack
  • 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
Terminal window
deku deploy run nuxt-demo --path /absolute/path/to/repo/templates/nuxt
  • Django: Default SQLite; pair with deku postgres when you want a managed relational database
  • Laravel: Pair with deku postgres, deku mysql, or deku redis as the app grows
  • FastAPI: Pair with deku postgres when you need persistent data
  • Hono: Pair with deku postgres or deku redis when you need persistence
  • Node Express: Pair with deku postgres or deku redis for 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
  • 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, and vite-react.
Terminal window
deku apps create my-app
deku deploy run my-app --path /absolute/path/to/repo/templates/node-express
deku deploy list my-app
deku logs my-app -n 100