@kood/claude-code 0.1.6 → 0.1.7

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 (75) hide show
  1. package/dist/index.js +21 -243
  2. package/package.json +1 -1
  3. package/templates/hono/CLAUDE.md +10 -6
  4. package/templates/hono/docs/deployment/index.md +5 -0
  5. package/templates/hono/docs/library/hono/index.md +6 -0
  6. package/templates/hono/docs/library/prisma/index.md +3 -0
  7. package/templates/npx/CLAUDE.md +8 -2
  8. package/templates/tanstack-start/CLAUDE.md +103 -255
  9. package/templates/tanstack-start/docs/deployment/cloudflare.md +37 -424
  10. package/templates/tanstack-start/docs/deployment/index.md +57 -286
  11. package/templates/tanstack-start/docs/deployment/nitro.md +36 -318
  12. package/templates/tanstack-start/docs/deployment/railway.md +40 -409
  13. package/templates/tanstack-start/docs/deployment/vercel.md +43 -465
  14. package/templates/tanstack-start/docs/design/accessibility.md +56 -326
  15. package/templates/tanstack-start/docs/design/color.md +37 -179
  16. package/templates/tanstack-start/docs/design/components.md +77 -311
  17. package/templates/tanstack-start/docs/design/index.md +24 -87
  18. package/templates/tanstack-start/docs/design/safe-area.md +51 -250
  19. package/templates/tanstack-start/docs/design/spacing.md +57 -276
  20. package/templates/tanstack-start/docs/design/tailwind-setup.md +45 -359
  21. package/templates/tanstack-start/docs/design/typography.md +40 -284
  22. package/templates/tanstack-start/docs/library/better-auth/2fa.md +27 -115
  23. package/templates/tanstack-start/docs/library/better-auth/advanced.md +22 -105
  24. package/templates/tanstack-start/docs/library/better-auth/index.md +17 -66
  25. package/templates/tanstack-start/docs/library/better-auth/plugins.md +11 -88
  26. package/templates/tanstack-start/docs/library/better-auth/session.md +12 -92
  27. package/templates/tanstack-start/docs/library/better-auth/setup.md +9 -91
  28. package/templates/tanstack-start/docs/library/prisma/cloudflare-d1.md +30 -358
  29. package/templates/tanstack-start/docs/library/prisma/config.md +27 -327
  30. package/templates/tanstack-start/docs/library/prisma/crud.md +46 -174
  31. package/templates/tanstack-start/docs/library/prisma/index.md +23 -113
  32. package/templates/tanstack-start/docs/library/prisma/relations.md +31 -153
  33. package/templates/tanstack-start/docs/library/prisma/schema.md +40 -217
  34. package/templates/tanstack-start/docs/library/prisma/setup.md +12 -112
  35. package/templates/tanstack-start/docs/library/prisma/transactions.md +20 -110
  36. package/templates/tanstack-start/docs/library/tanstack-query/index.md +12 -99
  37. package/templates/tanstack-start/docs/library/tanstack-query/invalidation.md +28 -107
  38. package/templates/tanstack-start/docs/library/tanstack-query/optimistic-updates.md +44 -146
  39. package/templates/tanstack-start/docs/library/tanstack-query/setup.md +11 -70
  40. package/templates/tanstack-start/docs/library/tanstack-query/use-mutation.md +33 -127
  41. package/templates/tanstack-start/docs/library/tanstack-query/use-query.md +49 -149
  42. package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +19 -112
  43. package/templates/tanstack-start/docs/library/tanstack-start/index.md +33 -80
  44. package/templates/tanstack-start/docs/library/tanstack-start/middleware.md +28 -106
  45. package/templates/tanstack-start/docs/library/tanstack-start/routing.md +21 -118
  46. package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +34 -246
  47. package/templates/tanstack-start/docs/library/tanstack-start/setup.md +6 -39
  48. package/templates/tanstack-start/docs/library/zod/basic-types.md +33 -145
  49. package/templates/tanstack-start/docs/library/zod/complex-types.md +32 -156
  50. package/templates/tanstack-start/docs/library/zod/index.md +22 -150
  51. package/templates/tanstack-start/docs/library/zod/transforms.md +20 -129
  52. package/templates/tanstack-start/docs/library/zod/validation.md +39 -155
  53. package/templates/hono/docs/commands/git.md +0 -145
  54. package/templates/hono/docs/mcp/context7.md +0 -106
  55. package/templates/hono/docs/mcp/index.md +0 -176
  56. package/templates/hono/docs/mcp/sequential-thinking.md +0 -101
  57. package/templates/hono/docs/mcp/serena.md +0 -269
  58. package/templates/hono/docs/mcp/sgrep.md +0 -105
  59. package/templates/hono/docs/skills/gemini-review/SKILL.md +0 -220
  60. package/templates/hono/docs/skills/gemini-review/references/checklists.md +0 -136
  61. package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +0 -303
  62. package/templates/npx/docs/commands/git.md +0 -145
  63. package/templates/npx/docs/mcp/index.md +0 -60
  64. package/templates/npx/docs/skills/gemini-review/SKILL.md +0 -220
  65. package/templates/npx/docs/skills/gemini-review/references/checklists.md +0 -134
  66. package/templates/npx/docs/skills/gemini-review/references/prompt-templates.md +0 -301
  67. package/templates/tanstack-start/docs/commands/git.md +0 -145
  68. package/templates/tanstack-start/docs/mcp/context7.md +0 -204
  69. package/templates/tanstack-start/docs/mcp/index.md +0 -177
  70. package/templates/tanstack-start/docs/mcp/sequential-thinking.md +0 -180
  71. package/templates/tanstack-start/docs/mcp/serena.md +0 -269
  72. package/templates/tanstack-start/docs/mcp/sgrep.md +0 -174
  73. package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +0 -220
  74. package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +0 -144
  75. package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +0 -292
