base on Multi-purpose proxy service management system <div align="center">
<img src="public/images/uim-logo-round_192x192.png" alt="logo" width="150" height="150" />
</div>
<h1 align="center">SSPanel UIM</h1>
<p align="center">
<em>Across the Great Wall we can reach every corner in the world</em>
</p>
<p align="center">
<a href="https://trendshift.io/repositories/1832" target="_blank">
<img src="https://trendshift.io/api/badge/repositories/1832" alt="Anankke%2FSSPanel-Uim | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/>
</a>
</p>
<p align="center">
<a href="https://github.com/Anankke/SSPanel-UIM/stargazers">
<img src="https://custom-icon-badges.demolab.com/github/stars/Anankke/SSPanel-UIM?logo=star&logoColor=yellow&style=social&labelColor=464646&color=ffe000" alt="GitHub stars">
</a>
<a href="https://github.com/Anankke/SSPanel-UIM/network/members">
<img src="https://custom-icon-badges.demolab.com/github/forks/Anankke/SSPanel-UIM?logo=fork&logoColor=333&style=social&labelColor=464646&color=7a7a7a" alt="GitHub forks">
</a>
</p>
<p align="center">
<a href="https://github.com/Anankke/SSPanel-UIM/blob/dev/LICENSE">
<img src="https://custom-icon-badges.demolab.com/badge/License-MIT-blue.svg?logo=law&logoColor=white" alt="License">
</a>
<a href="https://github.com/Anankke/SSPanel-UIM/issues">
<img src="https://custom-icon-badges.demolab.com/github/issues-raw/Anankke/SSPanel-UIM?logo=issue-opened&logoColor=white&label=Issues" alt="Issues">
</a>
<a href="https://github.com/Anankke/SSPanel-UIM/graphs/contributors">
<img src="https://custom-icon-badges.demolab.com/github/contributors/Anankke/SSPanel-UIM?logo=people&logoColor=white&label=Contributors" alt="Contributors">
</a>
<a href="https://www.php.net">
<img src="https://custom-icon-badges.demolab.com/badge/PHP-%E2%89%A58.2-777BB4.svg?logo=php&logoColor=white" alt="PHP Version">
</a>
</p>
<p align="center">
<a href="https://github.com/Anankke/SSPanel-UIM/actions/workflows/lint.yml">
<img src="https://github.com/Anankke/SSPanel-UIM/actions/workflows/lint.yml/badge.svg" alt="Lint Status">
</a>
<a href="#code-quality">
<img src="https://img.shields.io/badge/Code%20Quality-100%25-brightgreen?logo=scrutinizer" alt="Code Quality">
</a>
<a href="#code-quality">
<img src="https://img.shields.io/badge/Architecture-100%25-brightgreen?logo=blueprint" alt="Architecture">
</a>
<a href="#code-quality">
<img src="https://img.shields.io/badge/Style-100%25-brightgreen?logo=prettier" alt="Code Style">
</a>
<a href="#code-quality">
<img src="https://img.shields.io/badge/Complexity-81.5%25-yellow?logo=codacy" alt="Complexity">
</a>
</p>
<p align="center">
<a href="https://docs.sspanel.io">
<img src="https://custom-icon-badges.demolab.com/badge/Docs-sspanel.io-1C8ADB.svg?logo=book&logoColor=white" alt="Documentation">
</a>
<a href="https://t.me/sspanel_Uim">
<img src="https://custom-icon-badges.demolab.com/badge/Telegram-Channel-26A5E4.svg?logo=telegram&logoColor=white" alt="Telegram Channel">
</a>
<a href="https://t.me/SSUnion">
<img src="https://custom-icon-badges.demolab.com/badge/Telegram-Group-26A5E4.svg?logo=telegram&logoColor=white" alt="Telegram Group">
</a>
<a href="https://github.com/Anankke/SSPanel-UIM/discussions">
<img src="https://custom-icon-badges.demolab.com/badge/GitHub-Discussions-181717.svg?logo=comment-discussion&logoColor=white" alt="GitHub Discussions">
</a>
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/linux/linux-original.svg" alt="Linux" width="50" height="50" />
<img src="https://techstack-generator.vercel.app/nginx-icon.svg" alt="Nginx" width="50" height="50" />
<img src="https://techstack-generator.vercel.app/mysql-icon.svg" alt="MySQL" width="50" height="50" />
<img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/php/php-original.svg" alt="PHP" width="50" height="50" />
<img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/redis/redis-original.svg" alt="Redis" width="50" height="50" />
<img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/bootstrap/bootstrap-original.svg" alt="Bootstrap" width="50" height="50" />
</p>
## 简介 | Introduction
SSPanel-UIM 是一个基于 PHP 的多功能代理服务管理系统,专为 Shadowsocks(2022) / V2Ray / Trojan / TUIC 等协议设计,提供完善的用户管理、节点管理、财务系统等功能。
SSPanel-UIM is a PHP-based multi-purpose proxy service management system designed for Shadowsocks(2022) / V2Ray / Trojan / TUIC protocols, providing comprehensive user management, node management, financial system and more.
## 特性 | Features
### 多协议支持 | Multi-Protocol Support
- 支持 Shadowsocks 2022、V2Ray、Trojan、TUIC 等主流协议
- Support for Shadowsocks 2022, V2Ray, Trojan, TUIC and other mainstream protocols
- 通用订阅接口,一键分发 json/clash/sip008/sing-box 格式订阅
- Universal subscription interface, one-click json/clash/sip008/sing-box format subscription distribution
### 支付系统 | Payment System
- 集成支付宝当面付、PayPal、Stripe、Cryptomus 等多种支付网关
- Integrate Alipay F2F, PayPal, Stripe, Cryptomus and other payment gateways
- 灵活的计费模式:包年包月、按量付费、按接入类型计费
- Flexible billing modes: annual/monthly, pay-as-you-go, access type billing
### 通知系统 | Notification System
- 支持多种邮件服务,内置邮件队列,无需第三方组件
- Support multiple mail services with built-in mail queue, no third-party components required
- Telegram、Discord、Slack 机器人集成
- Telegram, Discord, Slack bot integration
### 用户界面 | User Interface
- 基于 Bootstrap 5 的现代化 Tabler 主题
- Modern Tabler theme based on Bootstrap 5
- 响应式设计,完美支持移动设备
- Responsive design with perfect mobile device support
### 智能功能 | Smart Features
- 深度集成大语言模型,支持工单智能回复、文档生成
- Deep LLM integration for intelligent ticket replies and document generation
- 一键接入 OpenAI、Google AI、Anthropic 等 AI 服务
- One-click access to OpenAI, Google AI, Anthropic and other AI services
### 运维管理 | Operations Management
- 重构的定时任务系统,一条命令完成所有定时任务
- Refactored cron system, complete all scheduled tasks with one command
- 完善的用户管理、节点管理、流量统计系统
- Comprehensive user management, node management, traffic statistics system
## 系统要求 | System Requirements
### 最低配置 | Minimum Requirements
- **CPU**: 1 核心 | 1 Core
- **内存 | RAM**: 1GB
- **存储 | Storage**: 10GB
- **系统 | OS**: Debian 11+
### 推荐配置 | Recommended Requirements
- **CPU**: 2 核心或以上 | 2 Cores or more
- **内存 | RAM**: 2GB 或以上 | 2GB or more
- **存储 | Storage**: 20GB SSD
- **系统 | OS**: Debian 12
### 软件环境 | Software Requirements
- **Web 服务器 | Web Server**: Nginx (HTTPS 必须 | HTTPS Required)
- **PHP**: 8.2+ (强烈推荐 OPcache + JIT | OPcache + JIT highly recommended)
- **数据库 | Database**: MariaDB 10.11+ / MySQL 8.0+ (需禁用严格模式 | Disable strict mode required)
- **缓存 | Cache**: Redis 7.0+
- **其他 | Others**: Git, Composer
## 文档 | Documentation
完整的安装和使用文档请访问:
For complete installation and usage documentation, please visit:
📚 [SSPanel-UIM 文档 | Documentation](https://docs.sspanel.io)
## 社区 | Community
- Telegram 频道 | Telegram Channel: [@sspanel_Uim](https://t.me/sspanel_Uim)
- Telegram 群组 | Telegram Group: [@SSUnion](https://t.me/SSUnion)
- GitHub 讨论 | GitHub Discussions: [SSPanel-UIM/Discussions](https://github.com/Anankke/SSPanel-UIM/discussions)
## 贡献 | Contributing
欢迎提交 Pull Request 或 Issue!请先阅读 [贡献指南](CONTRIBUTING.md)。
Welcome to submit Pull Requests or Issues! Please read [Contributing Guide](CONTRIBUTING.md) first.
### 开发规范 | Development Standards
- 代码风格 | Code Style: PSR-12
- 提交规范 | Commit Convention: 参考贡献指南 | See Contributing Guide
- 分支策略 | Branch Strategy: 向 dev 分支提交 | Submit to dev branch
## 安全 | Security
如果您发现安全漏洞,请发送邮件至
[email protected],不要公开提交 Issue。
If you discover a security vulnerability, please email
[email protected] instead of creating a public issue.
## 许可证 | License
本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。
This project is licensed under the MIT License. See [LICENSE](LICENSE) file for details.
## Star History
[](https://star-history.com/#Anankke/SSPanel-UIM&Date)
---
<p align="center">Made with ❤️ by SSPanel-UIM Team</p>", Assign "at most 3 tags" to the expected json: {"id":"1832","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"