owner 反馈 GitHub Actions UI 上 'Build image and deploy to staging' 等英文 job 名、'Docker Build summary / Build inputs / Build records include...' 等英文 summary 文本不符合中文开发者团队约定。 ## 汉化(全部显示字段) - ci.yml: workflow name '持续集成'、job '构建/Vet/测试' 和 'golangci-lint'、 所有 step name 中文(保留 golangci-lint / Go 等工具名) - deploy-staging.yml: workflow name '测试环境部署'、job '构建镜像并部署到 测试环境'、11 个 step name 中文 - doc/development-workflow-zh.md: 同步 4 处对 'Deploy Staging' 显示名的 引用,改为 '测试环境部署 (deploy-staging.yml)' 形式,以文件名锚定 ## 关闭 docker/build-push-action 英文 summary deploy-staging.yml workflow env 加 DOCKER_BUILD_SUMMARY=false。原来跑完 build 那个英文 'Docker Build summary / Build inputs / ...' 块在 GitHub Actions UI 上不再出现。部署结果靠 Telegram 通知传递。 ## actions 升级到支持 Node 24 的版本 GitHub Runner 报 Node 20 deprecated 警告,9 月 16 日强制移除。本次一次 性升级到当前 latest: - actions/checkout v4 -> v6 - actions/setup-go v5 -> v6 - docker/setup-buildx-action v3 -> v4 - docker/build-push-action v6 -> v7 - appleboy/scp-action v0.1.7 -> v1.0.0 (正式版) - appleboy/ssh-action v1.0.3 -> v1.2.5 - golangci/golangci-lint-action v6 -> v9 (Node 24,仍支持 version: latest 和 only-new-issues: true) 不改: - workflow .yml 文件名(gh CLI / 文档引用都用文件名锚定,不动) - secret 名 / env var 名(约定俗成全大写英文) - Telegram 通知正文(本来就是中文) ## 后续 agent prompt(架构师/QA/devops)里引用 'Build, vet, test' / 'Deploy Staging' 显示名的部分,PR merge 后另外 multica agent update 同步。 不在本 PR 范围。
TawCorp hifast-server (internal fork)
This repository is the canonical TawCorp fork of perfect-panel/server. Migrated from
git.kxsw.us/HI-VPN/hi-serveron 2026-06-03; the old Gitea remote is deprecated — do not push or pull from it.
- Development workflow (required reading for internal contributors):
doc/development-workflow-zh.md- Branch model:
internal(dev mainline, auto-deploys to staging) →main(release)- Merge policy: PR + architect review + GitHub UI "Squash and merge"; direct push to
internal/mainis blocked bylefthookpre-push and forbidden by policy- Issue tracker: Multica workspace
Hifast(prefixHIF-)External contributors: read
CONTRIBUTING.mdfor the upstream-compatible baseline.
PPanel Server
PPanel is a pure, professional, and perfect open-source proxy panel tool, designed for learning and practical use.
English | 中文 | Report Bug | Request Feature
Article 1.
All human beings are born free and equal in dignity and rights.
They are endowed with reason and conscience and should act towards one another in a spirit of brotherhood.Article 12.
No one shall be subjected to arbitrary interference with his privacy, family, home or correspondence, nor to attacks upon his honour and reputation.
Everyone has the right to the protection of the law against such interference or attacks.Article 19.
Everyone has the right to freedom of opinion and expression; this right includes freedom to hold opinions without interference and to seek, receive and impart information and ideas through any media and regardless of frontiers.Source: United Nations – Universal Declaration of Human Rights (UN.org)
📋 Overview
PPanel Server is the backend component of the PPanel project, providing robust APIs and core functionality for managing proxy services. Built with Go, it emphasizes performance, security, and scalability.
Key Features
- Multi-Protocol Support: Supports Shadowsocks, V2Ray, Trojan, and more.
- Privacy First: No user logs are collected, ensuring privacy and security.
- Minimalist Design: Simple yet powerful, with complete business logic.
- User Management: Full authentication and authorization system.
- Subscription System: Manage user subscriptions and service provisioning.
- Payment Integration: Supports multiple payment gateways.
- Order Management: Track and process user orders.
- Ticket System: Built-in customer support and issue tracking.
- Node Management: Monitor and control server nodes.
- API Framework: Comprehensive RESTful APIs for frontend integration.
Subscription Mode Behavior
The subscription behavior can be switched by the backend config Subscribe.SingleModel:
false(multi-subscription mode): each successfulpurchasecreates a newuser_subscriberecord.true(single-subscription mode):purchaseis auto-routed to renewal semantics when the user already has a paid subscription:- a new order is still created,
- but the existing subscription is extended (instead of creating another
user_subscribe).
🚀 Quick Start
Prerequisites
- Go: 1.21 or higher
- Docker: Optional, for containerized deployment
- Git: For cloning the repository
Installation from Source
-
Clone the repository:
git clone https://github.com/perfect-panel/ppanel-server.git cd ppanel-server -
Install dependencies:
go mod download -
Generate code:
chmod +x script/generate.sh ./script/generate.sh -
Build the project:
make linux-amd64 -
Run the server:
./ppanel-server-linux-amd64 run --config etc/ppanel.yaml
🐳 Docker Deployment
-
Build the Docker image:
docker buildx build --platform linux/amd64 -t ppanel-server:latest . -
Run the container:
docker run --rm -p 8080:8080 -v $(pwd)/etc:/app/etc ppanel-server:latest -
Use Docker Compose (create
docker-compose.yml):version: '3.8' services: ppanel-server: image: ppanel-server:latest ports: - "8080:8080" volumes: - ./etc:/app/etc environment: - TZ=Asia/ShanghaiRun:
docker-compose up -d -
Pull from Docker Hub (after CI/CD publishes):
docker pull ppanel/ppanel-server:latest docker run --rm -p 8080:8080 ppanel/ppanel-server:latest
📖 API Documentation
Explore the full API documentation:
The documentation covers all endpoints, request/response formats, and authentication details.
🔗 Related Projects
| Project | Description | Link |
|---|---|---|
| PPanel Web | Frontend for PPanel | GitHub |
| PPanel User Web | User interface for PPanel | Preview |
| PPanel Admin Web | Admin interface for PPanel | Preview |
🌐 Official Website
Visit ppanel.dev for more details.
🏛 Architecture
📁 Directory Structure
.
├── apis/ # API definition files
├── cmd/ # Application entry point
├── doc/ # Documentation
├── etc/ # Configuration files (e.g., ppanel.yaml)
├── generate/ # Code generation tools
├── initialize/ # System initialization
├── internal/ # Internal modules
│ ├── config/ # Configuration parsing
│ ├── handler/ # HTTP handlers
│ ├── middleware/ # HTTP middleware
│ ├── logic/ # Business logic
│ ├── model/ # Data models
│ ├── svc/ # Service layer
│ └── types/ # Type definitions
├── pkg/ # Utility code
├── queue/ # Queue services
├── scheduler/ # Scheduled tasks
├── script/ # Build scripts
├── go.mod # Go module definition
├── Makefile # Build automation
└── Dockerfile # Docker configuration
💻 Development
Format API Files
goctl api format --dir apis/user.api
Add a New API
- Create a new API file in
apis/. - Import it in
apis/ppanel.api. - Regenerate code:
./script/generate.sh
Build for Multiple Platforms
Use the Makefile to build for various platforms (e.g., Linux, Windows, macOS):
make all # Builds linux-amd64, darwin-amd64, windows-amd64
make linux-arm64 # Build for specific platform
Supported platforms include:
- Linux:
386,amd64,arm64,armv5-v7,mips,riscv64,loong64, etc. - Windows:
386,amd64,arm64,armv7 - macOS:
amd64,arm64 - FreeBSD:
amd64,arm64
🤝 Contributing
Contributions are welcome! Please follow the Contribution Guidelines for bug fixes, features, or documentation improvements.
✨ Special Thanks
A huge thank you to the following outstanding open-source projects that have provided invaluable support for this project's development! 🚀
| Project | Description | Project | Description |
|---|---|---|---|
|
Gin |
High-performance Go Web framework |
Gorm |
Powerful Go ORM framework |
![]() Asynq |
Asynchronous task queue for Go |
Go-Swagger |
Comprehensive Go Swagger toolkit |
|
Go-Zero |
Go microservices framework (this project's API generator is built on Go-Zero) |
||
🎉 Salute to Open Source: Thank you to the open-source community for making development simpler and more efficient! Please give these projects a ⭐ to support the open-source movement!
📄 License
This project is licensed under the GPL-3.0 License.