@@ -1,13 +1,6 @@
1
1
  # Railway 배포
2
2
 
3
- > **상위 문서**: [배포](./index.md)
4
- > **Version**: Nitro 3.x
5
-
6
- Railway는 Node.js 서버를 간편하게 배포할 수 있는 플랫폼입니다.
7
-
8
- ---
9
-
10
- ## 🚀 Quick Reference (복사용)
3
+ ## Quick Reference
11
4
 
12
5
  ```typescript
13
6
  // nitro.config.ts
@@ -20,184 +13,55 @@ export default defineNitroConfig({
20
13
  ```
21
14
 
22
15
  ```json
23
- // package.json scripts
16
+ // package.json
24
17
  {
25
18
  "scripts": {
26
19
  "build": "vite build && tsc --noEmit",
27
20
  "start": "node .output/server/index.mjs"
28
- }
21
+ },
22
+ "engines": { "node": ">=20.0.0" }
29
23
  }
30
24
  ```
31
25
 
32
26
  ```bash
33
- # Railway CLI 배포
34
- railway login
35
- railway init
36
- railway up
37
- ```
38
-
39
- ---
40
-
41
- ## Nitro 설정
42
-
43
- ### nitro.config.ts
44
-
45
- ```typescript
46
- // nitro.config.ts
47
- import { defineNitroConfig } from 'nitro/config'
48
-
49
- export default defineNitroConfig({
50
- // Node.js 서버 preset
51
- preset: 'node',
52
-
53
- // 호환성 날짜 (Nitro v3 필수)
54
- compatibilityDate: '2024-09-19',
55
- })
56
- ```
57
-
58
- ---
59
-
60
- ## Vite 설정
61
-
62
- ```typescript
63
- // vite.config.ts
64
- import { defineConfig } from 'vite'
65
- import { tanstackStart } from '@tanstack/react-start/plugin/vite'
66
- import { nitro } from 'nitro/vite'
67
- import viteReact from '@vitejs/plugin-react'
68
-
69
- export default defineConfig({
70
- plugins: [
71
- tanstackStart(),
72
- nitro(),
73
- viteReact(),
74
- ],
75
- })
76
- ```
77
-
78
- ---
79
-
80
- ## package.json 설정
81
-
82
- ```json
83
- {
84
- "name": "tanstack-start-app",
85
- "type": "module",
86
- "scripts": {
87
- "dev": "vite dev",
88
- "build": "vite build && tsc --noEmit",
89
- "start": "node .output/server/index.mjs",
90
- "preview": "vite preview"
91
- },
92
- "engines": {
93
- "node": ">=20.0.0"
94
- }
95
- }
27
+ railway login && railway init && railway up
96
28
  ```
97
29
 
98
30
  ---
99
31
 
100
32
  ## Railway 설정
101
33
 
102
- ### railway.json
103
-
104
34
  ```json
35
+ // railway.json
105
36
  {
106
- "$schema": "https://railway.app/railway.schema.json",
107
- "build": {
108
- "builder": "NIXPACKS",
109
- "buildCommand": "yarn install && yarn build"
110
- },
37
+ "build": { "builder": "NIXPACKS", "buildCommand": "yarn install && yarn build" },
111
38
  "deploy": {
112
39
  "startCommand": "node .output/server/index.mjs",
113
40
  "healthcheckPath": "/health",
114
- "healthcheckTimeout": 300,
115
- "restartPolicyType": "ON_FAILURE",
116
- "restartPolicyMaxRetries": 3
41
+ "restartPolicyType": "ON_FAILURE"
117
42
  }
118
43
  }
119
44
  ```
