Nav apraksta

mrh fcf6d08bd0 新增 readme.md 10 mēneši atpakaļ
.vscode e2a1300758 新增 python 搜索环境变量在 vscode 10 mēneši atpakaļ
backend fcf6d08bd0 新增 readme.md 10 mēneši atpakaļ
.clinerules ce0cf2ce2f 完成单个订阅到数据库 10 mēneši atpakaļ
.clinerules-code ce0cf2ce2f 完成单个订阅到数据库 10 mēneši atpakaļ
.gitignore ce0cf2ce2f 完成单个订阅到数据库 10 mēneši atpakaļ
CONVENTIONS.md 09b8f2b3ed 完成 client 启动和随机获取代理 10 mēneši atpakaļ
README.md fcf6d08bd0 新增 readme.md 10 mēneši atpakaļ

README.md

项目概述

本项目是一个基于 FastAPI + Vue3 的代理池管理系统,主要用于通过订阅链接获取服务商提供的代理池数据,并通过 mihomo 工具启动本地代理池服务。系统支持对代理池进行增删改查操作,方便用户管理和使用代理服务器。

核心功能

1. 订阅管理

  • 用户可以通过 API 添加订阅链接。
  • 系统会自动解析订阅链接中的代理服务器信息,并将其存储到数据库中。

2. 代理池管理

  • 随机获取代理:通过 /get 接口可以随机获取一个代理,支持过滤仅返回支持 HTTPS 的代理。
  • 删除代理:通过 /delete 接口可以删除指定的代理。
  • 添加代理:通过 /add 接口可以手动添加新的代理。
  • 查看所有代理:通过 /all 接口可以获取当前所有的代理列表。
  • 统计代理数量:通过 /count 接口可以查看当前代理池中的代理数量。

3. 本地代理池启动

  • 使用 mihomo 工具启动本地代理池服务,方便开发和测试。

技术实现

后端实现细节

后端基于 FastAPI 框架开发,主要功能模块包括:

  1. 生命周期管理

    • lifespan(app: FastAPI) 函数用于管理应用的启动和关闭流程,确保资源的正确初始化和释放。
  2. 健康检查

    • health_check() 函数提供了一个健康检查接口,用于验证服务是否正常运行。
  3. API 接口

    • root() 函数定义了根路径接口,返回 API 的基本介绍。
    • get_random_proxy() 函数实现了随机获取代理的功能,支持根据需求过滤代理类型。
  4. Mihomo 相关路由

    • POST /mihomo/start: 启动 Mihomo 代理。
    • POST /mihomo/start-each-provider: 启动每个服务商的代理。
    • POST /mihomo/stop: 停止指定的 Mihomo 代理。
    • GET /mihomo/status: 获取当前运行的 Mihomo 状态。
    • GET /mihomo/reachability: 检查代理的可达性。
    • POST /mihomo/reachability/start-all: 启动所有代理的可达性检查。
    • GET /mihomo/controller-urls: 获取控制器 URL 列表。
    • POST /mihomo/stop-all: 停止所有 Mihomo 代理。
  5. 订阅相关路由

    • POST /subscriptions/add: 添加订阅链接。
    • GET /subscriptions/list: 列出所有订阅。
    • GET /proxies/list: 列出所有代理。

进程管理

系统通过 ProcessManager 类管理子进程,主要功能包括:

  • 启动子进程: start_process(command: str, process_name: str) 方法用于启动一个子进程并记录其 PID。
  • 停止子进程: stop_process(process_name: str) 方法用于停止指定名称的子进程。
  • 停止所有子进程: stop_all_processes() 方法用于停止所有子进程。

数据库设计

  • 系统使用数据库存储代理池数据和订阅链接信息,确保数据的持久化和高效查询。

当前状态

  • 后端: 已完成
  • 前端: 尚未开始

后续计划

  • 完成前端开发
  • 进行整体测试和部署