@kood/claude-code 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/index.js +129 -5
  2. package/package.json +2 -2
  3. package/templates/hono/CLAUDE.md +20 -2
  4. package/templates/hono/docs/architecture/architecture.md +909 -0
  5. package/templates/hono/docs/commands/git.md +275 -0
  6. package/templates/hono/docs/deployment/cloudflare.md +527 -190
  7. package/templates/hono/docs/deployment/docker.md +514 -0
  8. package/templates/hono/docs/deployment/index.md +179 -214
  9. package/templates/hono/docs/deployment/railway.md +416 -0
  10. package/templates/hono/docs/deployment/vercel.md +567 -0
  11. package/templates/hono/docs/library/ai-sdk/index.md +427 -0
  12. package/templates/hono/docs/library/ai-sdk/openrouter.md +479 -0
  13. package/templates/hono/docs/library/ai-sdk/providers.md +468 -0
  14. package/templates/hono/docs/library/ai-sdk/streaming.md +447 -0
  15. package/templates/hono/docs/library/ai-sdk/structured-output.md +493 -0
  16. package/templates/hono/docs/library/ai-sdk/tools.md +513 -0
  17. package/templates/hono/docs/library/hono/env-setup.md +458 -0
  18. package/templates/hono/docs/library/hono/index.md +1 -3
  19. package/templates/hono/docs/library/pino/index.md +437 -0
  20. package/templates/hono/docs/library/prisma/cloudflare-d1.md +503 -0
  21. package/templates/hono/docs/library/prisma/config.md +362 -0
  22. package/templates/hono/docs/library/prisma/index.md +86 -13
  23. package/templates/hono/docs/skills/gemini-review/SKILL.md +116 -116
  24. package/templates/hono/docs/skills/gemini-review/references/checklists.md +125 -125
  25. package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +191 -191
  26. package/templates/npx/CLAUDE.md +309 -0
  27. package/templates/npx/docs/commands/git.md +275 -0
  28. package/templates/npx/docs/library/commander/index.md +164 -0
  29. package/templates/npx/docs/library/fs-extra/index.md +171 -0
  30. package/templates/npx/docs/library/prompts/index.md +253 -0
  31. package/templates/npx/docs/mcp/index.md +60 -0
  32. package/templates/npx/docs/skills/gemini-review/SKILL.md +220 -0
  33. package/templates/npx/docs/skills/gemini-review/references/checklists.md +134 -0
  34. package/templates/npx/docs/skills/gemini-review/references/prompt-templates.md +301 -0
  35. package/templates/tanstack-start/CLAUDE.md +43 -5
  36. package/templates/tanstack-start/docs/architecture/architecture.md +134 -4
  37. package/templates/tanstack-start/docs/commands/git.md +275 -0
  38. package/templates/tanstack-start/docs/deployment/cloudflare.md +223 -50
  39. package/templates/tanstack-start/docs/deployment/index.md +320 -30
  40. package/templates/tanstack-start/docs/deployment/nitro.md +195 -14
  41. package/templates/tanstack-start/docs/deployment/railway.md +302 -150
  42. package/templates/tanstack-start/docs/deployment/vercel.md +345 -75
  43. package/templates/tanstack-start/docs/guides/best-practices.md +203 -1
  44. package/templates/tanstack-start/docs/guides/env-setup.md +450 -0
  45. package/templates/tanstack-start/docs/library/ai-sdk/hooks.md +472 -0
  46. package/templates/tanstack-start/docs/library/ai-sdk/index.md +264 -0
  47. package/templates/tanstack-start/docs/library/ai-sdk/openrouter.md +371 -0
  48. package/templates/tanstack-start/docs/library/ai-sdk/providers.md +403 -0
  49. package/templates/tanstack-start/docs/library/ai-sdk/streaming.md +320 -0
  50. package/templates/tanstack-start/docs/library/ai-sdk/structured-output.md +454 -0
  51. package/templates/tanstack-start/docs/library/ai-sdk/tools.md +473 -0
  52. package/templates/tanstack-start/docs/library/pino/index.md +320 -0
  53. package/templates/tanstack-start/docs/library/prisma/cloudflare-d1.md +404 -0
  54. package/templates/tanstack-start/docs/library/prisma/config.md +377 -0
  55. package/templates/tanstack-start/docs/library/prisma/index.md +3 -5
  56. package/templates/tanstack-start/docs/library/prisma/schema.md +123 -25
  57. package/templates/tanstack-start/docs/library/prisma/setup.md +0 -7
  58. package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +80 -2
  59. package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +116 -116
  60. package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +138 -144
  61. package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +186 -187
  62. package/templates/hono/docs/git/index.md +0 -180
  63. package/templates/tanstack-start/docs/git/index.md +0 -203
