# Accounts Manager 轻量化账号管理平台 ## 技术栈 - **运行时**: Node.js (v18+) - **语言**: TypeScript - **Web框架**: Fastify - **数据库**: PostgreSQL (v14+) - **ORM**: Drizzle ORM - **数据校验**: Zod ## 快速开始 ### 1. 安装依赖 ```bash npm install ``` ### 2. 配置环境变量 复制环境变量模板并配置: ```bash cp .env.example .env ``` 编辑 `.env` 文件配置数据库连接: ```env DATABASE_URL=postgresql://username:password@localhost:5432/accounts_db PORT=3000 NODE_ENV=development LOCK_TIMEOUT_MINUTES=5 ``` ### 3. 数据库设置 运行数据库迁移: ```bash npm run db:generate npm run db:migrate ``` ### 4. 启动服务 开发模式: ```bash npm run dev ``` 生产模式: ```bash npm run build npm start ``` ## API 文档 ### 脚本专用 API **Base URL**: `/s/v1/{ownerId}` #### 1. 获取账号 - **GET** `/s/v1/{ownerId}/acquire?platform={platform}&count={count}` - 获取可用账号并锁定 #### 2. 更新账号状态 - **GET** `/s/v1/{ownerId}/update/{accountId}/{newStatus}?notes={notes}` - 更新指定账号状态 #### 3. 上传账号 - **POST** `/s/v1/{ownerId}/upload` - 批量创建或更新账号 ### 前端管理 API **Base URL**: `/web/v1` #### 1. 获取账号列表 - **POST** `/web/v1/accounts/list` - 支持复杂查询、分页、排序 #### 2. 批量删除账号 - **POST** `/web/v1/accounts/delete-batch` #### 3. 批量更新账号 - **POST** `/web/v1/accounts/update-batch` #### 4. 统计概览 - **GET** `/web/v1/stats/overview` ### 健康检查 - **GET** `/health` ## 数据库命令 ```bash # 生成迁移文件 npm run db:generate # 运行迁移 npm run db:migrate # 打开数据库管理界面 npm run db:studio ``` ## 项目结构 ``` src/ ├── api/v1/ │ ├── script/ # 脚本API │ └── web/ # 前端API ├── core/ # 业务逻辑 ├── db/ # 数据库配置 ├── jobs/ # 后台任务 ├── lib/ # 工具函数 ├── types/ # 类型定义 ├── config.ts # 配置 └── index.ts # 入口文件 ``` ## 特性 - **单表设计**: 简化数据模型 - **OwnerID认证**: 基于URL的身份验证 - **自动锁定管理**: 防止并发冲突 - **后台清理任务**: 自动释放超时锁定 - **统一响应格式**: 标准化API响应 - **类型安全**: 完整的TypeScript支持