@kood/claude-code 0.1.1 → 0.1.3

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 (61) hide show
  1. package/dist/index.js +81 -38
  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/deployment/cloudflare.md +537 -190
  6. package/templates/hono/docs/deployment/docker.md +517 -0
  7. package/templates/hono/docs/deployment/index.md +181 -213
  8. package/templates/hono/docs/deployment/railway.md +416 -0
  9. package/templates/hono/docs/deployment/vercel.md +572 -0
  10. package/templates/hono/docs/git/git.md +285 -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 -0
  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/git/git.md +307 -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/deployment/cloudflare.md +234 -51
  38. package/templates/tanstack-start/docs/deployment/index.md +322 -32
  39. package/templates/tanstack-start/docs/deployment/nitro.md +201 -20
  40. package/templates/tanstack-start/docs/deployment/railway.md +305 -153
  41. package/templates/tanstack-start/docs/deployment/vercel.md +353 -78
  42. package/templates/tanstack-start/docs/git/{index.md → git.md} +81 -7
  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 -1
  56. package/templates/tanstack-start/docs/library/prisma/schema.md +123 -25
  57. package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +80 -2
  58. package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +116 -116
  59. package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +138 -144
  60. package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +186 -187
  61. package/templates/hono/docs/git/index.md +0 -180
