163 lines
4.4 KiB
Markdown
163 lines
4.4 KiB
Markdown
# PPanel 服务端
|
||
|
||
<div align="center">
|
||
|
||
[](LICENSE)
|
||

|
||
[](Dockerfile)
|
||
|
||
**PPanel 是一个纯净、专业、完美的开源代理面板工具,旨在成为您学习和实际使用的理想选择。**
|
||
|
||
[English](README.md) | [中文](readme_zh.md) | [报告问题](https://github.com/perfect-panel/server/issues/new) | [功能请求](https://github.com/perfect-panel/server/issues/new)
|
||
|
||
</div>
|
||
|
||
## 📋 概述
|
||
|
||
PPanel 服务端是 PPanel 项目的后端组件,为 PPanel 系统提供强大的 API 和核心功能。它使用 Go 语言构建,注重性能、安全性和可扩展性。
|
||
|
||
### 核心特性
|
||
|
||
- **多协议支持**:管理各种加密协议,包括 Shadowsocks、V2Ray、Trojan 等
|
||
- **隐私保护**:不收集用户日志,确保用户隐私和安全
|
||
- **极简设计**:易于使用的产品,同时保持业务逻辑的完整性
|
||
- **用户系统**:完整的用户管理,包含认证和授权
|
||
- **订阅管理**:处理用户订阅和服务提供
|
||
- **支付集成**:支持多种支付网关
|
||
- **订单管理**:处理和跟踪用户订单
|
||
- **工单系统**:客户支持和问题跟踪
|
||
- **节点管理**:服务器节点监控和控制
|
||
- **API 框架**:为前端应用提供全面的 API 接口
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 前提条件
|
||
|
||
- Go 1.16+
|
||
- Docker(可选,用于容器化部署)
|
||
|
||
### 通过源代码运行
|
||
|
||
1. 克隆仓库
|
||
|
||
```bash
|
||
git clone https://github.com/perfect-panel/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) 授权。
|