open-index/open-npm huggingface dataset:
npm package: @minij/cli
Description: minij 一键建站方案 - 本地触发端
Latest version: 0.0.4

# @minij/cli

minij 一键建站方案的本地触发端，负责本地项目初始化、模板替换，并协调 `minij-orchestrator-server` 完成 GitLab 仓库创建和 CI/CD 变量注入。

> **注意：需在minij 608 内网中使用。**
> orchestrator 服务固定部署在 `http://192.168.50.41:8888`，不在内网无法连接。

---

## 安装

```bash
npm install -g @minij/cli
# 或
pnpm add -g @minij/cli
```

## 前置要求

- Node.js >= 18
- pnpm
- Git
- SSH 公钥已配置到 `git.minij.com`
- 处于minij 608 内网环境

---

## 命令

### minij create \<name\>

一键创建项目：克隆模板 → 替换项目名 → 创建 GitLab 仓库 → 注入 CI/CD 变量 → 初始化 git 并推送。

```bash
minij create my-project
# 或指定 Node 端口（跳过交互提示）
minij create my-project --port 3002
```

**选项**

| 选项 | 说明 |
|------|------|
| `-p, --port <port>` | Node 服务端口，范围 3000-3100，默认 3001 |

**执行流程**

1. 从 `git@git.minij.com:dataverse/minij-bi-admin-template.git` 克隆模板
2. 删除 `.git` 目录
3. 全局替换模板中的 `minij-bi-admin-template` 为项目名
4. 写入 `backend/.env` 的 `PORT` 值
5. 调用 orchestrator `POST /api/create-repo` 创建 GitLab 私有仓库
6. 调用 orchestrator `POST /api/setup-ci-variables` 注入 CI/CD 变量
7. `git init → commit → push -u origin main`

**完成后输出**

```
✓ 项目 my-project 创建完成！

目录: /path/to/my-project
远程仓库: git@git.minij.com:dataverse/my-project.git
Node 端口: 3002

访问地址（CI 部署完成后）：
https://dataverse.minij.com/DataVerse/my-project/
```

---

### minij init

在当前目录生成 `CLAUDE.md`（AI 助手执行规则），并检查 SSH 到 GitLab 的连通���。

```bash
minij init
```

SSH 检查失败时会提示配置步骤：

```bash
ssh-keygen -t ed25519 -C "your_email@example.com"
cat ~/.ssh/id_ed25519.pub
# 将公钥添加到 git.minij.com → Settings → SSH Keys
```

---

### minij server-deploy \<name\>

调用 orchestrator `POST /api/setup-router` 为项目分配端口并配置 Nginx 路由。

```bash
minij server-deploy my-project
```

> 当前 DataVerse 体系前端通过 CI/CD 直接部署，通常不需要单独调用此命令。

---

## 完整工作流

```bash
# 1. 检查环境（首次使用）
minij init

# 2. 一键创建项目
minij create my-project --port 3002

# 3. 进入项目目录，开始开发
cd my-project

# 4. 推送代码触发 CI/CD 自动部署
git add .
git commit -m "feat: ..."
git push

# 5. 部署完成后访问
# https://dataverse.minij.com/DataVerse/my-project/
```

---

## 本地开发测试

### 1. 安装依赖并构建

```bash
pnpm install
pnpm build
```

### 2. 本地挂载 CLI

在 `minij-cli` 目录执行：

```bash
pnpm link --global
```

挂载完成后，可直接在终端使用：

```bash
minij --version
minij init
```

### 3. 测试创建项目全流程

> 需确保当前机器已连接minij 608 内网，且 `minij-orchestrator-server` 已部署在 `http://192.168.50.41:8888`。

```bash
minij create test-demo --port 3002
```

该命令会验证以下完整链路：

1. 克隆模板仓库
2. 替换项目名
3. 调用 orchestrator 创建 GitLab 仓库
4. 注入 GitLab CI/CD 变量
5. 初始化 git 并推送到远程仓库

### 4. 修改代码后重新测试

每次修改 CLI 源码后，重新执行：

```bash
pnpm build
```

然后再次运行：

```bash
minij create another-demo --port 3003
```

### 5. 如需取消全局挂载

```bash
pnpm unlink --global @minij/cli
```

---

## 配置

CLI 默认连接 `http://192.168.50.41:8888`，无需手动配置。

如需覆盖，可编辑 `~/.minij/config.json`：

```json
{
  "ORCHESTRATOR_URL": "http://192.168.50.41:8888"
}
```

---

## 项目名规范

- 只能包含字母、数字、中划线、下划线
- 示例：`my-project`、`data_dashboard`、`bi2025`