Compare commits

...

6 Commits

Author SHA1 Message Date
xboard
99af5b80ab update readme
Some checks are pending
Docker Build and Publish / build (push) Waiting to run
2025-01-14 12:44:43 +08:00
xboard
bc0c8a93a0 update readme 2025-01-14 12:39:04 +08:00
xboard
9ae6fbaaa7 refactor: optimize issue templates for better clarity and guidance 2025-01-14 11:05:39 +08:00
Xboard
fd4dc9064f
Merge pull request #312 from NekoCareLab/new
Fixed Multiplt Vmess+TCP bugs for shadowrocket
2025-01-14 07:03:37 +08:00
NekoCareLab
6d46ecb757
Protocol Shadowrocket: fixed Vmess + TCP multiple bugs 2025-01-13 23:26:29 +08:00
NekoCareLab
3b9cc99526
Protocol Shadowrocket: fixed a typo 2025-01-13 23:11:18 +08:00
5 changed files with 187 additions and 90 deletions

View File

@ -1,43 +1,39 @@
---
name: Bug report | 问题反馈
about: Tell us what problems you have encountered
title: "[BUG]"
labels: ''
name: 🐛 问题反馈 | Bug Report
about: 提交使用过程中遇到的问题 | Report an issue
title: "问题:"
labels: '🐛 bug'
assignees: ''
---
🙇🙇🙇注意XrayR等非XBoard问题请前往项目方提问
🙇🙇🙇Note: XrayR and other non-XBoard issues please go to the project side to ask questions
<!-- 🔴 请注意XrayR等非XBoard问题请前往相应项目提问 -->
<!-- 🔴 Note: For XrayR and other non-XBoard issues, please report to their respective projects -->
> ⚠️ 请务必按照模板填写完整信息没有详细描述的issue可能会被忽略或关闭
> ⚠️ Please follow the template to provide complete information, issues without detailed description may be ignored or closed
**基本信息 | Basic Info**
```yaml
XBoard版本 | Version:
部署方式 | Deployment: [Docker/手动部署]
PHP版本 | Version:
数据库 | Database:
```
**问题描述 | Description**
<!-- 简要描述你遇到的问题 -->
The XBoard version number you are using
当前使用的XBoard版本号(git commit id)
--------
**复现步骤 | Steps**
<!-- 如何复现这个问题? -->
1.
2.
Would you like to deploy using Docker?
你的部署方式是否为Docker
--------
**相关截图 | Screenshots**
<!-- 拖拽图片到这里(请注意隐藏敏感信息)-->
Please briefly describe the issue you encountered (preferably with reproducible steps).
简单描述你遇到的问题(最好带上复现步骤)
--------
Screenshot of the reported error(Please do desensitization)
报告错误的截图(请做脱敏处理)
--------
Screenshot of the reported error(Please do desensitization)
报告错误的截图(请做脱敏处理)
--------
Run the php artisan log:export 7 command to export log files (where 7 represents logs for the last 7 days).
运行`php artisan log:export 7` 命令导出的日志文件(其中7为最近7天的日志)。
--------
**日志信息 | Logs**
<!-- 运行命令php artisan log:export 7 -->
```log
// 粘贴日志内容到这里
```

View File

@ -1,11 +1,28 @@
---
name: Feature request | 功能请求
about: Tell us what you need
title: "[Feature request]"
labels: ''
name: ✨ 功能请求 | Feature Request
about: 提交新功能建议或改进意见 | Suggest an idea
title: "建议:"
labels: '✨ enhancement'
assignees: ''
---
Please describe in detail the problems or needs you have encountered.
请详细描述你遇到的问题或需求。
> ⚠️ 请务必按照模板详细描述你的需求没有详细描述的issue可能会被忽略或关闭
> ⚠️ Please follow the template to describe your request in detail, issues without detailed description may be ignored or closed
**需求描述 | Description**
<!-- 描述你希望添加的功能或改进建议 -->
**使用场景 | Use Case**
<!-- 描述这个功能会在什么场景下使用,解决什么问题 -->
**功能建议 | Suggestion**
<!-- 你期望这个功能是什么样的?可以描述一下具体实现方式 -->
```yaml
功能形式 | Type: [新功能/功能优化/界面改进]
预期效果 | Expected:
```
**补充说明 | Additional**
<!-- 其他补充说明或者参考示例 -->

View File

