@kood/claude-code 0.1.6 → 0.1.9
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 +109 -216
- package/package.json +8 -2
- package/templates/hono/CLAUDE.md +59 -328
- package/templates/hono/docs/architecture/architecture.md +93 -747
- package/templates/hono/docs/deployment/cloudflare.md +59 -513
- package/templates/hono/docs/deployment/docker.md +41 -356
- package/templates/hono/docs/deployment/index.md +54 -190
- package/templates/hono/docs/deployment/railway.md +36 -306
- package/templates/hono/docs/deployment/vercel.md +49 -434
- package/templates/hono/docs/library/ai-sdk/index.md +53 -290
- package/templates/hono/docs/library/ai-sdk/openrouter.md +19 -387
- package/templates/hono/docs/library/ai-sdk/providers.md +28 -394
- package/templates/hono/docs/library/ai-sdk/streaming.md +52 -353
- package/templates/hono/docs/library/ai-sdk/structured-output.md +63 -395
- package/templates/hono/docs/library/ai-sdk/tools.md +62 -431
- package/templates/hono/docs/library/hono/env-setup.md +24 -313
- package/templates/hono/docs/library/hono/error-handling.md +34 -295
- package/templates/hono/docs/library/hono/index.md +29 -121
- package/templates/hono/docs/library/hono/middleware.md +21 -188
- package/templates/hono/docs/library/hono/rpc.md +40 -341
- package/templates/hono/docs/library/hono/validation.md +35 -195
- package/templates/hono/docs/library/pino/index.md +42 -333
- package/templates/hono/docs/library/prisma/cloudflare-d1.md +64 -367
- package/templates/hono/docs/library/prisma/config.md +19 -260
- package/templates/hono/docs/library/prisma/index.md +67 -320
- package/templates/hono/docs/library/zod/index.md +53 -257
- package/templates/npx/CLAUDE.md +62 -274
- package/templates/npx/docs/references/patterns.md +160 -0
- package/templates/tanstack-start/CLAUDE.md +100 -256
- package/templates/tanstack-start/docs/architecture/architecture.md +44 -589
- package/templates/tanstack-start/docs/deployment/cloudflare.md +37 -424
- package/templates/tanstack-start/docs/deployment/index.md +57 -286
- package/templates/tanstack-start/docs/deployment/nitro.md +36 -318
- package/templates/tanstack-start/docs/deployment/railway.md +40 -409
- package/templates/tanstack-start/docs/deployment/vercel.md +43 -465
- package/templates/tanstack-start/docs/design/components.md +77 -311
- package/templates/tanstack-start/docs/design/index.md +113 -69
- package/templates/tanstack-start/docs/design/safe-area.md +51 -250
- package/templates/tanstack-start/docs/design/tailwind-setup.md +45 -359
- package/templates/tanstack-start/docs/guides/conventions.md +103 -0
- package/templates/tanstack-start/docs/guides/env-setup.md +34 -340
- package/templates/tanstack-start/docs/guides/getting-started.md +22 -209
- package/templates/tanstack-start/docs/guides/hooks.md +166 -0
- package/templates/tanstack-start/docs/guides/routes.md +166 -0
- package/templates/tanstack-start/docs/guides/services.md +143 -0
- package/templates/tanstack-start/docs/library/better-auth/2fa.md +27 -115
- package/templates/tanstack-start/docs/library/better-auth/advanced.md +22 -105
- package/templates/tanstack-start/docs/library/better-auth/index.md +17 -66
- package/templates/tanstack-start/docs/library/better-auth/plugins.md +11 -88
- package/templates/tanstack-start/docs/library/better-auth/session.md +12 -92
- package/templates/tanstack-start/docs/library/better-auth/setup.md +9 -91
- package/templates/tanstack-start/docs/library/prisma/cloudflare-d1.md +30 -358
- package/templates/tanstack-start/docs/library/prisma/config.md +27 -327
- package/templates/tanstack-start/docs/library/prisma/crud.md +46 -174
- package/templates/tanstack-start/docs/library/prisma/index.md +23 -113
- package/templates/tanstack-start/docs/library/prisma/relations.md +31 -153
- package/templates/tanstack-start/docs/library/prisma/schema.md +40 -217
- package/templates/tanstack-start/docs/library/prisma/setup.md +12 -112
- package/templates/tanstack-start/docs/library/prisma/transactions.md +20 -110
- package/templates/tanstack-start/docs/library/tanstack-query/index.md +26 -97
- package/templates/tanstack-start/docs/library/tanstack-query/invalidation.md +28 -107
- package/templates/tanstack-start/docs/library/tanstack-query/optimistic-updates.md +44 -146
- package/templates/tanstack-start/docs/library/tanstack-query/use-mutation.md +33 -127
- package/templates/tanstack-start/docs/library/tanstack-query/use-query.md +49 -149
- package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +19 -112
- package/templates/tanstack-start/docs/library/tanstack-start/index.md +33 -80
- package/templates/tanstack-start/docs/library/tanstack-start/middleware.md +28 -106
- package/templates/tanstack-start/docs/library/tanstack-start/routing.md +21 -118
- package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +34 -246
- package/templates/tanstack-start/docs/library/tanstack-start/setup.md +6 -39
- package/templates/tanstack-start/docs/library/zod/complex-types.md +32 -156
- package/templates/tanstack-start/docs/library/zod/index.md +31 -144
- package/templates/tanstack-start/docs/library/zod/transforms.md +20 -129
- package/templates/tanstack-start/docs/library/zod/validation.md +39 -155
- package/templates/hono/docs/commands/git.md +0 -145
- package/templates/hono/docs/mcp/context7.md +0 -106
- package/templates/hono/docs/mcp/index.md +0 -176
- package/templates/hono/docs/mcp/sequential-thinking.md +0 -101
- package/templates/hono/docs/mcp/serena.md +0 -269
- package/templates/hono/docs/mcp/sgrep.md +0 -105
- package/templates/hono/docs/skills/gemini-review/SKILL.md +0 -220
- package/templates/hono/docs/skills/gemini-review/references/checklists.md +0 -136
- package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +0 -303
- package/templates/npx/docs/commands/git.md +0 -145
- package/templates/npx/docs/mcp/index.md +0 -60
- package/templates/npx/docs/skills/gemini-review/SKILL.md +0 -220
- package/templates/npx/docs/skills/gemini-review/references/checklists.md +0 -134
- package/templates/npx/docs/skills/gemini-review/references/prompt-templates.md +0 -301
- package/templates/tanstack-start/docs/commands/git.md +0 -145
- package/templates/tanstack-start/docs/design/accessibility.md +0 -433
- package/templates/tanstack-start/docs/design/color.md +0 -235
- package/templates/tanstack-start/docs/design/spacing.md +0 -341
- package/templates/tanstack-start/docs/design/typography.md +0 -324
- package/templates/tanstack-start/docs/guides/best-practices.md +0 -950
- package/templates/tanstack-start/docs/guides/husky-lint-staged.md +0 -303
- package/templates/tanstack-start/docs/guides/prettier.md +0 -189
- package/templates/tanstack-start/docs/guides/project-templates.md +0 -710
- package/templates/tanstack-start/docs/library/tanstack-query/setup.md +0 -107
- package/templates/tanstack-start/docs/library/zod/basic-types.md +0 -186
- package/templates/tanstack-start/docs/mcp/context7.md +0 -204
- package/templates/tanstack-start/docs/mcp/index.md +0 -177
- package/templates/tanstack-start/docs/mcp/sequential-thinking.md +0 -180
- package/templates/tanstack-start/docs/mcp/serena.md +0 -269
- package/templates/tanstack-start/docs/mcp/sgrep.md +0 -174
- package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +0 -220
- package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +0 -144
- package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +0 -292
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
# Nitro
|
|
1
|
+
# Nitro - Railway 배포
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
Railway를 사용하여 Hono + Nitro 애플리케이션을 간편하게 배포합니다.
|
|
3
|
+
> PaaS 간편 배포
|
|
6
4
|
|
|
7
5
|
---
|
|
8
6
|
|
|
9
|
-
##
|
|
7
|
+
## 설정
|
|
10
8
|
|
|
11
9
|
```typescript
|
|
12
10
|
// nitro.config.ts
|
|
@@ -19,264 +17,92 @@ export default defineNitroConfig({
|
|
|
19
17
|
```
|
|
20
18
|
|
|
21
19
|
```json
|
|
22
|
-
// package.json
|
|
20
|
+
// package.json
|
|
23
21
|
{
|
|
24
22
|
"scripts": {
|
|
25
23
|
"build": "nitro build",
|
|
26
24
|
"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
25
|
},
|
|
79
|
-
"
|
|
80
|
-
"typescript": "^5.0.0"
|
|
81
|
-
},
|
|
82
|
-
"engines": {
|
|
83
|
-
"node": ">=20.0.0"
|
|
84
|
-
}
|
|
26
|
+
"engines": { "node": ">=20.0.0" }
|
|
85
27
|
}
|
|
86
28
|
```
|
|
87
29
|
|
|
88
30
|
---
|
|
89
31
|
|
|
90
|
-
## 배포
|
|
91
|
-
|
|
92
|
-
### 방법 1: GitHub 연동 (권장)
|
|
32
|
+
## 배포
|
|
93
33
|
|
|
94
|
-
|
|
95
|
-
- [Railway 대시보드](https://railway.app) 접속
|
|
96
|
-
- "New Project" → "Deploy from GitHub repo" 선택
|
|
97
|
-
- 저장소 연결
|
|
34
|
+
### GitHub 연동 (권장)
|
|
98
35
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
- `package.json`의 `build`, `start` 스크립트 사용
|
|
36
|
+
1. [Railway 대시보드](https://railway.app) → New Project → Deploy from GitHub
|
|
37
|
+
2. 자동 빌드/배포 설정
|
|
102
38
|
|
|
103
|
-
|
|
104
|
-
- Railway 대시보드에서 Variables 탭 선택
|
|
105
|
-
- 필요한 환경 변수 추가
|
|
106
|
-
|
|
107
|
-
### 방법 2: Railway CLI
|
|
39
|
+
### CLI
|
|
108
40
|
|
|
109
41
|
```bash
|
|
110
|
-
# Railway CLI 설치
|
|
111
42
|
npm install -g @railway/cli
|
|
112
|
-
|
|
113
|
-
# 로그인
|
|
114
43
|
railway login
|
|
115
|
-
|
|
116
|
-
# 프로젝트 초기화
|
|
117
44
|
railway init
|
|
118
|
-
|
|
119
|
-
# 배포
|
|
120
45
|
railway up
|
|
121
46
|
|
|
122
|
-
# 환경 변수
|
|
47
|
+
# 환경 변수
|
|
123
48
|
railway variables set DATABASE_URL="postgresql://..."
|
|
124
|
-
railway variables set API_SECRET="your-secret"
|
|
125
|
-
|
|
126
|
-
# 로그 확인
|
|
127
49
|
railway logs
|
|
128
50
|
```
|
|
129
51
|
|
|
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 yarn.lock ./
|
|
139
|
-
RUN yarn install --frozen-lockfile
|
|
140
|
-
COPY . .
|
|
141
|
-
RUN yarn 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
52
|
---
|
|
152
53
|
|
|
153
|
-
## railway.toml
|
|
54
|
+
## railway.toml (선택)
|
|
154
55
|
|
|
155
56
|
```toml
|
|
156
|
-
# railway.toml
|
|
157
|
-
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
158
|
-
# Railway 배포 설정 (선택적)
|
|
159
|
-
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
160
|
-
|
|
161
57
|
[build]
|
|
162
|
-
# 빌드 명령어
|
|
163
|
-
builder = "nixpacks"
|
|
164
58
|
buildCommand = "yarn install && yarn build"
|
|
165
59
|
|
|
166
60
|
[deploy]
|
|
167
|
-
# 시작 명령어
|
|
168
61
|
startCommand = "node .output/server/index.mjs"
|
|
169
|
-
|
|
170
|
-
# 헬스체크
|
|
171
62
|
healthcheckPath = "/health"
|
|
172
|
-
healthcheckTimeout = 300
|
|
173
|
-
|
|
174
|
-
# 재시작 정책
|
|
175
|
-
restartPolicyType = "ON_FAILURE"
|
|
176
|
-
restartPolicyMaxRetries = 3
|
|
177
63
|
```
|
|
178
64
|
|
|
179
65
|
---
|
|
180
66
|
|
|
181
67
|
## 환경 변수
|
|
182
68
|
|
|
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
69
|
```typescript
|
|
194
|
-
// src/server.ts
|
|
195
|
-
import { Hono } from "hono";
|
|
196
|
-
|
|
197
|
-
const app = new Hono();
|
|
198
|
-
|
|
199
70
|
app.get("/health", (c) => {
|
|
200
71
|
return c.json({
|
|
201
72
|
status: "ok",
|
|
202
|
-
|
|
203
|
-
// Railway 자동 제공 변수
|
|
204
|
-
railway: {
|
|
205
|
-
environment: process.env.RAILWAY_ENVIRONMENT,
|
|
206
|
-
service: process.env.RAILWAY_SERVICE_NAME,
|
|
207
|
-
},
|
|
73
|
+
env: process.env.RAILWAY_ENVIRONMENT,
|
|
208
74
|
});
|
|
209
75
|
});
|
|
210
|
-
|
|
211
|
-
export default app;
|
|
212
76
|
```
|
|
213
77
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
|
217
|
-
|
|
218
|
-
| `
|
|
219
|
-
| `RAILWAY_ENVIRONMENT` | 환경 (production, staging 등) |
|
|
220
|
-
| `RAILWAY_SERVICE_NAME` | 서비스 이름 |
|
|
221
|
-
| `RAILWAY_PROJECT_ID` | 프로젝트 ID |
|
|
222
|
-
| `RAILWAY_DEPLOYMENT_ID` | 배포 ID |
|
|
78
|
+
| 자동 제공 변수 | 설명 |
|
|
79
|
+
|---------------|------|
|
|
80
|
+
| `PORT` | 서버 포트 |
|
|
81
|
+
| `RAILWAY_ENVIRONMENT` | 환경 |
|
|
82
|
+
| `RAILWAY_SERVICE_NAME` | 서비스명 |
|
|
223
83
|
|
|
224
84
|
---
|
|
225
85
|
|
|
226
|
-
## 데이터베이스
|
|
86
|
+
## 데이터베이스
|
|
227
87
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
1. Railway 대시보드에서 "New" → "Database" → "PostgreSQL" 선택
|
|
231
|
-
2. 자동으로 `DATABASE_URL` 환경 변수 연결
|
|
88
|
+
Railway 대시보드 → New → Database → PostgreSQL/Redis
|
|
232
89
|
|
|
233
90
|
```typescript
|
|
234
|
-
//
|
|
91
|
+
// DATABASE_URL 자동 연결
|
|
235
92
|
import { PrismaClient } from "@prisma/client";
|
|
236
|
-
|
|
237
|
-
// Railway의 DATABASE_URL 자동 사용
|
|
238
93
|
export const prisma = new PrismaClient();
|
|
239
94
|
```
|
|
240
95
|
|
|
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
96
|
---
|
|
258
97
|
|
|
259
|
-
## 도메인
|
|
260
|
-
|
|
261
|
-
### 자동 도메인
|
|
262
|
-
|
|
263
|
-
Railway는 자동으로 도메인을 생성합니다:
|
|
264
|
-
- `your-app-production.up.railway.app`
|
|
265
|
-
|
|
266
|
-
### 커스텀 도메인
|
|
98
|
+
## 도메인
|
|
267
99
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
3. DNS 설정:
|
|
271
|
-
```
|
|
272
|
-
CNAME your-domain.com → your-app-production.up.railway.app
|
|
273
|
-
```
|
|
100
|
+
- 자동: `your-app.up.railway.app`
|
|
101
|
+
- 커스텀: Settings → Domains → Add Custom Domain
|
|
274
102
|
|
|
275
103
|
---
|
|
276
104
|
|
|
277
|
-
## CI/CD
|
|
278
|
-
|
|
279
|
-
### GitHub Actions 연동
|
|
105
|
+
## CI/CD
|
|
280
106
|
|
|
281
107
|
```yaml
|
|
282
108
|
# .github/workflows/railway.yml
|
|
@@ -291,126 +117,30 @@ jobs:
|
|
|
291
117
|
runs-on: ubuntu-latest
|
|
292
118
|
steps:
|
|
293
119
|
- uses: actions/checkout@v4
|
|
294
|
-
|
|
295
|
-
-
|
|
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
|
|
120
|
+
- run: npm install -g @railway/cli
|
|
121
|
+
- run: railway up
|
|
334
122
|
env:
|
|
335
123
|
RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
|
|
336
124
|
```
|
|
337
125
|
|
|
338
126
|
---
|
|
339
127
|
|
|
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
128
|
## 문제 해결
|
|
385
129
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
|
389
|
-
|
|
390
|
-
|
|
|
391
|
-
| 포트 바인딩 실패 | 하드코딩된 포트 | `process.env.PORT` 사용 |
|
|
392
|
-
| 메모리 초과 | 메모리 누수 | 리소스 제한 증가 또는 코드 최적화 |
|
|
393
|
-
| 헬스체크 실패 | 엔드포인트 없음 | `/health` 엔드포인트 추가 |
|
|
394
|
-
|
|
395
|
-
### 디버깅
|
|
130
|
+
| 문제 | 해결 |
|
|
131
|
+
|------|------|
|
|
132
|
+
| 빌드 실패 | `yarn.lock` 커밋 확인 |
|
|
133
|
+
| 포트 오류 | `process.env.PORT` 사용 |
|
|
134
|
+
| 헬스체크 실패 | `/health` 엔드포인트 추가 |
|
|
396
135
|
|
|
397
136
|
```bash
|
|
398
|
-
|
|
399
|
-
railway
|
|
400
|
-
|
|
401
|
-
# 환경 변수 확인
|
|
402
|
-
railway variables
|
|
403
|
-
|
|
404
|
-
# 서비스 상태 확인
|
|
405
|
-
railway status
|
|
137
|
+
railway run yarn dev # 로컬 시뮬레이션
|
|
138
|
+
railway variables # 환경 변수 확인
|
|
139
|
+
railway status # 상태 확인
|
|
406
140
|
```
|
|
407
141
|
|
|
408
142
|
---
|
|
409
143
|
|
|
410
144
|
## 관련 문서
|
|
411
145
|
|
|
412
|
-
- [배포 가이드
|
|
413
|
-
- [Docker 배포](./docker.md)
|
|
414
|
-
- [Vercel 배포](./vercel.md)
|
|
415
|
-
- [Cloudflare 배포](./cloudflare.md)
|
|
416
|
-
- [Railway 공식 문서](https://docs.railway.app)
|
|
146
|
+
- [배포 가이드](./index.md)
|