/Xboard

基于V2board二次开发支持新协议新特性的面板

Primary LanguagePHPMIT LicenseMIT

关于Xboard

Xborad是基于V2board二次开发,在性能上和功能上都有大部分增强的**面板

免责声明

本项目只是本人个人开发维护,本人不保证任何可用性,也不对使用本软件造成的任何后果负责。

捐赠

如果本项目帮助到了你,你可以对作者进行捐赠,感谢你的支持

Tron: TLypStEWsVrj6Wz9mCxbXffqgt5yz3Y4XB

Xborad 特点

基于V2board 二次开发,增加了以下特性

  • 升级Laravel10
  • 适配Laravels (提升至10+倍并发)
  • 适配Webman (比laravels快50%左右)
  • 修改配置从数据库中获取
  • 支持Docker部署、分布式部署
  • 支持根据用户IP归属地来下发订阅
  • 增加Hy2支持
  • 增加sing-box下发
  • 支持直接从cloudflare获取访问者真实IP
  • 支持根据客户端版本自动下发新协议
  • 支持线路筛选(订阅地址后面增加 &filter=香港|美国)
  • 使用Vue3 + TypeScript + NaiveUI + Unocss + Pinia重构用户前端
  • 修复大量BUG

系统架构

  • PHP8.1+
  • Composer
  • MySQL5.7+
  • Redis
  • Laravel

安装 / 更新 / 回滚

这里将给你介绍不同方式的 安装、更新、回滚步骤

安装前准备

  • 安装前你需要自行安装好Mysql数据库(用户量小的可以忽略,使用Sqlite)
  • 安装前你需要自行安装好redis

Docker Compose 方式(推荐)

安装部署

  1. 安装docker
curl -sSL https://get.docker.com | bash
systemctl enable docker
systemctl start docker
  1. 获取Docker compose 文件
git clone -b  docker-compose --depth 1 https://github.com/cedar2025/Xboard
cd Xboard
  1. 执行数据库安装命令
docker compose run -it --rm xboard php artisan xboard:install

执行这条命令之后,会返回你的后台地址和管理员账号密码(你需要记录下来)
你需要执行下面的 ‘启动xborad’ 之后才能访问后台

  1. 启动xboard
docker compose up -d

安装完成之后即可访问你的站点

  1. 配置nginx代理

启动之后网站端口为7001, 你可以配置nginx分流使用80端口

location ~ .* {
    proxy_pass http://127.0.0.1:7001;
}

更新

1、 修改版本

cd Xboard
vi docker-compose.yaml

修改docker-compose.yaml 当中image后面的版本号为你需要的版本

2、 更新数据库(可以执行多次都是安全的)

docker compose down
docker compose run -it --rm xboard php artisan xboard:update
docker compose up -d

即可更新成功

回滚

需要回滚旧的版本时 1、回滚数据库(不可回滚多次,每一次指定都会回滚到上一个版本)

docker compose down
docker compose run -it --rm xboard php artisan xboard:rollback

2、回退版本

vi docker-compose.yaml

修改docker-compose.yaml 当中image后面的版本号为更新前的版本号 3、启动

dockcer compose up -d

从其他版本迁移

config/v2board.php 迁移

xboard将配置储存到数据库了, 不再使用file进行储存,你需要对配置文件进行迁移。

  1. 将旧的 config/v2board.php 文件复制到 xboard的 config/v2board.php下
  2. 执行下面的命令,即可完成迁移
php artisan migrateFromV2b config 

如果你迁移到docker compose

  1. 在xboard 目录下创建 config文件夹
  2. 复制旧项目的 v2board.php 到config目录
  3. 修改docker-compose.yaml 取消下面代码的注释(删除 "#")
  # - ./config/v2board.php:/www/config/v2board.php
  1. 执行下面的命令
docker compose down
docker compose run -it --rm php artisan migrateFromV2b config 
docker compose up -d

即可完成迁移

数据库迁移

如果你需要从其他版本迁移过来,你需要手动配置好 .env之后按照以下引导操作
目前支持迁移的版本

宝塔方式(aaPanel) (不推荐,太麻烦了)

  1. 安装aaPanel

如果是Centos系统

yum install -y wget && wget -O install.sh http://www.aapanel.com/script/install_6.0_en.sh && bash install.sh aapanel

如果是Ubuntu/Deepin系统

wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh aapanel

如果是Debian 系统

wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh aapanel

安装完成后我们登陆 aaPanel 进行环境的安装。 2. 选择使用LNMP的环境安装方式勾选如下信息
☑️ Nginx 任意版本
☑️ MySQL 5.7
☑️ PHP 8.1
选择 Fast 快速编译后进行安装。

  1. 安装扩展

aaPanel 面板 > App Store > 找到PHP 8.1点击Setting > Install extentions选择以下扩展进行安装

  • redis
  • fileinfo
  • swoole5
  • readline
  • event
  1. 解除被禁止函数

aaPanel 面板 > App Store > 找到PHP 7.4点击Setting > Disabled functions 将以下函数从列表中删除

  • putenv
  • proc_open
  • pcntl_alarm
  • pcntl_signal
  1. 添加站点

aaPanel 面板 > Website > Add site。

在 Domain 填入你指向服务器的域名
在 Database 选择MySQL
在 PHP Verison 选择PHP-81

  1. 安装 Xborad

通过SSH登录到服务器后访问站点路径如:/www/wwwroot/你的站点域名。 以下命令都需要在站点目录进行执行。

# 删除目录下文件
chattr -i .user.ini
rm -rf .htaccess 404.html index.html .user.ini

执行命令从 Github 克隆到当前目录。

git clone https://github.com/cedar2025/Xboard.git ./

执行命令安装依赖包以及V2board

sh init.sh

根据提示完成安装

  1. 配置站点目录及伪静态

添加完成后编辑添加的站点 > Site directory > Running directory 选择 /public 保存。
添加完成后编辑添加的站点 > URL rewrite 填入伪静态信息。

location /downloads {
}

location / {  
    try_files $uri $uri/ /index.php$is_args$query_string;  
}

location ~ .*\.(js|css)?$
{
    expires      1h;
    error_log off;
    access_log /dev/null; 
}
  1. 配置守护进程

V2board的系统强依赖队列服务,正常使用V2Board必须启动队列服务。下面以aaPanel中supervisor服务来守护队列服务作为演示。

  1. aaPanel 面板 > App Store > Tools
  2. 找到Supervisor进行安装,安装完成后点击设置 > Add Daemon按照如下填写
  • 在 Name 填写 Xboard
  • 在 Run User 选择 www
  • 在 Run Dir 选择 站点目录 在 Start Command 填写 php artisan horizon 在 Processes 填写 1

填写后点击Confirm添加即可运行。

  1. 配置定时任务# aaPanel 面板 > Cron。
  • 在 Type of Task 选择 Shell Script
  • 在 Name of Task 填写 v2board
  • 在 Period 选择 N Minutes 1 Minute
  • 在 Script content 填写 php /www/wwwroot/路径/artisan schedule:run

根据上述信息添加每1分钟执行一次的定时任务。