@ -1,32 +1,36 @@
# 关于Xboard
Xboard New是基于Xboard二次开发重写后台管理并优化系统架构的**面板,提升可维护性
# Xboard New
# 免责声明
本项目只是本人个人学习开发并维护,本人不保证任何可用性,也不对使用本软件造成的任何后果负责。
[English](README.md) | [中文](README_CN.md)
# Xboard New 特点
基于Xboard 二次开发,增加了以下特性
- 升级Laravel11
- 增加Octane支持
- 使用React + Shadcn UI + TailwindCSS重构后台管理
- 使用Vue3 + TypeScript + NaiveUI + Unocss + Pinia重构用户前端
- 使用Docker Compose作为容器化部署工具
- 使用Docker作为容器化部署工具
- 重构主题管理,增加主题上传,并且只暴露激活主题
- 使用Octane Cache作为设置的缓存
- 优化系统架构,提升可维护性
# **系统架构**
[![Telegram Channel](https://img.shields.io/badge/Telegram-Channel-blue)](https://t.me/XboardOfficial)
- PHP8.2+
## About Xboard
Xboard New is a panel system based on Xboard's secondary development, featuring a rewritten admin interface and optimized system architecture to improve maintainability.
## Disclaimer
This project is personally developed and maintained. I do not guarantee any availability or take responsibility for any consequences of using this software.
## Features
- Upgraded to Laravel 11
- Added Octane support
- Rebuilt admin interface using React + Shadcn UI + TailwindCSS
- Rebuilt user frontend using Vue3 + TypeScript + NaiveUI + Unocss + Pinia
- Using Docker Compose as containerization deployment tool
- Using Docker as containerization tool
- Restructured theme management with theme upload support and active theme exposure
- Using Octane Cache for settings caching
- Optimized system architecture for better maintainability
## System Requirements
- PHP 8.2+
- Composer
- MySQL5.7+
- MySQL 5.7+
- Redis
- Laravel
- Octane
## 快速体验
使用以下命令快速部署并体验 Xboard基于 Docker + SQLite
## Quick Start
Deploy and experience Xboard quickly using the following commands (based on Docker + SQLite):
```bash
git clone -b compose-new --depth 1 https://github.com/cedar2025/Xboard && \
@ -38,31 +42,31 @@ docker compose run -it --rm \
web php artisan xboard:install && \
docker compose up -d
```
安装完成后访问 http://服务器IP:7001
After installation, visit http://SERVER_IP:7001
> 提示:安装过程中会显示管理员账号密码,请务必保存。
> Note: Admin credentials will be displayed during installation, make sure to save them.
## 页面展示
![示例图片](./docs/images/dashboard.png)
## Preview
![Dashboard Preview](./docs/images/dashboard.png)
## 安装 / 更新 / 回滚
你可以点击查看下列方式的**安装、更新**步骤
- [1panel 部署](./docs/1panel安装指南.md)
- [Docker Compose 纯命令行快速部署](./docs/docker-compose安装指南.md)
- [aapanel + Docker Compose (推荐)](./docs/aapanel+docker安装指南.md)
- [aapanel 部署](./docs/aapanel安装指南.md)
### 从其他版本迁移
#### 数据库迁移
**根据你的版本查看对应的迁移指南进行迁移**
- v2board dev 23/10/27的版本 [点击跳转迁移指南](./docs/v2b_dev迁移指南.md)
- v2board 1.7.4 [点击跳转迁移指南](./docs/v2b_1.7.4迁移指南.md)
- v2board 1.7.3 [点击跳转迁移指南](./docs/v2b_1.7.3迁移指南.md)
- v2board wyx2685 [点击跳转迁移指南](./docs/v2b_wyx2685迁移指南.md)
## Installation / Update / Rollback
Click to view installation and update steps for:
- [1panel Deployment](./docs/1panel安装指南.md)
- [Docker Compose Quick Deployment](./docs/docker-compose安装指南.md)
- [aapanel + Docker Compose (Recommended)](./docs/aapanel+docker安装指南.md)
- [aapanel Deployment](./docs/aapanel安装指南.md)
## Migration from Other Versions
### Database Migration
**Check the corresponding migration guide based on your version:**
- v2board dev 23/10/27 version [Migration Guide](./docs/v2b_dev迁移指南.md)
- v2board 1.7.4 [Migration Guide](./docs/v2b_1.7.4迁移指南.md)
- v2board 1.7.3 [Migration Guide](./docs/v2b_1.7.3迁移指南.md)
- v2board wyx2685 [Migration Guide](./docs/v2b_wyx2685迁移指南.md)
### 注意
> 修改后台路径需要重启才能生效
```
## Note
> Modifying admin path requires restart to take effect:
```bash
docker compose restart
```
> 如果是是aapanel安装则需要重启 webman守护进程
> For aapanel installations, restart the webman daemon process

72
README_CN.md Normal file
View File

@ -0,0 +1,72 @@
# Xboard New
[English](README.md) | [中文](README_CN.md)
[![Telegram 频道](https://img.shields.io/badge/Telegram-频道-blue)](https://t.me/XboardOfficial)
# 关于Xboard
Xboard New是基于Xboard二次开发重写后台管理并优化系统架构的面板提升可维护性。
# 免责声明
本项目只是本人个人学习开发并维护,本人不保证任何可用性,也不对使用本软件造成的任何后果负责。
# Xboard New 特点
- 升级Laravel11
- 增加Octane支持
- 使用React + Shadcn UI + TailwindCSS重构后台管理
- 使用Vue3 + TypeScript + NaiveUI + Unocss + Pinia重构用户前端
- 使用Docker Compose作为容器化部署工具
- 使用Docker作为容器化部署工具
- 重构主题管理,增加主题上传,并且只暴露激活主题
- 使用Octane Cache作为设置的缓存
- 优化系统架构,提升可维护性
# 系统要求
- PHP8.2+
- Composer
- MySQL5.7+
- Redis
- Laravel
- Octane
## 快速体验
使用以下命令快速部署并体验 Xboard基于 Docker + SQLite
```bash
git clone -b compose-new --depth 1 https://github.com/cedar2025/Xboard && \
cd Xboard && \
docker compose run -it --rm \
-e ENABLE_SQLITE=true \
-e ENABLE_REDIS=true \
-e ADMIN_ACCOUNT=admin@demo.com \
web php artisan xboard:install && \
docker compose up -d
```
安装完成后访问 http://服务器IP:7001
> 提示:安装过程中会显示管理员账号密码,请务必保存。
## 页面展示
![示例图片](./docs/images/dashboard.png)
## 安装 / 更新 / 回滚
你可以点击查看下列方式的安装、更新步骤:
- [1panel 部署](./docs/1panel安装指南.md)
- [Docker Compose 纯命令行快速部署](./docs/docker-compose安装指南.md)
- [aapanel + Docker Compose (推荐)](./docs/aapanel+docker安装指南.md)
- [aapanel 部署](./docs/aapanel安装指南.md)
### 从其他版本迁移
#### 数据库迁移
**根据你的版本查看对应的迁移指南进行迁移**
- v2board dev 23/10/27的版本 [点击跳转迁移指南](./docs/v2b_dev迁移指南.md)
- v2board 1.7.4 [点击跳转迁移指南](./docs/v2b_1.7.4迁移指南.md)
- v2board 1.7.3 [点击跳转迁移指南](./docs/v2b_1.7.3迁移指南.md)
- v2board wyx2685 [点击跳转迁移指南](./docs/v2b_wyx2685迁移指南.md)
### 注意
> 修改后台路径需要重启才能生效:
```bash
docker compose restart
```
> 如果是aapanel安装则需要重启 webman守护进程

View File

@ -96,8 +96,11 @@ class Shadowrocket implements ProtocolInterface
switch (data_get($protocol_settings, 'network')) {
case 'tcp':
$config['obfs'] = data_get($protocol_settings, 'network_settings.header.type');
$config['path'] = \Arr::ra(data_get($protocol_settings, 'network_settings.header.request.path', ['/']));
if (data_get($protocol_settings, 'network_settings.header.type', 'none') !== 'none') {
$config['obfs'] = data_get($protocol_settings, 'network_settings.header.type');
$config['path'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.path', ['/']));
$config['obfsParam'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.headers.Host', ['www.example.com']));
}
break;
case 'ws':
$config['obfs'] = "websocket";
@ -161,13 +164,18 @@ class Shadowrocket implements ProtocolInterface
}
switch (data_get($protocol_settings, 'network')) {
case 'tcp':
$config['obfs'] = data_get($protocol_settings, 'network_settings.header.type');
$config['path'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.path', ['/']));
$config['obfsParam'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.headers.Host', ['/']));
if (data_get($protocol_settings, 'network_settings.header.type', 'none') !== 'none') {
$config['obfs'] = data_get($protocol_settings, 'network_settings.header.type');
$config['path'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.path', ['/']));
$config['obfsParam'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.headers.Host', ['www.example.com']));
}
break;
case 'ws':
$config['obfs'] = "websocket";
$config['path'] = data_get($protocol_settings, 'network_settings.path');
if (data_get($protocol_settings, 'network_settings.path')) {
$config['path'] = data_get($protocol_settings, 'network_settings.path');
}
if ($host = data_get($protocol_settings, 'network_settings.headers.Host')) {
$config['obfsParam'] = $host;
}