@@ -0,0 +1,514 @@
1
+ # Nitro v3 - Docker 배포
2
+
3
+ > **상위 문서**: [배포 가이드](./index.md)
4
+
5
+ Docker를 사용하여 Hono + Nitro 애플리케이션을 컨테이너로 배포합니다.
6
+
7
+ ---
8
+
9
+ ## 🚀 Quick Reference (복사용)
10
+
11
+ ```dockerfile
12
+ # Dockerfile
13
+ FROM node:20-alpine AS base
14
+
15
+ FROM base AS deps
16
+ WORKDIR /app
17
+ COPY package.json yarn.lock ./
18
+ RUN yarn install --frozen-lockfile
19
+
20
+ FROM base AS builder
21
+ WORKDIR /app
22
+ COPY --from=deps /app/node_modules ./node_modules
23
+ COPY . .
24
+ RUN yarn build
25
+
26
+ FROM base AS runner
27
+ WORKDIR /app
28
+ RUN addgroup --system --gid 1001 nodejs && \
29
+ adduser --system --uid 1001 hono
30
+ COPY --from=builder --chown=hono:nodejs /app/.output ./.output
31
+ USER hono
32
+ EXPOSE 3000
33
+ ENV PORT=3000 NODE_ENV=production
34
+ CMD ["node", ".output/server/index.mjs"]
35
+ ```
36
+
37
+ ```bash
38
+ # 빌드 및 실행
39
+ docker build -t my-hono-app .
40
+ docker run -p 3000:3000 my-hono-app
41
+ ```
42
+
43
+ ---
44
+
45
+ ## Nitro 설정
46
+
47
+ ### nitro.config.ts
48
+
49
+ ```typescript
50
+ // nitro.config.ts
51
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
52
+ // Docker 배포용 Nitro 설정
53
+ // Node.js 서버로 빌드됩니다
54
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
55
+ import { defineNitroConfig } from "nitro/config";
56
+
57
+ export default defineNitroConfig({
58
+ // Node.js 서버 preset
59
+ preset: "node",
60
+
61
+ // 호환성 날짜
62
+ compatibilityDate: "2024-09-19",
63
+
64
+ // 소스 디렉토리
65
+ srcDir: "src",
66
+
67
+ // 빌드 출력
68
+ output: {
69
+ dir: ".output",
70
+ },
71
+
72
+ // Node.js 설정
73
+ node: {
74
+ // 압축 활성화
75
+ compress: true,
76
+ },
77
+ });
78
+ ```
79
+
80
+ ---
81
+
82
+ ## Dockerfile (상세)
83
+
84
+ ### 멀티스테이지 빌드
85
+
86
+ ```dockerfile
87
+ # Dockerfile
88
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
89
+ # Hono + Nitro 멀티스테이지 Docker 빌드
90
+ # 최적화된 프로덕션 이미지 생성
91
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
92
+
93
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
94
+ # Stage 1: 베이스 이미지
95
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
96
+ FROM node:20-alpine AS base
97
+
98
+ # libc6-compat: 일부 네이티브 모듈 호환성을 위해 필요
99
+ RUN apk add --no-cache libc6-compat
100
+
101
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
102
+ # Stage 2: 의존성 설치
103
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
104
+ FROM base AS deps
105
+ WORKDIR /app
106
+
107
+ # 패키지 매니저 파일 복사
108
+ COPY package.json yarn.lock ./
109
+
110
+ # yarn 의존성 설치
111
+ RUN yarn install --frozen-lockfile
112
+
113
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
114
+ # Stage 3: 빌드
115
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
116
+ FROM base AS builder
117
+ WORKDIR /app
118
+
119
+ # 의존성 복사
120
+ COPY --from=deps /app/node_modules ./node_modules
121
+
122
+ # 소스 코드 복사
123
+ COPY . .
124
+
125
+ # Nitro 빌드
126
+ RUN yarn build
127
+
128
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
129
+ # Stage 4: 프로덕션 러너
130
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
131
+ FROM base AS runner
132
+ WORKDIR /app
133
+
134
+ # 보안: 비-root 사용자 생성
135
+ RUN addgroup --system --gid 1001 nodejs && \
136
+ adduser --system --uid 1001 hono
137
+
138
+ # 빌드 결과물만 복사 (최소화된 이미지)
139
+ COPY --from=builder --chown=hono:nodejs /app/.output ./.output
140
+
141
+ # 비-root 사용자로 전환
142
+ USER hono
143
+
144
+ # 포트 설정
145
+ EXPOSE 3000
146
+
147
+ # 환경 변수
148
+ ENV PORT=3000
149
+ ENV NODE_ENV=production
150
+ ENV HOST=0.0.0.0
151
+
152
+ # 헬스체크
153
+ HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
154
+ CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1
155
+
156
+ # 서버 실행
157
+ CMD ["node", ".output/server/index.mjs"]
158
+ ```
159
+
160
+ ---
161
+
162
+ ## .dockerignore
163
+
164
+ ```dockerignore
165
+ # .dockerignore
166
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
167
+ # Docker 빌드 시 제외할 파일
168
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
169
+
170
+ # 의존성
171
+ node_modules/
172
+
173
+ # 빌드 결과물
174
+ .output/
175
+ dist/
176
+
177
+ # 환경 파일
178
+ .env
179
+ .env.*
180
+ !.env.example
181
+
182
+ # Git
183
+ .git/
184
+ .gitignore
185
+
186
+ # IDE
187
+ .vscode/
188
+ .idea/
189
+
190
+ # 테스트
191
+ coverage/
192
+ *.test.ts
193
+ *.spec.ts
194
+ __tests__/
195
+
196
+ # 문서
197
+ *.md
198
+ docs/
199
+
200
+ # Docker
201
+ Dockerfile*
202
+ docker-compose*.yml
203
+ .dockerignore
204
+
205
+ # 기타
206
+ .DS_Store
207
+ *.log
208
+ tmp/
209
+ ```
210
+
211
+ ---
212
+
213
+ ## Docker Compose
214
+
215
+ ### docker-compose.yml
216
+
217
+ ```yaml
218
+ # docker-compose.yml
219
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
220
+ # Hono + Nitro 개발/프로덕션 환경 구성
221
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
222
+
223
+ services:
224
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
225
+ # Hono 애플리케이션
226
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
227
+ app:
228
+ build:
229
+ context: .
230
+ dockerfile: Dockerfile
231
+ ports:
232
+ - "3000:3000"
233
+ environment:
234
+ - NODE_ENV=production
235
+ - DATABASE_URL=postgresql://postgres:password@db:5432/mydb
236
+ depends_on:
237
+ db:
238
+ condition: service_healthy
239
+ restart: unless-stopped
240
+ healthcheck:
241
+ test: ["CMD", "wget", "--spider", "http://localhost:3000/health"]
242
+ interval: 30s
243
+ timeout: 10s
244
+ retries: 3
245
+
246
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
247
+ # PostgreSQL 데이터베이스
248
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
249
+ db:
250
+ image: postgres:16-alpine
251
+ environment:
252
+ - POSTGRES_USER=postgres
253
+ - POSTGRES_PASSWORD=password
254
+ - POSTGRES_DB=mydb
255
+ volumes:
256
+ - postgres_data:/var/lib/postgresql/data
257
+ healthcheck:
258
+ test: ["CMD-SHELL", "pg_isready -U postgres"]
259
+ interval: 10s
260
+ timeout: 5s
261
+ retries: 5
262
+
263
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
264
+ # Redis 캐시 (선택적)
265
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
266
+ redis:
267
+ image: redis:7-alpine
268
+ ports:
269
+ - "6379:6379"
270
+ volumes:
271
+ - redis_data:/data
272
+ command: redis-server --appendonly yes
273
+
274
+ volumes:
275
+ postgres_data:
276
+ redis_data:
277
+ ```
278
+
279
+ ### 개발용 docker-compose
280
+
281
+ ```yaml
282
+ # docker-compose.dev.yml
283
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
284
+ # 개발 환경 전용 구성
285
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
286
+
287
+ services:
288
+ app:
289
+ build:
290
+ context: .
291
+ dockerfile: Dockerfile.dev
292
+ ports:
293
+ - "3000:3000"
294
+ volumes:
295
+ # 소스 코드 마운트 (Hot Reload)
296
+ - ./src:/app/src
297
+ - ./nitro.config.ts:/app/nitro.config.ts
298
+ environment:
299
+ - NODE_ENV=development
300
+ - DATABASE_URL=postgresql://postgres:password@db:5432/mydb
301
+ depends_on:
302
+ - db
303
+
304
+ db:
305
+ image: postgres:16-alpine
306
+ environment:
307
+ - POSTGRES_USER=postgres
308
+ - POSTGRES_PASSWORD=password
309
+ - POSTGRES_DB=mydb
310
+ ports:
311
+ - "5432:5432"
312
+ volumes:
313
+ - postgres_data:/var/lib/postgresql/data
314
+
315
+ volumes:
316
+ postgres_data:
317
+ ```
318
+
319
+ ### 개발용 Dockerfile
320
+
321
+ ```dockerfile
322
+ # Dockerfile.dev
323
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
324
+ # 개발 환경용 Dockerfile
325
+ # Hot Reload 지원
326
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
327
+
328
+ FROM node:20-alpine
329
+
330
+ WORKDIR /app
331
+
332
+ # 패키지 파일 복사
333
+ COPY package.json yarn.lock ./
334
+
335
+ # yarn 의존성 설치
336
+ RUN yarn install
337
+
338
+ # 소스 코드는 볼륨으로 마운트됨
339
+
340
+ EXPOSE 3000
341
+
342
+ # 개발 서버 실행
343
+ CMD ["yarn", "dev"]
344
+ ```
345
+
346
+ ---
347
+
348
+ ## 빌드 및 실행 명령어
349
+
350
+ ### 기본 명령어
351
+
352
+ ```bash
353
+ # 이미지 빌드
354
+ docker build -t my-hono-app .
355
+
356
+ # 컨테이너 실행
357
+ docker run -p 3000:3000 my-hono-app
358
+
359
+ # 환경 변수와 함께 실행
360
+ docker run -p 3000:3000 \
361
+ -e DATABASE_URL="postgresql://user:pass@host:5432/db" \
362
+ -e API_SECRET="my-secret" \
363
+ my-hono-app
364
+
365
+ # 백그라운드 실행
366
+ docker run -d --name hono-app -p 3000:3000 my-hono-app
367
+ ```
368
+
369
+ ### Docker Compose 명령어
370
+
371
+ ```bash
372
+ # 프로덕션 시작
373
+ docker compose up -d
374
+
375
+ # 개발 환경 시작
376
+ docker compose -f docker-compose.dev.yml up
377
+
378
+ # 로그 확인
379
+ docker compose logs -f app
380
+
381
+ # 컨테이너 재빌드
382
+ docker compose up -d --build
383
+
384
+ # 종료
385
+ docker compose down
386
+
387
+ # 볼륨 포함 종료 (데이터 삭제)
388
+ docker compose down -v
389
+ ```
390
+
391
+ ---
392
+
393
+ ## CI/CD 통합
394
+
395
+ ### GitHub Actions
396
+
397
+ ```yaml
398
+ # .github/workflows/docker.yml
399
+ name: Docker Build & Push
400
+
401
+ on:
402
+ push:
403
+ branches: [main]
404
+ pull_request:
405
+ branches: [main]
406
+
407
+ jobs:
408
+ build:
409
+ runs-on: ubuntu-latest
410
+
411
+ steps:
412
+ - uses: actions/checkout@v4
413
+
414
+ - name: Set up Docker Buildx
415
+ uses: docker/setup-buildx-action@v3
416
+
417
+ - name: Login to Container Registry
418
+ uses: docker/login-action@v3
419
+ with:
420
+ registry: ghcr.io
421
+ username: ${{ github.actor }}
422
+ password: ${{ secrets.GITHUB_TOKEN }}
423
+
424
+ - name: Build and Push
425
+ uses: docker/build-push-action@v5
426
+ with:
427
+ context: .
428
+ push: ${{ github.event_name != 'pull_request' }}
429
+ tags: |
430
+ ghcr.io/${{ github.repository }}:latest
431
+ ghcr.io/${{ github.repository }}:${{ github.sha }}
432
+ cache-from: type=gha
433
+ cache-to: type=gha,mode=max
434
+ ```
435
+
436
+ ---
437
+
438
+ ## 최적화 팁
439
+
440
+ ### 이미지 크기 최소화
441
+
442
+ ```dockerfile
443
+ # Alpine 기반 이미지 사용
444
+ FROM node:20-alpine
445
+
446
+ # 불필요한 파일 제외 (.dockerignore 활용)
447
+
448
+ # 프로덕션 의존성만 설치
449
+ RUN yarn install --production
450
+
451
+ # 빌드 결과물만 최종 이미지에 포함
452
+ COPY --from=builder /app/.output ./.output
453
+ ```
454
+
455
+ ### 빌드 캐시 활용
456
+
457
+ ```dockerfile
458
+ # 의존성 파일 먼저 복사 (캐시 활용)
459
+ COPY package.json yarn.lock ./
460
+ RUN yarn install --frozen-lockfile
461
+
462
+ # 소스 코드는 나중에 복사
463
+ COPY . .
464
+ RUN yarn build
465
+ ```
466
+
467
+ ### 보안 강화
468
+
469
+ ```dockerfile
470
+ # 비-root 사용자 사용
471
+ RUN adduser --system --uid 1001 hono
472
+ USER hono
473
+
474
+ # 읽기 전용 파일 시스템
475
+ # docker run --read-only my-hono-app
476
+
477
+ # 취약점 스캔
478
+ # docker scan my-hono-app
479
+ ```
480
+
481
+ ---
482
+
483
+ ## 문제 해결
484
+
485
+ ### 일반적인 문제
486
+
487
+ | 문제 | 원인 | 해결 |
488
+ |------|------|------|
489
+ | 포트 연결 실패 | HOST=0.0.0.0 미설정 | `ENV HOST=0.0.0.0` 추가 |
490
+ | 빌드 실패 | node_modules 누락 | .dockerignore 확인 |
491
+ | 권한 오류 | root 사용자 문제 | 비-root 사용자 사용 |
492
+ | 메모리 부족 | 이미지 크기 과다 | 멀티스테이지 빌드 사용 |
493
+
494
+ ### 디버깅
495
+
496
+ ```bash
497
+ # 컨테이너 쉘 접속
498
+ docker exec -it hono-app sh
499
+
500
+ # 로그 확인
501
+ docker logs -f hono-app
502
+
503
+ # 리소스 사용량 확인
504
+ docker stats hono-app
505
+ ```
506
+
507
+ ---
508
+
509
+ ## 관련 문서
510
+
511
+ - [배포 가이드 개요](./index.md)
512
+ - [Railway 배포](./railway.md)
513
+ - [Vercel 배포](./vercel.md)
514
+ - [Cloudflare 배포](./cloudflare.md)