@@ -0,0 +1,416 @@
1
+ # Nitro v3 - Railway 배포
2
+
3
+ > **상위 문서**: [배포 가이드](./index.md)
4
+
5
+ Railway를 사용하여 Hono + Nitro 애플리케이션을 간편하게 배포합니다.
6
+
7
+ ---
8
+
9
+ ## 🚀 Quick Reference (복사용)
10
+
11
+ ```typescript
12
+ // nitro.config.ts
13
+ import { defineNitroConfig } from "nitro/config";
14
+
15
+ export default defineNitroConfig({
16
+ preset: "node",
17
+ compatibilityDate: "2024-09-19",
18
+ });
19
+ ```
20
+
21
+ ```json
22
+ // package.json scripts
23
+ {
24
+ "scripts": {
25
+ "build": "nitro build",
26
+ "start": "node .output/server/index.mjs"
27
+ }
28
+ }
29
+ ```
30
+
31
+ ```bash
32
+ # Railway CLI 배포
33
+ railway login
34
+ railway init
35
+ railway up
36
+ ```
37
+
38
+ ---
39
+
40
+ ## Railway 설정
41
+
42
+ ### 1. Nitro 설정
43
+
44
+ ```typescript
45
+ // nitro.config.ts
46
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
47
+ // Railway 배포용 Nitro 설정
48
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
49
+ import { defineNitroConfig } from "nitro/config";
50
+
51
+ export default defineNitroConfig({
52
+ // Node.js 서버 preset
53
+ preset: "node",
54
+
55
+ // 호환성 날짜
56
+ compatibilityDate: "2024-09-19",
57
+
58
+ // Railway는 PORT 환경 변수 자동 제공
59
+ // 별도 설정 불필요
60
+ });
61
+ ```
62
+
63
+ ### 2. package.json 설정
64
+
65
+ ```json
66
+ {
67
+ "name": "hono-nitro-app",
68
+ "type": "module",
69
+ "scripts": {
70
+ "dev": "nitro dev",
71
+ "build": "nitro build",
72
+ "start": "node .output/server/index.mjs",
73
+ "preview": "nitro preview"
74
+ },
75
+ "dependencies": {
76
+ "hono": "^4.0.0",
77
+ "nitro": "^3.0.0"
78
+ },
79
+ "devDependencies": {
80
+ "typescript": "^5.0.0"
81
+ },
82
+ "engines": {
83
+ "node": ">=20.0.0"
84
+ }
85
+ }
86
+ ```
87
+
88
+ ---
89
+
90
+ ## 배포 방법
91
+
92
+ ### 방법 1: GitHub 연동 (권장)
93
+
94
+ 1. **Railway 프로젝트 생성**
95
+ - [Railway 대시보드](https://railway.app) 접속
96
+ - "New Project" → "Deploy from GitHub repo" 선택
97
+ - 저장소 연결
98
+
99
+ 2. **자동 감지**
100
+ - Railway가 자동으로 Node.js 프로젝트 감지
101
+ - `package.json`의 `build`, `start` 스크립트 사용
102
+
103
+ 3. **환경 변수 설정**
104
+ - Railway 대시보드에서 Variables 탭 선택
105
+ - 필요한 환경 변수 추가
106
+
107
+ ### 방법 2: Railway CLI
108
+
109
+ ```bash
110
+ # Railway CLI 설치
111
+ npm install -g @railway/cli
112
+
113
+ # 로그인
114
+ railway login
115
+
116
+ # 프로젝트 초기화
117
+ railway init
118
+
119
+ # 배포
120
+ railway up
121
+
122
+ # 환경 변수 설정
123
+ railway variables set DATABASE_URL="postgresql://..."
124
+ railway variables set API_SECRET="your-secret"
125
+
126
+ # 로그 확인
127
+ railway logs
128
+ ```
129
+
130
+ ### 방법 3: Docker 배포
131
+
132
+ Railway는 Dockerfile을 자동으로 감지합니다.
133
+
134
+ ```dockerfile
135
+ # Dockerfile
136
+ FROM node:20-alpine AS builder
137
+ WORKDIR /app
138
+ COPY package.json pnpm-lock.yaml ./
139
+ RUN corepack enable pnpm && pnpm install
140
+ COPY . .
141
+ RUN pnpm build
142
+
143
+ FROM node:20-alpine
144
+ WORKDIR /app
145
+ COPY --from=builder /app/.output ./.output
146
+ ENV PORT=3000 NODE_ENV=production
147
+ EXPOSE 3000
148
+ CMD ["node", ".output/server/index.mjs"]
149
+ ```
150
+
151
+ ---
152
+
153
+ ## railway.toml 설정 (선택)
154
+
155
+ ```toml
156
+ # railway.toml
157
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
158
+ # Railway 배포 설정 (선택적)
159
+ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
160
+
161
+ [build]
162
+ # 빌드 명령어
163
+ builder = "nixpacks"
164
+ buildCommand = "pnpm install && pnpm build"
165
+
166
+ [deploy]
167
+ # 시작 명령어
168
+ startCommand = "node .output/server/index.mjs"
169
+
170
+ # 헬스체크
171
+ healthcheckPath = "/health"
172
+ healthcheckTimeout = 300
173
+
174
+ # 재시작 정책
175
+ restartPolicyType = "ON_FAILURE"
176
+ restartPolicyMaxRetries = 3
177
+ ```
178
+
179
+ ---
180
+
181
+ ## 환경 변수
182
+
183
+ ### Railway 대시보드에서 설정
184
+
185
+ ```
186
+ DATABASE_URL=postgresql://user:pass@host:5432/db
187
+ API_SECRET=your-secret-key
188
+ NODE_ENV=production
189
+ ```
190
+
191
+ ### 코드에서 사용
192
+
193
+ ```typescript
194
+ // src/server.ts
195
+ import { Hono } from "hono";
196
+
197
+ const app = new Hono();
198
+
199
+ app.get("/health", (c) => {
200
+ return c.json({
201
+ status: "ok",
202
+ environment: process.env.NODE_ENV,
203
+ // Railway 자동 제공 변수
204
+ railway: {
205
+ environment: process.env.RAILWAY_ENVIRONMENT,
206
+ service: process.env.RAILWAY_SERVICE_NAME,
207
+ },
208
+ });
209
+ });
210
+
211
+ export default app;
212
+ ```
213
+
214
+ ### Railway 자동 제공 변수
215
+
216
+ | 변수 | 설명 |
217
+ |------|------|
218
+ | `PORT` | 서버 포트 (자동 할당) |
219
+ | `RAILWAY_ENVIRONMENT` | 환경 (production, staging 등) |
220
+ | `RAILWAY_SERVICE_NAME` | 서비스 이름 |
221
+ | `RAILWAY_PROJECT_ID` | 프로젝트 ID |
222
+ | `RAILWAY_DEPLOYMENT_ID` | 배포 ID |
223
+
224
+ ---
225
+
226
+ ## 데이터베이스 연동
227
+
228
+ ### PostgreSQL 추가
229
+
230
+ 1. Railway 대시보드에서 "New" → "Database" → "PostgreSQL" 선택
231
+ 2. 자동으로 `DATABASE_URL` 환경 변수 연결
232
+
233
+ ```typescript
234
+ // src/lib/db.ts
235
+ import { PrismaClient } from "@prisma/client";
236
+
237
+ // Railway의 DATABASE_URL 자동 사용
238
+ export const prisma = new PrismaClient();
239
+ ```
240
+
241
+ ### Redis 추가
242
+
243
+ 1. Railway 대시보드에서 "New" → "Database" → "Redis" 선택
244
+ 2. `REDIS_URL` 환경 변수 자동 연결
245
+
246
+ ```typescript
247
+ // src/lib/redis.ts
248
+ import { createClient } from "redis";
249
+
250
+ const client = createClient({
251
+ url: process.env.REDIS_URL,
252
+ });
253
+
254
+ export default client;
255
+ ```
256
+
257
+ ---
258
+
259
+ ## 도메인 설정
260
+
261
+ ### 자동 도메인
262
+
263
+ Railway는 자동으로 도메인을 생성합니다:
264
+ - `your-app-production.up.railway.app`
265
+
266
+ ### 커스텀 도메인
267
+
268
+ 1. Railway 대시보드 → Settings → Domains
269
+ 2. "Add Custom Domain" 클릭
270
+ 3. DNS 설정:
271
+ ```
272
+ CNAME your-domain.com → your-app-production.up.railway.app
273
+ ```
274
+
275
+ ---
276
+
277
+ ## CI/CD 설정
278
+
279
+ ### GitHub Actions 연동
280
+
281
+ ```yaml
282
+ # .github/workflows/railway.yml
283
+ name: Deploy to Railway
284
+
285
+ on:
286
+ push:
287
+ branches: [main]
288
+
289
+ jobs:
290
+ deploy:
291
+ runs-on: ubuntu-latest
292
+ steps:
293
+ - uses: actions/checkout@v4
294
+
295
+ - name: Install Railway CLI
296
+ run: npm install -g @railway/cli
297
+
298
+ - name: Deploy
299
+ run: railway up
300
+ env:
301
+ RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
302
+ ```
303
+
304
+ ### 환경별 배포
305
+
306
+ ```yaml
307
+ # .github/workflows/railway-env.yml
308
+ name: Deploy to Railway (Multi-Environment)
309
+
310
+ on:
311
+ push:
312
+ branches:
313
+ - main
314
+ - staging
315
+
316
+ jobs:
317
+ deploy:
318
+ runs-on: ubuntu-latest
319
+ steps:
320
+ - uses: actions/checkout@v4
321
+
322
+ - name: Install Railway CLI
323
+ run: npm install -g @railway/cli
324
+
325
+ - name: Deploy to Production
326
+ if: github.ref == 'refs/heads/main'
327
+ run: railway up --environment production
328
+ env:
329
+ RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
330
+
331
+ - name: Deploy to Staging
332
+ if: github.ref == 'refs/heads/staging'
333
+ run: railway up --environment staging
334
+ env:
335
+ RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
336
+ ```
337
+
338
+ ---
339
+
340
+ ## 모니터링
341
+
342
+ ### 로그 확인
343
+
344
+ ```bash
345
+ # CLI로 로그 확인
346
+ railway logs
347
+
348
+ # 실시간 로그
349
+ railway logs -f
350
+
351
+ # 특정 서비스 로그
352
+ railway logs --service my-service
353
+ ```
354
+
355
+ ### 메트릭 확인
356
+
357
+ Railway 대시보드에서 확인 가능:
358
+ - CPU 사용량
359
+ - 메모리 사용량
360
+ - 네트워크 트래픽
361
+ - 요청 수
362
+
363
+ ---
364
+
365
+ ## 비용 최적화
366
+
367
+ ### Hobby Plan 활용
368
+
369
+ ```toml
370
+ # railway.toml
371
+ [deploy]
372
+ # 유휴 시 슬립 (Hobby Plan)
373
+ sleepAfterInactivity = 300 # 5분 후 슬립
374
+ ```
375
+
376
+ ### 리소스 제한
377
+
378
+ Railway 대시보드에서 설정:
379
+ - Memory Limit: 512MB (시작점)
380
+ - Replicas: 1 (시작점)
381
+
382
+ ---
383
+
384
+ ## 문제 해결
385
+
386
+ ### 일반적인 문제
387
+
388
+ | 문제 | 원인 | 해결 |
389
+ |------|------|------|
390
+ | 빌드 실패 | 의존성 오류 | `pnpm-lock.yaml` 커밋 확인 |
391
+ | 포트 바인딩 실패 | 하드코딩된 포트 | `process.env.PORT` 사용 |
392
+ | 메모리 초과 | 메모리 누수 | 리소스 제한 증가 또는 코드 최적화 |
393
+ | 헬스체크 실패 | 엔드포인트 없음 | `/health` 엔드포인트 추가 |
394
+
395
+ ### 디버깅
396
+
397
+ ```bash
398
+ # 로컬에서 Railway 환경 시뮬레이션
399
+ railway run pnpm dev
400
+
401
+ # 환경 변수 확인
402
+ railway variables
403
+
404
+ # 서비스 상태 확인
405
+ railway status
406
+ ```
407
+
408
+ ---
409
+
410
+ ## 관련 문서
411
+
412
+ - [배포 가이드 개요](./index.md)
413
+ - [Docker 배포](./docker.md)
414
+ - [Vercel 배포](./vercel.md)
415
+ - [Cloudflare 배포](./cloudflare.md)
416
+ - [Railway 공식 문서](https://docs.railway.app)