chiwaa 0.1.14 → 0.1.16

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 (3) hide show
  1. package/README.md +11 -3
  2. package/bin/chiwaa.js +15 -8
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,12 +1,20 @@
1
1
  # chiwaa
2
2
 
3
- [chiwaa.kr](https://chiwaa.kr)에 정적 사이트를 내 컴퓨터에서 바로 올리는 명령 도구입니다.
3
+ [chiwaa.kr](https://chiwaa.kr) — Vercel 처럼 쓰는 국내 배포 서비스의 CLI 입니다. 정적 사이트·프레임워크 빌드·서버 함수(`api/*.js`)·사이트 DB·파일 저장을 원화 정액으로.
4
4
 
5
5
  ```bash
6
- npx chiwaa deploy
6
+ npx chiwaa deploy # 운영
7
+ npx chiwaa deploy --preview # 미리보기 주소
7
8
  ```
8
9
 
9
- Claude Code·Codex·Cursor 에게 「chiwaa 에 올려 줘. 방법은 https://chiwaa.kr/llms.txt」라고 말하면 AI 가 알아서 합니다.
10
+ | Vercel | chiwaa |
11
+ |---|---|
12
+ | `vercel` / `vercel --prod` | `npx chiwaa deploy --preview` / `npx chiwaa deploy` |
13
+ | `vercel env add` | `npx chiwaa env set` |
14
+ | `vercel logs` · `vercel rollback` | `npx chiwaa logs` · `npx chiwaa rollback` |
15
+ | `vercel domains add` | `npx chiwaa domains add` |
16
+
17
+ AI 에이전트(Claude Code·Codex·Cursor)는 https://chiwaa.kr/llms.txt 를 읽고 배포합니다. CI 에서는 환경변수 `CHIWAA_TOKEN`.
10
18
 
11
19
  처음이면 브라우저에서 로그인을 승인하고 사이트 이름을 정합니다. 끝나면 `<이름>.chiwaa.com` 주소가 나옵니다.
12
20
  `package.json`에 `build`가 있으면 먼저 빌드하고 결과 폴더를 올립니다.
package/bin/chiwaa.js CHANGED
@@ -327,8 +327,9 @@ function checkNext(dir) {
327
327
  const server = nextServerFeatures(dir);
328
328
  if (server.length) {
329
329
  const shown = server.slice(0, 4).join(", ") + (server.length > 4 ? ` 등 ${server.length}곳` : "");
330
- fail(`이 Next.js 앱은 서버에서 돌아가는 기능을 씁니다(${shown}). chiwaa 는 화면 파일(HTML·JS)을 올리는 곳이라 이대로는 열리지 않습니다.\n` +
331
- `AI 에게 「이 Next.js 앱을 chiwaa 에 올릴 수 있게 output: 'export' 정적 사이트로 바꾸고, API·middleware 같은 서버 기능은 맨 위 api/ 폴더의 chiwaa 서버 함수로 옮겨 줘. ${AI_GUIDE}」라고 말해 보세요.`);
330
+ fail(`이 Next.js 앱은 서버에서 돌아가는 기능을 씁니다(${shown}). CLI 로는 아직 서버 코드를 올릴 수 없습니다.\n` +
331
+ `· 그대로 돌리려면: 깃허브 저장소를 chiwaa.kr 에 연결하세요. 서버 기능이 있는 Next.js 를 컨테이너로 실행합니다(https://chiwaa.kr/help).\n` +
332
+ `· CLI 로 올리려면: AI 에게 「이 Next.js 앱을 output: 'export' 정적 사이트로 바꾸고, 서버 기능은 맨 위 api/ 폴더의 chiwaa 서버 함수로 옮겨 줘. ${AI_GUIDE}」라고 말해 보세요.`);
332
333
  }
333
334
  }
334
335
 
@@ -462,7 +463,7 @@ function agentSection(name) {
462
463
 
463
464
  - 배포: \`npx chiwaa deploy -y\` — 끝나면 주소가 나온다. 잘못 올렸으면 \`npx chiwaa rollback\`.
464
465
  - 이 폴더는 \`.chiwaa.json\` 으로 사이트가 정해져 있다. 다른 이름(--name)으로 올리지 않는다.
465
- - 정적 사이트만 된다(HTML·CSS·JS, Vite·React·Vue·Astro·Next export 빌드). PHP·Express 같은 서버 코드는 안 된다.
466
+ - CLI 로는 정적 사이트만 된다(HTML·CSS·JS, Vite·React·Vue·Astro·Next export 빌드) + 서버 함수(api/). Next.js SSR·Express·Dockerfile 같은 서버 코드는 깃허브 저장소를 연결하면 컨테이너로 돈다. PHP 는 안 된다.
466
467
  - 글 저장(문의·방명록·게시판)은 사이트 DB: \`npx chiwaa db on\` → \`npx chiwaa db create <표> --read public|owner --write public|owner\`.
467
468
  - 문의·신청서처럼 개인정보가 든 표는 반드시 \`--read owner\`. 사이트에서 안 읽힌다고 public 으로 바꾸지 않는다.
468
469
  - 방문자 글은 화면에 \`textContent\` 로만 넣는다. 비밀번호는 \`<input type="password">\` 로 받는다.
@@ -1002,11 +1003,17 @@ async function whoami() {
1002
1003
  console.log(`${r.data.user} · ${r.data.plan_name} 요금제 · 사이트 ${r.data.sites}/${r.data.sites_limit}`);
1003
1004
  }
1004
1005
 
1005
- function logout() {
1006
- try {
1007
- fs.unlinkSync(CONF_FILE);
1008
- } catch {}
1009
- console.log("로그아웃했습니다.");
1006
+ // 이 컴퓨터의 로그인 토큰을 서버에서도 지운다(파일만 지우면 토큰이 서버에 살아 있으므로)
1007
+ async function logout() {
1008
+ fs.rmSync(PENDING_FILE, { force: true });
1009
+ const saved = (readJSON(CONF_FILE) || {}).token;
1010
+ if (saved) {
1011
+ const r = await api("POST", "/api/v1/logout", { headers: { Authorization: `Bearer ${saved}` }, auth: false }).catch(() => null);
1012
+ if (!r || (r.status !== 200 && r.status !== 401)) console.log(c.dim("서버의 토큰은 지우지 못했습니다. https://chiwaa.kr/tokens 에서 지워 주세요."));
1013
+ fs.rmSync(CONF_FILE, { force: true });
1014
+ }
1015
+ console.log(saved ? "로그아웃했습니다(서버의 토큰도 지움)." : "이 컴퓨터에는 로그인 정보가 없습니다.");
1016
+ if (process.env.CHIWAA_TOKEN) console.log(c.dim("환경변수 CHIWAA_TOKEN 의 토큰은 그대로입니다. 지우려면 https://chiwaa.kr/tokens"));
1010
1017
  }
1011
1018
 
1012
1019
  const HELP = `chiwaa ${VERSION} — chiwaa.kr 에 사이트를 바로 올립니다
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chiwaa",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "description": "chiwaa.kr 에 사이트를 터미널에서 바로 올리는 도구",
5
5
  "bin": {
6
6
  "chiwaa": "bin/chiwaa.js"