@cartanova/qgrid-cli 1.1.0 → 1.1.2
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 +71 -0
- package/dist/cli.js +11 -6
- package/package.json +3 -3
package/README.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# @cartanova/qgrid-cli
|
|
2
|
+
|
|
3
|
+
Qgrid 서버를 한 줄로 실행. Claude 구독 크레딧을 HTTP API로 제공하는 LLM 프록시.
|
|
4
|
+
|
|
5
|
+
## 설치
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm i -g @cartanova/qgrid-cli
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 사용법
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# DB URL로 실행
|
|
15
|
+
qgrid --db postgres://user:password@host:port/dbname
|
|
16
|
+
|
|
17
|
+
# 포트 지정
|
|
18
|
+
qgrid --db postgres://... -p 3000
|
|
19
|
+
|
|
20
|
+
# 환경변수로 DB 설정 (플래그 생략 가능)
|
|
21
|
+
export QGRID_DB_HOST=dev0.example.com
|
|
22
|
+
export QGRID_DB_PORT=5432
|
|
23
|
+
export QGRID_DB_USER=postgres
|
|
24
|
+
export QGRID_DB_PASSWORD=postgres
|
|
25
|
+
export QGRID_DB_NAME=qgrid
|
|
26
|
+
qgrid
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
서버가 뜨면 `http://localhost:44900`에서 대시보드 접속.
|
|
30
|
+
|
|
31
|
+
Ctrl+C로 종료.
|
|
32
|
+
|
|
33
|
+
## 옵션
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
qgrid [options]
|
|
37
|
+
|
|
38
|
+
--db <url> PostgreSQL 연결 URL
|
|
39
|
+
-p, --port <port> 서버 포트 (기본: 44900)
|
|
40
|
+
-V, --version 버전 출력
|
|
41
|
+
-h, --help 도움말
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## 환경변수
|
|
45
|
+
|
|
46
|
+
`--db` 플래그가 없으면 아래 환경변수에서 DB 접속 정보를 읽음:
|
|
47
|
+
|
|
48
|
+
| 변수 | 기본값 |
|
|
49
|
+
|------|--------|
|
|
50
|
+
| `QGRID_DB_HOST` | `localhost` |
|
|
51
|
+
| `QGRID_DB_PORT` | `44901` |
|
|
52
|
+
| `QGRID_DB_USER` | `postgres` |
|
|
53
|
+
| `QGRID_DB_PASSWORD` | `postgres` |
|
|
54
|
+
| `QGRID_DB_NAME` | `qgrid` |
|
|
55
|
+
|
|
56
|
+
## 사전 요구사항
|
|
57
|
+
|
|
58
|
+
- Node.js >= 20
|
|
59
|
+
- [Claude CLI](https://www.npmjs.com/package/@anthropic-ai/claude-code) — `npm i -g @anthropic-ai/claude-code`
|
|
60
|
+
- 접속 가능한 PostgreSQL
|
|
61
|
+
|
|
62
|
+
## 동작 방식
|
|
63
|
+
|
|
64
|
+
CLI는 Sonamu 기반 서버를 내장 번들로 포함하고 있음. 실행 시:
|
|
65
|
+
|
|
66
|
+
1. DB 연결 확인
|
|
67
|
+
2. Claude CLI 존재 확인
|
|
68
|
+
3. 서버 시작 (API + 대시보드 웹 UI)
|
|
69
|
+
4. 토큰별 Worker Pool 생성 (`claude -p` 프로세스)
|
|
70
|
+
|
|
71
|
+
Docker 불필요. Node.js + Claude CLI + PostgreSQL만 있으면 됨.
|
package/dist/cli.js
CHANGED
|
@@ -9,12 +9,17 @@ const program = new Command();
|
|
|
9
9
|
program.name("qgrid").version("1.1.0").description("Qgrid — LLM subscription token proxy server").option("--db <url>", "PostgreSQL connection URL (e.g. postgres://user:pw@host:port/dbname)").option("-p, --port <port>", "server port").action(async (opts) => {
|
|
10
10
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
11
11
|
if (opts.db) {
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
const m = opts.db.match(/^postgres(?:ql)?:\/\/([^:]+):(.+)@([^:]+):(\d+)\/(.+)$/);
|
|
13
|
+
if (!m) {
|
|
14
|
+
console.error("Invalid DB URL format. Expected: postgres://user:password@host:port/dbname");
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
const [, user, password, host, port, dbName] = m;
|
|
18
|
+
process.env.QGRID_DB_HOST = host;
|
|
19
|
+
process.env.QGRID_DB_PORT = port;
|
|
20
|
+
process.env.QGRID_DB_USER = user;
|
|
21
|
+
process.env.QGRID_DB_PASSWORD = password;
|
|
22
|
+
process.env.QGRID_DB_NAME = dbName;
|
|
18
23
|
}
|
|
19
24
|
if (opts.port) process.env.PORT = opts.port;
|
|
20
25
|
try {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cartanova/qgrid-cli",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/cartanova-ai/qgrid"
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
"pg": "^8.16.3",
|
|
38
38
|
"radashi": "^12.2.0",
|
|
39
39
|
"sonamu": "^0.9.2",
|
|
40
|
+
"typescript": "5.9.3",
|
|
40
41
|
"zod": "^4.3.6"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
44
|
"@types/node": "25.0.7",
|
|
44
45
|
"@types/pg": "^8.20.0",
|
|
45
|
-
"tsdown": "^0.12.9"
|
|
46
|
-
"typescript": "^5.9.3"
|
|
46
|
+
"tsdown": "^0.12.9"
|
|
47
47
|
},
|
|
48
48
|
"engines": {
|
|
49
49
|
"node": ">=20"
|