@kood/claude-code 0.1.2 → 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.
- package/dist/index.js +12 -3
- package/package.json +2 -2
- package/templates/hono/CLAUDE.md +20 -2
- package/templates/hono/docs/architecture/architecture.md +909 -0
- package/templates/hono/docs/deployment/cloudflare.md +537 -190
- package/templates/hono/docs/deployment/docker.md +517 -0
- package/templates/hono/docs/deployment/index.md +181 -213
- package/templates/hono/docs/deployment/railway.md +416 -0
- package/templates/hono/docs/deployment/vercel.md +572 -0
- package/templates/hono/docs/git/git.md +285 -0
- package/templates/hono/docs/library/ai-sdk/index.md +427 -0
- package/templates/hono/docs/library/ai-sdk/openrouter.md +479 -0
- package/templates/hono/docs/library/ai-sdk/providers.md +468 -0
- package/templates/hono/docs/library/ai-sdk/streaming.md +447 -0
- package/templates/hono/docs/library/ai-sdk/structured-output.md +493 -0
- package/templates/hono/docs/library/ai-sdk/tools.md +513 -0
- package/templates/hono/docs/library/hono/env-setup.md +458 -0
- package/templates/hono/docs/library/hono/index.md +1 -0
- package/templates/hono/docs/library/pino/index.md +437 -0
- package/templates/hono/docs/library/prisma/cloudflare-d1.md +503 -0
- package/templates/hono/docs/library/prisma/config.md +362 -0
- package/templates/hono/docs/library/prisma/index.md +86 -13
- package/templates/hono/docs/skills/gemini-review/SKILL.md +116 -116
- package/templates/hono/docs/skills/gemini-review/references/checklists.md +125 -125
- package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +191 -191
- package/templates/npx/CLAUDE.md +309 -0
- package/templates/npx/docs/git/git.md +307 -0
- package/templates/npx/docs/library/commander/index.md +164 -0
- package/templates/npx/docs/library/fs-extra/index.md +171 -0
- package/templates/npx/docs/library/prompts/index.md +253 -0
- package/templates/npx/docs/mcp/index.md +60 -0
- package/templates/npx/docs/skills/gemini-review/SKILL.md +220 -0
- package/templates/npx/docs/skills/gemini-review/references/checklists.md +134 -0
- package/templates/npx/docs/skills/gemini-review/references/prompt-templates.md +301 -0
- package/templates/tanstack-start/CLAUDE.md +43 -5
- package/templates/tanstack-start/docs/architecture/architecture.md +134 -4
- package/templates/tanstack-start/docs/deployment/cloudflare.md +234 -51
- package/templates/tanstack-start/docs/deployment/index.md +322 -32
- package/templates/tanstack-start/docs/deployment/nitro.md +201 -20
- package/templates/tanstack-start/docs/deployment/railway.md +305 -153
- package/templates/tanstack-start/docs/deployment/vercel.md +353 -78
- package/templates/tanstack-start/docs/git/{index.md → git.md} +81 -7
- package/templates/tanstack-start/docs/guides/best-practices.md +203 -1
- package/templates/tanstack-start/docs/guides/env-setup.md +450 -0
- package/templates/tanstack-start/docs/library/ai-sdk/hooks.md +472 -0
- package/templates/tanstack-start/docs/library/ai-sdk/index.md +264 -0
- package/templates/tanstack-start/docs/library/ai-sdk/openrouter.md +371 -0
- package/templates/tanstack-start/docs/library/ai-sdk/providers.md +403 -0
- package/templates/tanstack-start/docs/library/ai-sdk/streaming.md +320 -0
- package/templates/tanstack-start/docs/library/ai-sdk/structured-output.md +454 -0
- package/templates/tanstack-start/docs/library/ai-sdk/tools.md +473 -0
- package/templates/tanstack-start/docs/library/pino/index.md +320 -0
- package/templates/tanstack-start/docs/library/prisma/cloudflare-d1.md +404 -0
- package/templates/tanstack-start/docs/library/prisma/config.md +377 -0
- package/templates/tanstack-start/docs/library/prisma/index.md +3 -1
- package/templates/tanstack-start/docs/library/prisma/schema.md +123 -25
- package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +80 -2
- package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +116 -116
- package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +138 -144
- package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +186 -187
- package/templates/hono/docs/git/index.md +0 -180
|
@@ -1,291 +1,259 @@
|
|
|
1
|
-
# 배포 가이드
|
|
1
|
+
# Nitro v3 배포 가이드
|
|
2
2
|
|
|
3
|
-
> Hono
|
|
3
|
+
> **Version**: Nitro 3.x | Hono 프레임워크 배포
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## 🚀 Quick Reference (복사용)
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|--------|------|
|
|
13
|
-
| **Cloudflare Workers** | 엣지 컴퓨팅, 글로벌 배포 |
|
|
14
|
-
| **Deno Deploy** | TypeScript 네이티브 |
|
|
15
|
-
| **Bun** | 빠른 실행 속도 |
|
|
16
|
-
| **Node.js** | 전통적인 서버 환경 |
|
|
17
|
-
| **AWS Lambda** | 서버리스 |
|
|
18
|
-
| **Vercel** | 프론트엔드 통합 |
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Cloudflare Workers
|
|
23
|
-
|
|
24
|
-
### 프로젝트 생성
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
npm create hono@latest my-app
|
|
28
|
-
# cloudflare-workers 템플릿 선택
|
|
29
|
-
```
|
|
9
|
+
```typescript
|
|
10
|
+
// nitro.config.ts
|
|
11
|
+
import { defineNitroConfig } from "nitro/config";
|
|
30
12
|
|
|
31
|
-
|
|
13
|
+
export default defineNitroConfig({
|
|
14
|
+
// 플랫폼별 preset 선택
|
|
15
|
+
preset: "node" | "cloudflare_module" | "cloudflare_pages" | "vercel",
|
|
32
16
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
main = "src/index.ts"
|
|
36
|
-
compatibility_date = "2024-01-01"
|
|
17
|
+
// 기본 설정
|
|
18
|
+
compatibilityDate: "2024-09-19",
|
|
37
19
|
|
|
38
|
-
|
|
39
|
-
|
|
20
|
+
// Hono 앱 엔트리포인트
|
|
21
|
+
renderer: "hono",
|
|
22
|
+
});
|
|
40
23
|
```
|
|
41
24
|
|
|
42
|
-
###
|
|
25
|
+
### CLI 명령어
|
|
43
26
|
|
|
44
27
|
```bash
|
|
45
|
-
#
|
|
46
|
-
|
|
28
|
+
# 빌드
|
|
29
|
+
npx nitro build
|
|
47
30
|
|
|
48
|
-
#
|
|
49
|
-
|
|
50
|
-
# 또는
|
|
51
|
-
npx wrangler deploy
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### 환경 변수
|
|
31
|
+
# 개발 서버
|
|
32
|
+
npx nitro dev
|
|
55
33
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
npx wrangler secret put DATABASE_URL
|
|
59
|
-
npx wrangler secret put JWT_SECRET
|
|
34
|
+
# 프리뷰 (빌드 후 로컬 실행)
|
|
35
|
+
npx nitro preview
|
|
60
36
|
```
|
|
61
37
|
|
|
62
|
-
|
|
38
|
+
---
|
|
63
39
|
|
|
64
|
-
|
|
65
|
-
DATABASE_URL=postgresql://...
|
|
66
|
-
JWT_SECRET=your-secret
|
|
67
|
-
```
|
|
40
|
+
## 문서 구조
|
|
68
41
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
push:
|
|
76
|
-
branches:
|
|
77
|
-
- main
|
|
78
|
-
|
|
79
|
-
jobs:
|
|
80
|
-
deploy:
|
|
81
|
-
runs-on: ubuntu-latest
|
|
82
|
-
steps:
|
|
83
|
-
- uses: actions/checkout@v4
|
|
84
|
-
- name: Deploy
|
|
85
|
-
uses: cloudflare/wrangler-action@v3
|
|
86
|
-
with:
|
|
87
|
-
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
|
88
|
-
```
|
|
42
|
+
| 플랫폼 | 문서 | 특징 |
|
|
43
|
+
|--------|------|------|
|
|
44
|
+
| [Docker](./docker.md) | 컨테이너 배포 | 유연한 인프라, CI/CD 통합 |
|
|
45
|
+
| [Railway](./railway.md) | PaaS 배포 | 간편한 배포, 자동 스케일링 |
|
|
46
|
+
| [Vercel](./vercel.md) | 서버리스 배포 | Edge Functions, ISR 지원 |
|
|
47
|
+
| [Cloudflare](./cloudflare.md) | Edge 배포 | 글로벌 분산, D1/KV 통합 |
|
|
89
48
|
|
|
90
49
|
---
|
|
91
50
|
|
|
92
|
-
##
|
|
51
|
+
## Nitro 설치 및 설정
|
|
93
52
|
|
|
94
|
-
###
|
|
53
|
+
### 1. 의존성 설치
|
|
95
54
|
|
|
96
55
|
```bash
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
```
|
|
56
|
+
# npm
|
|
57
|
+
npm install nitro@3
|
|
100
58
|
|
|
101
|
-
|
|
59
|
+
# yarn
|
|
60
|
+
yarn add nitro@3
|
|
102
61
|
|
|
103
|
-
|
|
104
|
-
|
|
62
|
+
# pnpm
|
|
63
|
+
pnpm add nitro@3
|
|
105
64
|
```
|
|
106
65
|
|
|
107
|
-
###
|
|
66
|
+
### 2. 기본 설정 파일
|
|
108
67
|
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
68
|
+
```typescript
|
|
69
|
+
// nitro.config.ts
|
|
70
|
+
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
71
|
+
// Nitro v3 기본 설정
|
|
72
|
+
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
73
|
+
import { defineNitroConfig } from "nitro/config";
|
|
74
|
+
|
|
75
|
+
export default defineNitroConfig({
|
|
76
|
+
// 호환성 날짜 (필수)
|
|
77
|
+
compatibilityDate: "2024-09-19",
|
|
78
|
+
|
|
79
|
+
// 소스 디렉토리
|
|
80
|
+
srcDir: "src",
|
|
81
|
+
|
|
82
|
+
// 빌드 출력 디렉토리
|
|
83
|
+
output: {
|
|
84
|
+
dir: ".output",
|
|
85
|
+
},
|
|
86
|
+
});
|
|
116
87
|
```
|
|
117
88
|
|
|
118
|
-
###
|
|
89
|
+
### 3. Hono 앱 엔트리포인트
|
|
119
90
|
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
|
|
91
|
+
```typescript
|
|
92
|
+
// src/server.ts
|
|
93
|
+
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
94
|
+
// Hono 앱 메인 엔트리포인트
|
|
95
|
+
// Nitro에서 이 파일을 서버로 사용합니다
|
|
96
|
+
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
97
|
+
import { Hono } from "hono";
|
|
98
|
+
import { logger } from "hono/logger";
|
|
99
|
+
import { cors } from "hono/cors";
|
|
100
|
+
|
|
101
|
+
// Hono 앱 생성
|
|
102
|
+
const app = new Hono();
|
|
103
|
+
|
|
104
|
+
// 미들웨어
|
|
105
|
+
app.use("*", logger());
|
|
106
|
+
app.use("*", cors());
|
|
107
|
+
|
|
108
|
+
// 라우트
|
|
109
|
+
app.get("/", (c) => {
|
|
110
|
+
return c.json({ message: "Hello from Hono + Nitro!" });
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
app.get("/health", (c) => {
|
|
114
|
+
return c.json({ status: "ok", timestamp: new Date().toISOString() });
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
// Nitro export
|
|
118
|
+
export default app;
|
|
119
|
+
```
|
|
123
120
|
|
|
124
|
-
|
|
125
|
-
COPY package.json bun.lockb ./
|
|
126
|
-
RUN bun install --frozen-lockfile
|
|
121
|
+
---
|
|
127
122
|
|
|
128
|
-
|
|
129
|
-
COPY . .
|
|
123
|
+
## 프로젝트 구조
|
|
130
124
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
125
|
+
```
|
|
126
|
+
프로젝트/
|
|
127
|
+
├── nitro.config.ts # Nitro 설정
|
|
128
|
+
├── src/
|
|
129
|
+
│ ├── server.ts # Hono 앱 엔트리포인트
|
|
130
|
+
│ ├── routes/ # API 라우트
|
|
131
|
+
│ │ ├── users.ts
|
|
132
|
+
│ │ └── posts.ts
|
|
133
|
+
│ ├── middleware/ # 커스텀 미들웨어
|
|
134
|
+
│ └── lib/ # 유틸리티
|
|
135
|
+
├── .output/ # 빌드 결과물 (자동 생성)
|
|
136
|
+
├── package.json
|
|
137
|
+
└── tsconfig.json
|
|
134
138
|
```
|
|
135
139
|
|
|
136
140
|
---
|
|
137
141
|
|
|
138
|
-
##
|
|
142
|
+
## 환경 변수 설정
|
|
139
143
|
|
|
140
|
-
###
|
|
144
|
+
### .env 파일
|
|
141
145
|
|
|
142
|
-
```
|
|
143
|
-
|
|
146
|
+
```env
|
|
147
|
+
# .env
|
|
148
|
+
DATABASE_URL=postgresql://localhost:5432/mydb
|
|
149
|
+
API_SECRET=your-secret-key
|
|
150
|
+
NODE_ENV=development
|
|
144
151
|
```
|
|
145
152
|
|
|
146
|
-
###
|
|
153
|
+
### Nitro에서 환경 변수 접근
|
|
147
154
|
|
|
148
155
|
```typescript
|
|
149
|
-
|
|
150
|
-
import
|
|
156
|
+
// src/server.ts
|
|
157
|
+
import { Hono } from "hono";
|
|
158
|
+
|
|
159
|
+
const app = new Hono();
|
|
160
|
+
|
|
161
|
+
app.get("/config", (c) => {
|
|
162
|
+
// process.env로 접근
|
|
163
|
+
const dbUrl = process.env.DATABASE_URL;
|
|
164
|
+
const nodeEnv = process.env.NODE_ENV;
|
|
151
165
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
})
|
|
166
|
+
return c.json({
|
|
167
|
+
environment: nodeEnv,
|
|
168
|
+
hasDbConnection: !!dbUrl
|
|
169
|
+
});
|
|
170
|
+
});
|
|
156
171
|
|
|
157
|
-
|
|
172
|
+
export default app;
|
|
158
173
|
```
|
|
159
174
|
|
|
160
|
-
###
|
|
175
|
+
### 런타임 설정 (nitro.config.ts)
|
|
161
176
|
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
177
|
+
```typescript
|
|
178
|
+
// nitro.config.ts
|
|
179
|
+
import { defineNitroConfig } from "nitro/config";
|
|
180
|
+
|
|
181
|
+
export default defineNitroConfig({
|
|
182
|
+
compatibilityDate: "2024-09-19",
|
|
183
|
+
|
|
184
|
+
// 런타임 환경 변수
|
|
185
|
+
runtimeConfig: {
|
|
186
|
+
// 서버 전용 (노출 안됨)
|
|
187
|
+
apiSecret: process.env.API_SECRET,
|
|
188
|
+
|
|
189
|
+
// 공개 설정
|
|
190
|
+
public: {
|
|
191
|
+
apiBase: process.env.API_BASE_URL || "/api",
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
});
|
|
170
195
|
```
|
|
171
196
|
|
|
172
197
|
---
|
|
173
198
|
|
|
174
|
-
##
|
|
199
|
+
## 빌드 및 실행
|
|
175
200
|
|
|
176
|
-
###
|
|
201
|
+
### 개발 모드
|
|
177
202
|
|
|
178
203
|
```bash
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
```
|
|
204
|
+
# 개발 서버 실행 (Hot Reload)
|
|
205
|
+
npx nitro dev
|
|
182
206
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
```json
|
|
186
|
-
{
|
|
187
|
-
"tasks": {
|
|
188
|
-
"dev": "deno run --allow-net --allow-env --watch src/index.ts",
|
|
189
|
-
"start": "deno run --allow-net --allow-env src/index.ts"
|
|
190
|
-
}
|
|
191
|
-
}
|
|
207
|
+
# 포트 지정
|
|
208
|
+
npx nitro dev --port 3001
|
|
192
209
|
```
|
|
193
210
|
|
|
194
|
-
###
|
|
211
|
+
### 프로덕션 빌드
|
|
195
212
|
|
|
196
213
|
```bash
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
---
|
|
214
|
+
# 빌드
|
|
215
|
+
npx nitro build
|
|
201
216
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
### vercel.json
|
|
205
|
-
|
|
206
|
-
```json
|
|
207
|
-
{
|
|
208
|
-
"builds": [
|
|
209
|
-
{
|
|
210
|
-
"src": "src/index.ts",
|
|
211
|
-
"use": "@vercel/node"
|
|
212
|
-
}
|
|
213
|
-
],
|
|
214
|
-
"routes": [
|
|
215
|
-
{
|
|
216
|
-
"src": "/(.*)",
|
|
217
|
-
"dest": "src/index.ts"
|
|
218
|
-
}
|
|
219
|
-
]
|
|
220
|
-
}
|
|
217
|
+
# 빌드 결과물 실행
|
|
218
|
+
node .output/server/index.mjs
|
|
221
219
|
```
|
|
222
220
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
## 환경별 설정
|
|
221
|
+
### 로컬 프리뷰
|
|
226
222
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
// types/env.d.ts
|
|
231
|
-
type Bindings = {
|
|
232
|
-
NODE_ENV: 'development' | 'production' | 'test'
|
|
233
|
-
DATABASE_URL: string
|
|
234
|
-
JWT_SECRET: string
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
// app.ts
|
|
238
|
-
const app = new Hono<{ Bindings: Bindings }>()
|
|
239
|
-
|
|
240
|
-
app.get('/', (c) => {
|
|
241
|
-
const env = c.env.NODE_ENV
|
|
242
|
-
return c.json({ env })
|
|
243
|
-
})
|
|
223
|
+
```bash
|
|
224
|
+
# 빌드 후 프로덕션 모드로 로컬 실행
|
|
225
|
+
npx nitro preview
|
|
244
226
|
```
|
|
245
227
|
|
|
246
|
-
|
|
228
|
+
---
|
|
247
229
|
|
|
248
|
-
|
|
249
|
-
const app = new Hono()
|
|
230
|
+
## Preset 선택 가이드
|
|
250
231
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
```
|
|
232
|
+
| Preset | 용도 | 장점 |
|
|
233
|
+
|--------|------|------|
|
|
234
|
+
| `node` | Node.js 서버 | 범용, Docker 호환 |
|
|
235
|
+
| `cloudflare_module` | Cloudflare Workers | Edge 배포, 낮은 지연시간 |
|
|
236
|
+
| `cloudflare_pages` | Cloudflare Pages | 정적 + 서버리스 |
|
|
237
|
+
| `vercel` | Vercel Functions | 간편한 배포, ISR |
|
|
238
|
+
| `netlify` | Netlify Functions | JAMstack 친화적 |
|
|
239
|
+
| `deno` | Deno Deploy | Deno 런타임 |
|
|
240
|
+
| `bun` | Bun 런타임 | 빠른 실행 속도 |
|
|
261
241
|
|
|
262
242
|
---
|
|
263
243
|
|
|
264
|
-
##
|
|
244
|
+
## 다음 단계
|
|
265
245
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
})
|
|
273
|
-
|
|
274
|
-
app.get('/ready', async (c) => {
|
|
275
|
-
try {
|
|
276
|
-
// DB 연결 확인
|
|
277
|
-
await prisma.$queryRaw`SELECT 1`
|
|
278
|
-
return c.json({ status: 'ready' })
|
|
279
|
-
} catch {
|
|
280
|
-
return c.json({ status: 'not ready' }, 503)
|
|
281
|
-
}
|
|
282
|
-
})
|
|
283
|
-
```
|
|
246
|
+
플랫폼별 상세 배포 가이드:
|
|
247
|
+
|
|
248
|
+
1. **[Docker 배포](./docker.md)** - 컨테이너 기반 배포
|
|
249
|
+
2. **[Railway 배포](./railway.md)** - PaaS 간편 배포
|
|
250
|
+
3. **[Vercel 배포](./vercel.md)** - 서버리스 배포
|
|
251
|
+
4. **[Cloudflare 배포](./cloudflare.md)** - Edge 배포
|
|
284
252
|
|
|
285
253
|
---
|
|
286
254
|
|
|
287
|
-
##
|
|
255
|
+
## 참고 자료
|
|
288
256
|
|
|
289
|
-
- [
|
|
290
|
-
- [
|
|
291
|
-
- [
|
|
257
|
+
- [Nitro 공식 문서](https://nitro.build)
|
|
258
|
+
- [Hono 공식 문서](https://hono.dev)
|
|
259
|
+
- [Nitro GitHub](https://github.com/nitrojs/nitro)
|