feat: initial commit with accounts manager project structure
- TypeScript项目基础架构 - API路由和账户管理服务 - 数据库模式和迁移 - 基础配置文件和文档 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
135
README.md
Normal file
135
README.md
Normal file
@@ -0,0 +1,135 @@
|
||||
# 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支持
|
||||
Reference in New Issue
Block a user