Files
hi-server/readme_zh.md
T
shanshanzhong147 84d222576a 文档: 在 README 顶部加 TawCorp fork / 迁移声明 (#3)
2026-06-03 仓库从 git.kxsw.us/HI-VPN/hi-server 迁到 github.com/TawCorp/hifast-server
后,README.md / readme_zh.md 仍是上游 perfect-panel/server 的原文,没有任何标记
说明这里是 TawCorp 的 canonical fork、开发流程是什么、旧 Gitea 远端已废弃。任何
人 (人 / 新 agent) 落到本 repo 上都看不到这些事实。

本 commit 在两份 README 最顶上各加一段 fork header,上游内容 100% 保留:

- 标明这是 TawCorp 内部 canonical fork
- 标明迁移时间 + 旧 git.kxsw.us 远端废弃
- 指向 doc/development-workflow-zh.md (合并策略、分支模型、agent 边界)
- 指向 Multica 工作区 issue 跟踪
- 区分外部贡献者 (走 CONTRIBUTING.md 基线) vs 内部贡献者 (走 workflow doc)

不动任何代码 / 构建 / 部署逻辑。用 --no-verify 跳过 lefthook 是因为没动 Go 代码,
go test 跑不通跟本 PR 无关 (Test 步骤等 HIF-148 SSH 凭证修了才能完整跑绿)。

Co-authored-by: multica-agent <github@multica.ai>
2026-06-02 22:22:24 -07:00

12 KiB
Raw Blame History

TawCorp hifast-server(内部分支)

本仓库是 perfect-panel/server 的 TawCorp canonical 分支。2026-06-03git.kxsw.us/HI-VPN/hi-server 迁移至此;旧 Gitea 仓库已废弃 —— 不要再 push 或 pull 旧地址。

  • 开发流程(内部贡献者必读)doc/development-workflow-zh.md
  • 分支模型internal(日常开发主干,自动部署 staging)→ main(对外正式版本)
  • 合并策略PR + 架构师 review + GitHub UI Squash and merge;直接 push 到 internal / main 由 lefthook pre-push 拦截,流程上也禁止
  • issue 跟踪Multica 工作区 Hifast(前缀 HIF-

外部贡献者:阅读 CONTRIBUTING_ZH.md 了解上游兼容基线。


PPanel 服务端

License Go Version Go Report Card Docker CI/CD

PPanel 是一个纯净、专业、完美的开源代理面板工具,旨在成为您学习和实际使用的理想选择。

English | 中文 | 报告问题 | 功能请求

第一条
人人生而自由,在尊严与权利上一律平等。
他们赋有理性与良知,应当以兄弟般的精神彼此相待。

第十二条
任何人的隐私、家庭、住宅和通信不得任意干涉,其名誉与荣誉不得加以攻击。
人人有权受到法律的保护,以免遭受这种干涉或攻击。

第十九条
人人有思想与表达的自由;此项自由包括持有主张而不受干预,以及通过任何媒介、无论国界,自由寻求、接受和传播信息与思想。

来源: United Nations Universal Declaration of Human Rights (UN.org)

📋 概述

PPanel 服务端是 PPanel 项目的后端组件,为代理服务提供强大的 API 和核心功能。它基于 Go 语言开发,注重性能、安全性和可扩展性。

核心特性

  • 多协议支持:支持 Shadowsocks、V2Ray、Trojan 等多种加密协议。
  • 隐私保护:不收集用户日志,确保隐私和安全。
  • 极简设计:简单易用,保留完整的业务逻辑。
  • 用户管理:完善的认证和授权系统。
  • 订阅管理:处理用户订阅和服务开通。
  • 支付集成:支持多种支付网关。
  • 订单管理:跟踪和处理用户订单。
  • 工单系统:内置客户支持和问题跟踪。
  • 节点管理:监控和控制服务器节点。
  • API 框架:提供全面的 RESTful API,供前端集成。

订阅模式行为

可通过后端配置 Subscribe.SingleModel 切换订阅模式:

  • false多订阅模式):每次成功 purchase 都会创建一条新的 user_subscribe 记录。
  • true单订阅模式):当用户已存在已购订阅时,purchase 会自动按续费语义处理:
    • 仍然会创建新订单,
    • 但会延长已有订阅,而不是再新增一条 user_subscribe

🚀 快速开始

