98 lines
3.4 KiB
Markdown
98 lines
3.4 KiB
Markdown
# Gemini Go Web - Node.js 版 (精简版)
|
||
|
||
Google 账号自动化管理工具,基于 Node.js + Express + Playwright 构建的 Web 版本。
|
||
|
||
## 功能
|
||
|
||
- Google 账号管理(批量导入、查看、删除)
|
||
- 自动登录 / 2FA 绑定 / 2FA 更换
|
||
- 密码修改 / 重置
|
||
- 检查 GCP (Google Cloud Platform) 限制及状态
|
||
- 提取凭证 / Captcha 登录
|
||
- 代理配置
|
||
- 截图记录操作过程
|
||
- SSE 实时日志推送
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
nodejs-app/
|
||
├── server.js # Express 服务器入口
|
||
├── src/
|
||
│ ├── core/ # 核心模块(配置、数据库、SSE)
|
||
│ ├── routes/ # API 路由
|
||
│ ├── services/ # 业务逻辑服务
|
||
│ ├── workers/ # 后台任务
|
||
│ └── utils/ # 工具函数
|
||
├── public/ # 前端静态资源
|
||
└── data/
|
||
└── screenshots/ # 操作截图(自动生成,不纳入版本控制)
|
||
```
|
||
|
||
## 环境要求
|
||
|
||
- Node.js >= 18.0.0
|
||
- pnpm(推荐)或 npm
|
||
|
||
## 安装与启动
|
||
|
||
### 方式一:手动
|
||
|
||
```bash
|
||
# 安装依赖
|
||
pnpm install
|
||
# 或
|
||
npm install
|
||
|
||
# 安装 Playwright 浏览器
|
||
npx playwright install chromium
|
||
|
||
# 启动服务
|
||
node server.js
|
||
```
|
||
|
||
启动后访问 [http://localhost:3001](http://localhost:3001)
|
||
|
||
> 端口由 `src/core/config.js` 中的 `PORT` 决定(当前为 **3001**),也可用环境变量 `PORT` 临时覆盖。
|
||
> `启动程序.bat` 会自动读取该端口并打开对应地址,修改端口时只需改 `config.js` 一处。
|
||
|
||
### 方式二:Windows 批处理
|
||
|
||
双击运行 `安装依赖.bat` 完成依赖安装,然后双击 `启动程序.bat` 启动服务。
|
||
|
||
`启动程序.bat` 会:结束占用端口的旧 node 进程 → 启动服务器(窗口标题 "Gemini Go Server",最小化)→ 等待端口就绪 → 自动打开浏览器。
|
||
若 30 秒内未就绪,会提示到 "Gemini Go Server" 窗口查看报错(该窗口在出错时不会自动关闭)。
|
||
|
||
> 浏览器自动化功能依赖本机运行的「比特浏览器」(本地接口 `127.0.0.1:54345`)。服务器本身不需要它即可启动,但执行"打开浏览器"等任务前必须先启动比特浏览器,否则日志会出现 `ECONNREFUSED 127.0.0.1:54345`。
|
||
|
||
账号导入和暂存恢复只写入数据库,不预创建比特浏览器窗口。执行登录、改密、获取凭证、打开浏览器或打开网址等浏览器任务时,系统会为当前邮箱创建或复用临时比特窗口并同步代理;单账号任务结束后立即关闭、删除窗口并清空本地浏览器编号,然后再处理下一个邮箱。
|
||
|
||
## 主要依赖
|
||
|
||
| 包 | 用途 |
|
||
|---|---|
|
||
| express | Web 服务器框架 |
|
||
| better-sqlite3 | 本地 SQLite 数据库 |
|
||
| playwright | 浏览器自动化 |
|
||
| axios | HTTP 请求 |
|
||
| otpauth | TOTP/2FA 验证码生成 |
|
||
| uuid | 唯一 ID 生成 |
|
||
|
||
## API 路由
|
||
|
||
| 路径 | 说明 |
|
||
|---|---|
|
||
| `/api/accounts` | 账号 CRUD |
|
||
| `/api/settings` | 系统设置(代理等) |
|
||
| `/api/operations` | 自动化操作执行 |
|
||
| `/screenshots/*` | 操作截图静态访问 |
|
||
|
||
## 数据存储
|
||
|
||
- 数据库:`data/accounts.db`(SQLite,不纳入版本控制)
|
||
- 截图:`data/screenshots/`(不纳入版本控制)
|
||
|
||
## 项目知识库
|
||
|
||
充值、套餐查询、退款、飞书同步、定时任务、状态机和故障经验见 [知识库总索引](./knowledge-base/00-total-index.md)。知识库只保存可复用的工程事实,不保存账号、令牌、代理凭据、卡密或运行数据。
|