Belajar HonoJS - Deployment: Cloudflare Workers, Deno, Bun & Node
Episode 19 of 21

Belajar HonoJS - Deployment: Cloudflare Workers, Deno, Bun & Node

Deploy Hono ke berbagai platform: Cloudflare Workers dengan Wrangler, Deno Deploy dengan deployctl, Bun runtime dengan standalone binary, Node.js dengan @hono/node-server, dan AWS Lambda/Vercel Edge.

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

Setelah di episode 18 kita memahami project structure, pada episode ini kita akan memahami deployment — keunggulan terbesar Hono: satu kode bisa di-deploy ke berbagai platform tanpa perubahan.

Deploy dengan Wrangler

Deploy ke Cloudflare Workers
npx wrangler deploy

Bindings

Menggunakan bindings di Cloudflare
interface Bindings {
  DB: D1Database
  MY_KV: KVNamespace
  MY_R2: R2Bucket
  ASSETS: Fetcher
}
 
const app = new Hono<{ Bindings: Bindings }>()
 
app.get('/data', async (c) => {
  // D1 database
  const users = await c.env.DB.prepare('SELECT * FROM users').all()
 
  // KV cache
  const cached = await c.env.MY_KV.get('data')
 
  // R2 storage
  const file = await c.env.MY_R2.get('document.pdf')
 
  return c.json({ users, cached, hasFile: !!file })
})

Workers Assets

wrangler.toml: Workers Assets
[assets]
directory = "public"
binding = "ASSETS"

Serve static files + API di satu Worker.

Deno Deploy

Deploy dengan deployctl

Install deployctl
deno install -gAr deployctl
 
deployctl deploy --project=my-api src/index.ts

Zero-config deployment ke edge dengan Deno Deploy.

Bun Runtime

Standalone Binary

Build standalone binary
bun build --compile src/index.ts --outfile dist/server

Menghasilkan binary standalone yang bisa dijalankan tanpa runtime.

Docker

Docker untuk Bun
FROM oven/bun:1 AS base
WORKDIR /app
 
FROM base AS deps
COPY package.json bun.lock ./
RUN bun install --frozen-lockfile
 
FROM base AS build
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN bun build --compile src/index.ts --outfile dist/server
 
FROM oven/bun:1-slim AS production
WORKDIR /app
COPY --from=build /app/dist/server .
EXPOSE 3000
CMD ["./server"]

Node.js

@hono/node-server

Install Node.js adapter
bun add @hono/node-server
Node.js server
import { Hono } from 'hono'
import { serve } from '@hono/node-server'
 
const app = new Hono()
  .get('/', (c) => c.text('Hello from Node.js!'))
 
serve({ fetch: app.fetch, port: 3000 })

AWS Lambda / Vercel Edge

Export Handler

Handler untuk serverless
export default app

Vercel

vercel.json
{
  "buildCommand": "bun run build",
  "outputDirectory": "dist",
  "framework": null
}

Hono app auto-detected oleh Vercel.

Tip

Cloudflare Workers adalah target deployment utama Hono — zero-config, 300+ edge locations, dan bindings untuk D1, KV, R2, dan Durable Objects. Mulai dari sini, lalu expand ke platform lain jika dibutuhkan.

Penutup

Pada episode 19 ini, kalian telah memahami berbagai opsi deployment untuk Hono — dari Cloudflare Workers hingga Node.js.

Inti yang harus dibawa pulang:

  • Cloudflare Workers: wrangler deploy, bindings, Workers Assets.
  • Deno Deploy: deployctl deploy, zero-config.
  • Bun: bun build --compile untuk standalone binary.
  • Node.js: @hono/node-server adapter.
  • AWS Lambda/Vercel Edge: export default app.

Di episode 20 selanjutnya kita akan menutup series dengan production checklist dan best practice — environment variables, logging, error handling, health check, dan CI/CD pipeline. Sampai jumpa di episode 20!

Belajar HonoJS - Deployment: Cloudflare Workers, Deno, Bun & Node | Belajar HonoJS