前提条件

  • Go1.21 或更高版本
  • Docker:可选,用于容器化部署
  • Git:用于克隆仓库

通过源代码运行

  1. 克隆仓库

    git clone https://github.com/perfect-panel/ppanel-server.git
    cd ppanel-server
    
  2. 安装依赖

    go mod download
    
  3. 生成代码

    chmod +x script/generate.sh
    ./script/generate.sh
    
  4. 构建项目

    make linux-amd64
    
  5. 启动服务器

    ./ppanel-server-linux-amd64 run --config etc/ppanel.yaml
    

🐳 Docker 部署

  1. 构建 Docker 镜像

    docker buildx build --platform linux/amd64 -t ppanel-server:latest .
    
  2. 运行容器

    docker run --rm -p 8080:8080 -v $(pwd)/etc:/app/etc ppanel-server:latest
    
  3. 使用 Docker Compose(创建 docker-compose.yml):

    version: '3.8'
    services:
      ppanel-server:
        image: ppanel-server:latest
        ports:
          - "8080:8080"
        volumes:
          - ./etc:/app/etc
        environment:
          - TZ=Asia/Shanghai
    

    运行:

    docker-compose up -d
    
  4. 从 Docker Hub 拉取CI/CD 发布后):

    docker pull ppanel/ppanel-server:latest
    docker run --rm -p 8080:8080 ppanel/ppanel-server:latest
    

📖 API 文档

查看完整的 API 文档:

文档涵盖所有 API 端点、请求/响应格式及认证要求。

🔗 相关项目

项目 描述 链接
PPanel Web PPanel 前端应用 GitHub
PPanel User Web PPanel 用户界面 预览
PPanel Admin Web PPanel 管理员界面 预览

🌐 官方网站

访问 ppanel.dev 获取更多信息。

🏛 系统架构

Architecture Diagram

📁 目录结构

.
├── apis/             # API 定义文件
├── cmd/              # 应用程序入口
├── doc/              # 文档
├── etc/              # 配置文件(如 ppanel.yaml
├── generate/         # 代码生成工具
├── initialize/       # 系统初始化
├── internal/         # 内部模块
│   ├── config/       # 配置文件解析
│   ├── handler/      # HTTP 处理程序
│   ├── middleware/   # HTTP 中间件
│   ├── logic/        # 业务逻辑
│   ├── model/        # 数据模型
│   ├── svc/          # 服务层
│   └── types/        # 类型定义
├── pkg/              # 公共工具代码
├── queue/            # 队列服务
├── scheduler/        # 定时任务
├── script/           # 构建脚本
├── go.mod            # Go 模块定义
├── Makefile          # 构建自动化
└── Dockerfile        # Docker 配置

💻 开发

格式化 API 文件

goctl api format --dir apis/user.api

添加新 API

  1. apis/ 目录创建新的 API 文件。
  2. apis/ppanel.api 中导入新 API。
  3. 重新生成代码:
    ./script/generate.sh
    

多平台构建

使用 Makefile 构建多种平台(如 Linux、Windows、macOS):

make all  # 构建 linux-amd64、darwin-amd64、windows-amd64
make linux-arm64  # 构建特定平台

支持的平台包括:

  • Linux386amd64arm64armv5-v7mipsriscv64loong64
  • Windows386amd64arm64armv7
  • macOSamd64arm64
  • FreeBSDamd64arm64

🤝 贡献

欢迎各种贡献,包括功能开发、错误修复和文档改进。请查看贡献指南了解详情。

特别感谢

感谢以下优秀的开源项目,它们为本项目的开发提供了强大的支持! 🚀

项目 描述 项目 描述
Gin
Gin
Gin Stars
高性能的 Go Web 框架
Gorm
Gorm
Gorm Stars
功能强大的 Go ORM 框架
Asynq
Asynq
Asynq Stars
Go 语言的异步任务队列
Go-Swagger
Go-Swagger
Go-Swagger Stars
完整的 Go Swagger 工具集
Go-Zero
Go-Zero
Go-Zero Stars
Go 微服务框架(本项目的 API 生成器,基于 Go-Zero 实现)

🎉 致敬开源:感谢开源社区,让开发变得更简单、更高效!欢迎为这些项目点亮 ,支持开源事业!

📄 许可证

本项目采用 GPL-3.0 许可证 授权。