server/readme_zh.md

9.5 KiB
Raw Permalink Blame History

PPanel 服务端

License Go Version Go Report Card Docker CI/CD

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

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

📋 概述

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

核心特性

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

🚀 快速开始

前提条件

  • 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 yourusername/ppanel-server:latest
    docker run --rm -p 8080:8080 yourusername/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 许可证 授权。