chiwaa 0.1.9 → 0.1.11
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/README.md +108 -21
- package/bin/chiwaa.js +23 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,40 +1,127 @@
|
|
|
1
1
|
# chiwaa
|
|
2
2
|
|
|
3
|
-
[chiwaa.kr](https://chiwaa.kr)
|
|
3
|
+
[chiwaa.kr](https://chiwaa.kr)에 정적 사이트를 내 컴퓨터에서 바로 올리는 명령 도구입니다.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
npx chiwaa deploy
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
`package.json` 에 `build` 스크립트가 있으면 먼저 빌드하고(Vite·React·Vue·Astro·Next export 등) 결과 폴더를 올립니다.
|
|
9
|
+
Claude Code·Codex·Cursor 에게 「chiwaa 에 올려 줘. 방법은 https://chiwaa.kr/llms.txt」라고 말하면 AI 가 알아서 합니다.
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
처음이면 브라우저에서 로그인을 승인하고 사이트 이름을 정합니다. 끝나면 `<이름>.chiwaa.com` 주소가 나옵니다.
|
|
12
|
+
`package.json`에 `build`가 있으면 먼저 빌드하고 결과 폴더를 올립니다.
|
|
13
|
+
|
|
14
|
+
## 하는 일별 명령
|
|
15
|
+
|
|
16
|
+
사이트 명령은 한 번 올린 폴더에서 실행하세요. `[폴더]`처럼 적은 부분은 생략할 수 있고, `<표>`처럼 적은 부분은 쓸 이름으로 바꿉니다.
|
|
17
|
+
|
|
18
|
+
### 올리기·되돌리기
|
|
19
|
+
|
|
20
|
+
| 명령 | 하는 일 |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `npx chiwaa deploy [폴더]` | 지금 폴더나 지정 폴더를 빌드해서 올립니다. |
|
|
23
|
+
| `npx chiwaa versions` | 남아 있는 버전을 봅니다. |
|
|
24
|
+
| `npx chiwaa rollback [버전]` | 바로 전 버전이나 지정 버전으로 되돌립니다. |
|
|
25
|
+
|
|
26
|
+
`deploy`에는 `--name <이름>`(사이트 이름), `--dir <폴더>`(빌드 결과 폴더), `--no-build`(빌드 생략), `-y` 또는 `--yes`(질문 없이 진행)를 붙일 수 있습니다. 빌드 설정이 있는 프로젝트는 `--no-build`를 써도 결과 폴더를 올립니다.
|
|
27
|
+
|
|
28
|
+
### 미리보기·잠금
|
|
29
|
+
|
|
30
|
+
| 명령 | 하는 일 |
|
|
31
|
+
|---|---|
|
|
32
|
+
| `npx chiwaa deploy --preview` | 운영 주소는 두고 미리보기 주소에 올립니다. |
|
|
33
|
+
| `npx chiwaa lock` | 비밀번호로 사이트를 잠급니다. 비밀번호는 실행 뒤 입력합니다. |
|
|
34
|
+
| `npx chiwaa unlock` | 사이트 잠금을 풉니다. |
|
|
35
|
+
|
|
36
|
+
미리보기 주소는 `<이름>--preview.chiwaa.com`입니다. 확인한 뒤 `--preview` 없이 다시 올리세요. 미리보기도 실제 사이트의 DB를 함께 씁니다. 잠금은 미리보기와 붙인 도메인에도 적용됩니다.
|
|
37
|
+
|
|
38
|
+
### DB·게시판
|
|
39
|
+
|
|
40
|
+
| 명령 | 하는 일 |
|
|
41
|
+
|---|---|
|
|
42
|
+
| `npx chiwaa db` | 글 저장 상태와 표 목록을 봅니다. db status도 같습니다. |
|
|
43
|
+
| `npx chiwaa db on` | 글 저장 기능을 켭니다. |
|
|
44
|
+
| `npx chiwaa db create <표>` | 표를 만듭니다. --read와 --write로 읽기·쓰기 권한을 정합니다. |
|
|
45
|
+
| `npx chiwaa db rules <표>` | --read와 --write로 읽기·쓰기 권한을 바꿉니다. |
|
|
46
|
+
| `npx chiwaa db rows <표>` | 저장된 글을 봅니다. --page 2로 다음 쪽을 봅니다. |
|
|
47
|
+
| `npx chiwaa db code <표>` | 사이트에 붙일 코드를 다시 봅니다. |
|
|
48
|
+
|
|
49
|
+
권한은 `public`(누구나), `owner`(주인만) 중에서 정합니다. 예: `npx chiwaa db create inquiries --read owner --write public`. 개인정보가 있는 문의 표는 반드시 `--read owner`로 만드세요.
|
|
50
|
+
|
|
51
|
+
### 사진(files)
|
|
52
|
+
|
|
53
|
+
| 명령 | 하는 일 |
|
|
54
|
+
|---|---|
|
|
55
|
+
| `npx chiwaa files` | 사진 목록과 용량을 봅니다. files ls도 같고 --page 2로 다음 쪽을 봅니다. |
|
|
56
|
+
| `npx chiwaa files put <사진> [사진…]` | 주인 사진을 올리고 주소를 받습니다. |
|
|
57
|
+
| `npx chiwaa files on` | 방문자가 사진을 올릴 수 있게 합니다. |
|
|
58
|
+
| `npx chiwaa files off` | 방문자의 사진 올리기를 끕니다. |
|
|
59
|
+
|
|
60
|
+
사진은 먼저 `npx chiwaa db on`으로 글 저장 기능을 켠 뒤 씁니다. DB 끄기·표·글·사진 지우기는 명령이 없으므로 chiwaa.kr 사이트 화면의 「DB」에서 합니다.
|
|
61
|
+
|
|
62
|
+
### 서버 함수(env·logs, api/ 폴더)
|
|
63
|
+
|
|
64
|
+
| 명령 | 하는 일 |
|
|
65
|
+
|---|---|
|
|
66
|
+
| `npx chiwaa env` | 서버 함수 비밀값의 이름을 봅니다. env ls도 같습니다. |
|
|
67
|
+
| `npx chiwaa env set <이름>` | 비밀값을 넣습니다. 값은 실행 뒤 화면에 보이지 않게 입력합니다. |
|
|
68
|
+
| `npx chiwaa env rm <이름>` | 서버 함수 비밀값을 지웁니다. |
|
|
69
|
+
| `npx chiwaa logs` | 서버 함수 기록을 봅니다. --lines 100은 최근 100건, --preview는 미리보기 기록입니다. |
|
|
70
|
+
|
|
71
|
+
사이트 폴더 맨 위 `api/`에 함수 파일을 두면 `npx chiwaa deploy`로 함께 올라갑니다. 비밀값은 코드에 적지 말고 `env set`으로 넣으세요.
|
|
72
|
+
|
|
73
|
+
### 도메인
|
|
13
74
|
|
|
14
75
|
| 명령 | 하는 일 |
|
|
15
76
|
|---|---|
|
|
16
|
-
| `chiwaa
|
|
17
|
-
| `chiwaa
|
|
18
|
-
| `chiwaa
|
|
19
|
-
| `chiwaa
|
|
20
|
-
| `chiwaa
|
|
21
|
-
| `chiwaa
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
|
28
|
-
|
|
29
|
-
| `chiwaa
|
|
30
|
-
| `chiwaa
|
|
77
|
+
| `npx chiwaa domains` | 연결 상태와 내 x-y.net 도메인을 봅니다. domains status도 같습니다. |
|
|
78
|
+
| `npx chiwaa domains search <이름>` | 살 수 있는 도메인과 1년 요금을 봅니다. |
|
|
79
|
+
| `npx chiwaa domains buy <도메인>` | x-y.net 신청·결제 화면을 엽니다. 결제는 직접 합니다. |
|
|
80
|
+
| `npx chiwaa domains add <도메인>` | 도메인을 붙입니다. 다른 곳에서 샀으면 연결 설정을 안내합니다. |
|
|
81
|
+
| `npx chiwaa domains check` | 도메인이 연결됐는지 확인합니다. |
|
|
82
|
+
| `npx chiwaa domains remove -y` | 도메인 연결을 끊습니다. 도메인 자체는 남습니다. |
|
|
83
|
+
|
|
84
|
+
`domains` 대신 `domain`도 됩니다. 다른 곳에서 산 도메인 연결은 유료 요금제에서 됩니다.
|
|
85
|
+
|
|
86
|
+
### 통계·사용량·계정
|
|
87
|
+
|
|
88
|
+
| 명령 | 하는 일 |
|
|
89
|
+
|---|---|
|
|
90
|
+
| `npx chiwaa stats` | 최근 7일 방문자 통계를 봅니다. --days 30으로 기간을 바꿉니다. |
|
|
91
|
+
| `npx chiwaa usage` | 요금제와 이번 달 전송량·저장 한도를 봅니다. |
|
|
92
|
+
| `npx chiwaa list` | 내 사이트 목록을 봅니다. ls도 같습니다. |
|
|
93
|
+
| `npx chiwaa open` | 관리 화면을 엽니다. --site를 붙이면 사이트를 엽니다. |
|
|
94
|
+
| `npx chiwaa login` | 브라우저에서 승인해 로그인합니다. --token <토큰>도 됩니다. |
|
|
95
|
+
| `npx chiwaa whoami` | 로그인한 계정과 요금제를 봅니다. |
|
|
96
|
+
| `npx chiwaa logout` | 이 컴퓨터에 저장된 로그인 정보를 지웁니다. |
|
|
97
|
+
| `npx chiwaa agent` | AI 도구용 안내를 만들거나 새로 고칩니다. 처음 올릴 때 자동으로 만듭니다. |
|
|
98
|
+
| `npx chiwaa help` | 명령 도움말을 봅니다. --help와 -h도 같습니다. |
|
|
99
|
+
| `npx chiwaa --version` | 설치된 명령 도구의 버전을 봅니다. -v도 같습니다. |
|
|
100
|
+
|
|
101
|
+
`login`과 `open`에 `--no-browser`를 붙이면 브라우저를 자동으로 열지 않습니다.
|
|
102
|
+
|
|
103
|
+
## Vercel에서 옮겨 오신다면
|
|
104
|
+
|
|
105
|
+
chiwaa는 기본으로 운영 주소에 올립니다. 미리보기로 올릴 때만 `--preview`를 붙이세요.
|
|
106
|
+
|
|
107
|
+
| Vercel 명령 | chiwaa 명령 |
|
|
108
|
+
|---|---|
|
|
109
|
+
| `vercel deploy` | `npx chiwaa deploy` |
|
|
110
|
+
| 운영: `vercel --prod`<br>미리보기: `vercel` | 운영: `npx chiwaa deploy`<br>미리보기: `npx chiwaa deploy --preview` |
|
|
111
|
+
| `vercel env add <이름>` | `npx chiwaa env set <이름>` |
|
|
112
|
+
| `vercel logs` | `npx chiwaa logs` |
|
|
113
|
+
| `vercel rollback` | `npx chiwaa rollback` |
|
|
114
|
+
| `vercel domains add <도메인>` | `npx chiwaa domains add <도메인>` |
|
|
115
|
+
| `vercel login` | `npx chiwaa login` |
|
|
31
116
|
|
|
32
117
|
## AI 도구(Claude Code·Codex·Cursor)에서
|
|
33
118
|
|
|
34
|
-
묻는 것 없이 끝까지 가려면 `-y
|
|
119
|
+
묻는 것 없이 끝까지 가려면 `-y`를 붙입니다. 로그인은 `CHIWAA_TOKEN` 환경변수로도 됩니다.
|
|
35
120
|
|
|
36
121
|
```bash
|
|
37
122
|
npx chiwaa deploy -y --name my-site
|
|
38
123
|
```
|
|
39
124
|
|
|
40
|
-
폴더에 생기는 `.chiwaa.json
|
|
125
|
+
폴더에 생기는 `.chiwaa.json`은 어느 사이트에 올릴지 적어 둔 파일입니다(비밀값 없음).
|
|
126
|
+
다음부터는 그 파일을 보고 같은 사이트에 올립니다. 로그인 토큰은 출력하거나 파일·저장소에 적지 마세요.
|
|
127
|
+
자세한 안내는 [AI용 안내](https://chiwaa.kr/llms.txt)를 읽어 주세요.
|
package/bin/chiwaa.js
CHANGED
|
@@ -436,7 +436,21 @@ async function rollback(args) {
|
|
|
436
436
|
// 데이터가 지워지는 일(끄기·표 지우기·글 지우기)은 일부러 없다 — chiwaa.kr 사이트 화면에서만 한다.
|
|
437
437
|
const RULE_KO = { public: "누구나", owner: "나만(chiwaa.kr 화면)" };
|
|
438
438
|
|
|
439
|
-
|
|
439
|
+
// 쓰기 「나만」 표(주문·결제 등)는 방문자 폼 대신 서버 함수 예시를 준다 — 공개 폼을 붙이거나 권한을 「누구나」로 바꾸면 안 된다
|
|
440
|
+
function ownerSnippet(table, read) {
|
|
441
|
+
return `<!-- 「${table}」 표는 쓰기가 「나만」이라 방문자 폼으로 저장하지 않습니다. 서버 함수(api/)에서 씁니다. -->
|
|
442
|
+
// api/${table}-add.js
|
|
443
|
+
export default async function (request, env) {
|
|
444
|
+
// 금액·상태처럼 방문자가 정하면 안 되는 값은 여기(서버)에서 정한다
|
|
445
|
+
const row = await env.DB.table("${table}").add({ status: "ready" });
|
|
446
|
+
return Response.json({ id: row.id });
|
|
447
|
+
}
|
|
448
|
+
// 고치기 env.DB.table("${table}").update(id, { status: "paid" }) · 읽기 .get(id) / .list({ where: { 칸: 값 } })
|
|
449
|
+
${read === "owner" ? "// 읽기도 「나만」: 사이트에서는 못 읽고, 주인은 npx chiwaa db rows " + table + " 로 본다" : ""}`;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
function snippet(table, read, write) {
|
|
453
|
+
if (write === "owner") return ownerSnippet(table, read);
|
|
440
454
|
return `<!-- 글 보내기(저장) -->
|
|
441
455
|
<script src="/_chiwaa/data/v1/chiwaa.js"></script>
|
|
442
456
|
<form data-chiwaa-table="${table}" data-chiwaa-done="보냈습니다. 감사합니다.">
|
|
@@ -509,7 +523,7 @@ async function db(args) {
|
|
|
509
523
|
if (r.status !== 201) fail(r.data.error || "표를 만들지 못했습니다.");
|
|
510
524
|
console.log(c.green("✓"), `「${table}」 표를 만들었습니다. 읽기 ${RULE_KO[read]} · 쓰기 ${RULE_KO[write]}`);
|
|
511
525
|
console.log(c.dim("\n사이트 HTML 에 아래를 넣고 다시 deploy 하면 됩니다. 저장된 글은 npx chiwaa db rows " + table + "\n"));
|
|
512
|
-
return console.log(snippet(table));
|
|
526
|
+
return console.log(snippet(table, read, write));
|
|
513
527
|
}
|
|
514
528
|
if (sub === "rules") {
|
|
515
529
|
needTable();
|
|
@@ -537,7 +551,13 @@ async function db(args) {
|
|
|
537
551
|
if (items.length >= 20) console.log(c.dim(`다음 쪽: npx chiwaa db rows ${table} --page ${page + 1}`));
|
|
538
552
|
return;
|
|
539
553
|
}
|
|
540
|
-
if (sub === "code")
|
|
554
|
+
if (sub === "code") {
|
|
555
|
+
needTable();
|
|
556
|
+
const r = await api("GET", base);
|
|
557
|
+
const t = ((r.data && r.data.tables) || []).find((x) => x.name === table);
|
|
558
|
+
if (!t) fail(`「${table}」 표가 없습니다. 목록: npx chiwaa db`);
|
|
559
|
+
return console.log(snippet(table, t.read_rule, t.write_rule));
|
|
560
|
+
}
|
|
541
561
|
fail(`모르는 db 명령입니다: ${sub}\n 쓸 수 있는 것: status · on · create · rules · rows · code`);
|
|
542
562
|
}
|
|
543
563
|
|