This commit is contained in:
dela
2026-01-31 22:53:12 +08:00
commit bc639cf460
30 changed files with 6836 additions and 0 deletions

128
readme.md Normal file
View File

@@ -0,0 +1,128 @@
# ProxyRotator
ProxyRotator 是一个全栈应用程序,旨在管理、验证和轮换 HTTP/SOCKS 代理。它提供了一个高性能的 Go 后端用于处理代理逻辑,以及一个现代化的 React 前端用于直观的管理和监控。
## ✨ 功能特性
- **代理管理**:支持批量导入、解析多种格式的代理。
- **健康检查**:内置高性能测试器,验证代理的连通性、延迟和匿名度。
- **智能轮换**:提供策略选择器,根据评分和状态分发最佳代理。
- **现代化 UI**:基于 React 19 和 Tailwind CSS 构建的仪表盘,支持暗色模式。
- **持久化存储**:使用 PostgreSQL 存储代理数据和历史记录。
## 🛠️ 技术栈
### Backend (后端)
- **语言**: Go (1.25+)
- **数据库**: PostgreSQL
- **驱动/ORM**: pgx/v5
- **核心模块**:
- `importer`: 代理导入与解析
- `tester`: 连通性测试
- `selector`: 代理选择策略
- `store`: 数据库持久化
### Frontend (前端)
- **框架**: React 19 + Vite
- **语言**: TypeScript
- **样式**: Tailwind CSS v4
- **组件库**: Shadcn UI (基于 Radix UI)
- **图标**: Lucide React
## 🚀 快速开始
### 前置要求
- Go 1.25 或更高版本
- Node.js & pnpm
- PostgreSQL 数据库
### 1. 数据库设置
首先,创建一个 PostgreSQL 数据库(例如 `proxyrotator`)。然后运行迁移脚本初始化表结构。
```bash
# 进入后端目录
cd backend
# 确保你有 psql 客户端,或者使用你喜欢的数据库工具执行 SQL
# 默认迁移文件位于 migrations/001_init.sql
psql "postgres://username:password@localhost:5432/proxyrotator" -f migrations/001_init.sql
```
### 2. 后端设置
配置环境变量并启动 API 服务器。
```bash
cd backend
# 复制示例环境变量文件
cp envexmaple .env
# 编辑 .env 文件,填入你的数据库连接信息和其他配置
# DATABASE_URL=postgres://postgres:psw@localhost:5432/proxyrotator
# ...
# 安装依赖
go mod tidy
# 启动服务器 (注意Makefile 中的路径可能需要调整,直接使用 go run)
go run server/main.go
```
服务器默认监听在 `0.0.0.0:9987`
### 3. 前端设置
启动 Web 界面。
```bash
cd front
# 安装依赖
pnpm install
# 启动开发服务器
pnpm dev
```
访问终端中显示的地址(通常是 `http://localhost:5173`)即可进入控制台。
## ⚙️ 环境变量配置
`backend/.env` 中配置以下关键变量:
| 变量名 | 描述 | 示例 |
|--------|------|------|
| `DATABASE_URL` | PostgreSQL 连接字符串 | `postgres://user:pass@localhost:5432/db` |
| `LISTEN_ADDR` | 后端监听地址 | `0.0.0.0:9987` |
| `API_KEY` | API 访问密钥(如启用鉴权) | `your-secret-key` |
| `MAX_CONCURRENCY` | 代理测试的最大并发数 | `200` |
| `LEASE_TTL` | 代理租约/有效时间 | `60s` |
## 📂 项目结构
```
proxyrotator/
├── backend/ # Go 后端代码
│ ├── internal/ # 核心业务逻辑
│ │ ├── api/ # HTTP API 处理
│ │ ├── importer/ # 代理导入器
│ │ ├── tester/ # 代理测试器
│ │ └── store/ # 数据库操作
│ ├── migrations/ # SQL 迁移文件
│ └── server/ # 入口文件
└── front/ # React 前端代码
├── src/
│ ├── components/ # UI 组件
│ └── lib/ # 工具函数与 API 客户端
```
## 📝 开发指南
- **后端开发**: 核心逻辑位于 `backend/internal`。添加新功能时,请确保更新 `docs/developdoc.md`(如果存在)。
- **前端开发**: 组件位于 `front/src/components`。使用了 Shadcn UI 风格的组件架构。
## 📄 License
[MIT](LICENSE)