# PPanel 服务端
[](LICENSE)

[](Dockerfile)
**PPanel 是一个纯净、专业、完美的开源代理面板工具,旨在成为您学习和实际使用的理想选择。**
[English](README.md) | [中文](readme_zh.md) | [报告问题](https://github.com/perfect-panel/ppanel-server/issues/new) | [功能请求](https://github.com/perfect-panel/ppanel-server/issues/new)
## 📋 概述
PPanel 服务端是 PPanel 项目的后端组件,为 PPanel 系统提供强大的 API 和核心功能。它使用 Go 语言构建,注重性能、安全性和可扩展性。
### 核心特性
- **多协议支持**:管理各种加密协议,包括 Shadowsocks、V2Ray、Trojan 等
- **隐私保护**:不收集用户日志,确保用户隐私和安全
- **极简设计**:易于使用的产品,同时保持业务逻辑的完整性
- **用户系统**:完整的用户管理,包含认证和授权
- **订阅管理**:处理用户订阅和服务提供
- **支付集成**:支持多种支付网关
- **订单管理**:处理和跟踪用户订单
- **工单系统**:客户支持和问题跟踪
- **节点管理**:服务器节点监控和控制
- **API 框架**:为前端应用提供全面的 API 接口
## 🚀 快速开始
### 前提条件
- Go 1.16+
- Docker(可选,用于容器化部署)
### 通过源代码运行
1. 克隆仓库
```bash
git clone https://github.com/perfect-panel/ppanel-server.git
cd ppanel-server
```
2. 安装依赖
```bash
go mod download
```
3. 生成代码
```bash
chmod +x script/generate.sh
./script/generate.sh
```
4. 构建项目
```bash
go build -o ppanel ppanel.go
```
5. 启动服务器
```bash
./ppanel run --config etc/ppanel.yaml
```
### 🐳 Docker 部署
1. 构建 Docker 镜像
```bash
docker build -t ppanel-server .
```
2. 运行容器
```bash
docker run -p 8080:8080 -v $(pwd)/etc/ppanel.yaml:/app/etc/ppanel.yaml ppanel-server
```
或使用 Docker Compose:
```bash
docker-compose up -d
```
## 📖 API 文档
PPanel 提供了全面的在线 API 文档:
- **官方 Swagger 文档**:[https://ppanel.dev/zh-CN/swagger/ppanel](https://ppanel.dev/zh-CN/swagger/ppanel)
该文档包含所有可用的 API 端点、请求/响应格式以及认证需求。
## 🔗 相关项目
| 项目 | 描述 | 链接 |
|------------------|---------------|-------------------------------------------------------|
| PPanel Web | PPanel 的前端应用 | [GitHub](https://github.com/perfect-panel/ppanel-web) |
| PPanel User Web | PPanel 的用户界面 | [预览](https://user.ppanel.dev) |
| PPanel Admin Web | PPanel 的管理员界面 | [预览](https://admin.ppanel.dev) |
## 🌐 官方网站
访问我们的官方网站获取更多信息:[ppanel.dev](https://ppanel.dev/)
## 📁 目录结构
```
.
├── etc # 配置文件目录
├── cmd # 应用入口
├── queue # 队列消费服务
├── generate # 代码生成工具
├── initialize # 系统初始化配置
├── go.mod # Go 模块定义
├── internal # 内部模块
│ ├── config # 配置文件解析
│ ├── handler # HTTP 接口处理
│ ├── middleware # HTTP 中间件
│ ├── logic # 业务逻辑处理
│ ├── svc # 服务层封装
│ ├── types # 类型定义
│ └── model # 数据模型
├── scheduler # 计划任务
├── pkg # 公共工具代码
├── apis # API 定义文件
├── script # 构建脚本
└── doc # 文档
```
## 💻 开发
### 格式化 API 文件
```bash
goctl api format --dir api/user.api
```
### 添加新 API
1. 在 `apis` 目录下创建新的 API 定义文件
2. 在 `ppanel.api` 文件中导入新的 API 定义
3. 运行生成脚本重新生成代码
```bash
./script/generate.sh
```
## 🤝 贡献
我们欢迎各种形式的贡献,无论是功能开发、错误修复还是文档改进。请查看[贡献指南](CONTRIBUTING_ZH.md)了解更多详情。
## 📄 许可证
本项目采用 [GPL-3.0 许可证](LICENSE) 授权。