如何利用docker搭建高性能xboard以及对接节点问题

2025年9月9日
514 次阅读
exploit

前言

目前v2board已经长时间处于不更新状态,对应新协议等都不支持,所以我们需要采用支持新协议的面板,如xboard。下面来简单介绍下如何使用docker部署最新版本的xboard。


如何部署

数据存储

在部署前,我们要先确定下你的数据采用什么数据库进行存储。默认xboard支持sqllite,也可以采用外部mysql的方法进行操作。下面我们采用docker的mysql进行数据存储

docker run -d   --name mysql   -e MYSQL_ROOT_PASSWORD=xxxxxx   -p 33066:3306   -v /root/Xboard/mysql-data-docker:/var/lib/mysql   mysql:8.0

上面的代码我们进行了端口映射,将其他非标端口映射到了3306端口上。并且通过挂载路径将mysql的数据持久化到磁盘上,当然你也可以选择写个每天定时备份的cronjob

面板部署

开发者非常贴心的给我们提供了docker compose的文件。

services:
  web:
    image: ghcr.io/cedar2025/xboard:new
    volumes:
      - ./.docker/.data/redis/:/data/
      - ./.env:/www/.env
      - ./.docker/.data/:/www/.docker/.data
      - ./storage/logs:/www/storage/logs
      - ./storage/theme:/www/storage/theme
      - ./plugins:/www/plugins
    environment:
      - docker=true
    depends_on:
      - redis
    # network_mode: host
    command: php artisan octane:start --host=0.0.0.0 --port=7001
    restart: on-failure
    ports:
      - 7001:7001
  horizon:
    image: ghcr.io/cedar2025/xboard:new
    volumes:
      - ./.docker/.data/redis/:/data/
      - ./.env:/www/.env
      - ./.docker/.data/:/www/.docker/.data
      - ./storage/logs:/www/storage/logs
      - ./plugins:/www/plugins
    restart: on-failure
    # network_mode: host
    command: php artisan horizon
    depends_on:
      - redis
  redis:
    image: redis:7-alpine
    command: redis-server --unixsocket /data/redis.sock --unixsocketperm 777 --save 900 1 --save 300 10 --save 60 10000
    restart: unless-stopped
    volumes:
      - ./.docker/.data/redis:/data

或者到开发者的git仓库中下载Xboard官方git仓库,使用下面的命令进行一键部署,

docker compose run -it --rm web php artisan xboard:install

填写你的对应信息即可部署。需要注意mysql需要提前建库出来。xboard不会自动建库。部署完成后。将会在控制台输出端口号以及路径。访问你的这个端口号的路径即可

节点如何接入xboard

可以查看下面的脚本

wget -N https://raw.githubusercontent.com/wyx2685/V2bX-script/master/install.sh && bash install.sh

其他问题排查

image.png 当你部署完成后。请检查你的xboard中的队列服务是否正常,若你的服务队列异常,可以查看下面的评论 xboard手动队列管理

目前xboard支持的协议

image.png

评论区

0 / 500
* 为必填项