120
45
 
121
- ### railway.toml (선택)
122
-
123
- ```toml
124
- # railway.toml
125
- [build]
126
- builder = "nixpacks"
127
- buildCommand = "yarn install && yarn build"
128
-
129
- [deploy]
130
- startCommand = "node .output/server/index.mjs"
131
- healthcheckPath = "/health"
132
- healthcheckTimeout = 300
133
- restartPolicyType = "ON_FAILURE"
134
- restartPolicyMaxRetries = 3
135
- ```
136
-
137
- ### nixpacks.toml (선택)
138
-
139
- ```toml
140
- [phases.setup]
141
- nixPkgs = ["nodejs_20"]
142
-
143
- [phases.install]
144
- cmds = ["yarn install"]
145
-
146
- [phases.build]
147
- cmds = ["yarn build"]
148
-
149
- [start]
150
- cmd = "node .output/server/index.mjs"
151
- ```
152
-
153
46
  ---
154
47
 
155
48
  ## 배포 방법
156
49
 
157
- ### 방법 1: GitHub 연동 (권장)
158
-
159
- 1. **Railway 프로젝트 생성**
160
- - [Railway 대시보드](https://railway.app) 접속
161
- - "New Project" → "Deploy from GitHub repo" 선택
162
- - 저장소 연결
163
-
164
- 2. **자동 감지**
165
- - Railway가 자동으로 Node.js 프로젝트 감지
166
- - `package.json`의 `build`, `start` 스크립트 사용
167
-
168
- 3. **환경 변수 설정**
169
- - Railway 대시보드에서 Variables 탭 선택
170
- - 필요한 환경 변수 추가
171
-
172
- ### 방법 2: Railway CLI
50
+ ### GitHub 연동 (권장)
51
+ 1. Railway 대시보드 → "Deploy from GitHub repo"
52
+ 2. 자동으로 `build`, `start` 스크립트 사용
173
53
 
54
+ ### CLI
174
55
  ```bash
175
- # Railway CLI 설치
176
56
  npm install -g @railway/cli
177
-
178
- # 로그인
179
57
  railway login
180
-
181
- # 프로젝트 초기화
182
58
  railway init
183
-
184
- # 배포
185
59
  railway up
186
-
187
- # 환경 변수 설정
188
60
  railway variables set DATABASE_URL="postgresql://..."
189
- railway variables set API_SECRET="your-secret"
190
-
191
- # 로그 확인
192
- railway logs
193
61
  ```
194
62
 
195
- ### 방법 3: Docker 배포
196
-
197
- Railway는 Dockerfile을 자동으로 감지합니다.
198
-
63
+ ### Docker
199
64
  ```dockerfile
200
- # Dockerfile
201
65
  FROM node:20-alpine AS builder
202
66
  WORKDIR /app
203
67
  COPY package.json yarn.lock ./
@@ -209,7 +73,6 @@ FROM node:20-alpine
209
73
  WORKDIR /app
210
74
  COPY --from=builder /app/.output ./.output
211
75
  ENV PORT=3000 NODE_ENV=production
212
- EXPOSE 3000
213
76
  CMD ["node", ".output/server/index.mjs"]
214
77
  ```
215
78
 
@@ -217,300 +80,68 @@ CMD ["node", ".output/server/index.mjs"]
217
80
 
218
81
  ## 환경변수
219
82
 
220
- ### Railway 대시보드에서 설정
221
-
222
- ```
223
- DATABASE_URL=postgresql://user:pass@host:5432/db
224
- API_SECRET=your-secret-key
225
- NODE_ENV=production
226
- ```
227
-
228
- ### 코드에서 사용
229
-
230
- ```typescript
231
- // server/api/health.ts
232
- import { defineHandler } from 'nitro/h3'
233
-
234
- export default defineHandler(() => {
235
- return {
236
- status: 'ok',
237
- environment: process.env.NODE_ENV,
238
- // Railway 자동 제공 변수
239
- railway: {
240
- environment: process.env.RAILWAY_ENVIRONMENT,
241
- service: process.env.RAILWAY_SERVICE_NAME,
242
- },
243
- }
244
- })
245
- ```
246
-
247
- ### Railway 자동 제공 변수
248
-
249
83
  | 변수 | 설명 |
250
84
  |------|------|
251
- | `PORT` | 서버 포트 (자동 할당) |
252
- | `RAILWAY_ENVIRONMENT` | 환경 (production, staging 등) |
85
+ | `PORT` | 서버 포트 (자동) |
86
+ | `RAILWAY_ENVIRONMENT` | production/staging |
253
87
  | `RAILWAY_SERVICE_NAME` | 서비스 이름 |
254
- | `RAILWAY_PROJECT_ID` | 프로젝트 ID |
255
- | `RAILWAY_DEPLOYMENT_ID` | 배포 ID |
256
88
 
257
89
  ---
258
90
 
259
- ## 데이터베이스 연동
260
-
261
- ### PostgreSQL 추가
91
+ ## 데이터베이스
262
92
 
263
- 1. Railway 대시보드에서 "New" → "Database" → "PostgreSQL" 선택
264
- 2. 자동으로 `DATABASE_URL` 환경 변수 연결
265
-
266
- ```typescript
267
- // server/lib/db.ts
268
- import { PrismaClient } from '@prisma/client'
269
-
270
- // Railway의 DATABASE_URL 자동 사용
271
- export const prisma = new PrismaClient()
272
- ```
273
-
274
- ### Redis 추가
275
-
276
- 1. Railway 대시보드에서 "New" → "Database" → "Redis" 선택
277
- 2. `REDIS_URL` 환경 변수 자동 연결
278
-
279
- ```typescript
280
- // server/lib/redis.ts
281
- import { createClient } from 'redis'
282
-
283
- const client = createClient({
284
- url: process.env.REDIS_URL,
285
- })
286
-
287
- export default client
93
+ ```bash
94
+ # Railway 대시보드: New Database → PostgreSQL/Redis
95
+ # DATABASE_URL, REDIS_URL 자동 연결
288
96
  ```
289
97
 
290
98
  ---
291
99
 
292
- ## 도메인 설정
293
-
294
- ### 자동 도메인
295
-
296
- Railway는 자동으로 도메인을 생성합니다:
297
- - `your-app-production.up.railway.app`
298
-
299
- ### 커스텀 도메인
300
-
301
- 1. Railway 대시보드 → Settings → Domains
302
- 2. "Add Custom Domain" 클릭
303
- 3. DNS 설정:
304
- ```
305
- CNAME your-domain.com → your-app-production.up.railway.app
306
- ```
307
-
308
- ---
309
-
310
100
  ## 헬스체크
311
101
 
312
- ### 헬스체크 엔드포인트
313
-
314
102
  ```typescript
315
103
  // server/api/health.ts
316
- import { defineHandler } from 'nitro/h3'
317
-
318
- export default defineHandler(() => {
319
- return {
320
- status: 'ok',
321
- timestamp: new Date().toISOString(),
322
- }
323
- })
324
- ```
325
-
326
- ### railway.json 헬스체크 설정
327
-
328
- ```json
329
- {
330
- "deploy": {
331
- "healthcheckPath": "/api/health",
332
- "healthcheckTimeout": 300
333
- }
334
- }
104
+ export default defineHandler(() => ({
105
+ status: 'ok',
106
+ timestamp: new Date().toISOString(),
107
+ }))
335
108
  ```
336
109
 
337
110
  ---
338
111
 
339
- ## CI/CD 설정
340
-
341
- ### GitHub Actions
112
+ ## CI/CD
342
113
 
343
114
  ```yaml
344
115
  # .github/workflows/railway.yml
345
- name: Deploy to Railway
346
-
347
- on:
348
- push:
349
- branches: [main]
350
-
351
- jobs:
352
- deploy:
353
- runs-on: ubuntu-latest
354
- steps:
355
- - uses: actions/checkout@v4
356
-
357
- - name: Install Railway CLI
358
- run: npm install -g @railway/cli
359
-
360
- - name: Deploy
361
- run: railway up
362
- env:
363
- RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
364
- ```
365
-
366
- ### 환경별 배포
367
-
368
- ```yaml
369
- # .github/workflows/railway-env.yml
370
- name: Deploy to Railway (Multi-Environment)
371
-
372
- on:
373
- push:
374
- branches:
375
- - main
376
- - staging
377
-
378
- jobs:
379
- deploy:
380
- runs-on: ubuntu-latest
381
- steps:
382
- - uses: actions/checkout@v4
383
-
384
- - name: Install Railway CLI
385
- run: npm install -g @railway/cli
386
-
387
- - name: Deploy to Production
388
- if: github.ref == 'refs/heads/main'
389
- run: railway up --environment production
390
- env:
391
- RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
392
-
393
- - name: Deploy to Staging
394
- if: github.ref == 'refs/heads/staging'
395
- run: railway up --environment staging
396
- env:
397
- RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
116
+ - run: npm install -g @railway/cli
117
+ - run: railway up
118
+ env:
119
+ RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
398
120
  ```
399
121
 
400
122
  ---
401
123
 
402
124
  ## 모니터링
403
125
 
404
- ### 로그 확인
405
-
406
126
  ```bash
407
- # CLI로 로그 확인
408
- railway logs
409
-
410
- # 실시간 로그
411
- railway logs -f
412
-
413
- # 특정 서비스 로그
414
- railway logs --service my-service
127
+ railway logs # 로그 확인
128
+ railway logs -f # 실시간 로그
129
+ railway status # 서비스 상태
130
+ railway variables # 환경변수 확인
415
131
  ```
416
132
 
417
- ### 메트릭 확인
418
-
419
- Railway 대시보드에서 확인 가능:
420
- - CPU 사용량
421
- - 메모리 사용량
422
- - 네트워크 트래픽
423
- - 요청 수
424
-
425
- ---
426
-
427
- ## 비용 최적화
428
-
429
- ### Hobby Plan 활용
430
-
431
- ```toml
432
- # railway.toml
433
- [deploy]
434
- # 유휴 시 슬립 (Hobby Plan)
435
- sleepAfterInactivity = 300 # 5분 후 슬립
436
- ```
437
-
438
- ### 리소스 제한
439
-
440
- Railway 대시보드에서 설정:
441
- - Memory Limit: 512MB (시작점)
442
- - Replicas: 1 (시작점)
443
-
444
133
  ---
445
134
 
446
135
  ## 트러블슈팅
447
136
 
448
- ### 일반적인 문제
449
-
450
- | 문제 | 원인 | 해결 |
451
- |------|------|------|
452
- | 빌드 실패 | 의존성 오류 | `yarn.lock` 커밋 확인 |
453
- | 포트 바인딩 실패 | 하드코딩된 포트 | `process.env.PORT` 사용 |
454
- | 메모리 초과 | 메모리 누수 | 리소스 제한 증가 또는 코드 최적화 |
455
- | 헬스체크 실패 | 엔드포인트 없음 | `/health` 엔드포인트 추가 |
456
-
457
- ### 디버깅
458
-
459
- ```bash
460
- # 로컬에서 Railway 환경 시뮬레이션
461
- railway run yarn dev
462
-
463
- # 환경 변수 확인
464
- railway variables
465
-
466
- # 서비스 상태 확인
467
- railway status
468
- ```
469
-
470
- ### 포트 바인딩
471
-
472
- Railway는 `PORT` 환경변수를 자동 설정합니다:
137
+ | 문제 | 해결 |
138
+ |------|------|
139
+ | 빌드 실패 | `yarn.lock` 커밋 확인 |
140
+ | 포트 바인딩 | `process.env.PORT` 사용 |
141
+ | 메모리 초과 | 리소스 제한 증가 |
142
+ | 헬스체크 실패 | `/health` 엔드포인트 추가 |
473
143
 
474
144
  ```typescript
475
- // ❌ 잘못된
476
- const port = 3000
477
-
478
- // ✅ 올바른 예
479
- const port = process.env.PORT || 3000
480
- ```
481
-
482
- ### 메모리 설정
483
-
484
- ```json
485
- // package.json
486
- {
487
- "scripts": {
488
- "start": "node --max-old-space-size=512 .output/server/index.mjs"
489
- }
490
- }
145
+ // ❌ const port = 3000
146
+ // ✅ const port = process.env.PORT || 3000
491
147
  ```
492
-
493
- ---
494
-
495
- ## 프로젝트 구조
496
-
497
- ```
498
- my-app/
499
- ├── src/
500
- │ └── routes/
501
- ├── server/
502
- │ └── api/
503
- ├── nitro.config.ts
504
- ├── vite.config.ts
505
- ├── package.json
506
- └── railway.json
507
- ```
508
-
509
- ---
510
-
511
- ## 참고 자료
512
-
513
- - [TanStack Start Hosting](https://tanstack.com/start/latest/docs/framework/react/hosting)
514
- - [Railway 공식 문서](https://docs.railway.app)
515
- - [Railway CLI](https://docs.railway.app/reference/cli-api)
516
- - [Nitro Node Preset](https://nitro.build/deploy/providers/node)