Linux系统之部署WBO在线协作白板

news2024/12/22 23:45:22

Linux系统之部署WBO在线协作白板

  • 一、WBO白板工具介绍
    • 1.1 WBO白板简介
    • 1.2 WBO白板特点
  • 二、本地环境介绍
    • 2.1 本地环境规划
    • 2.2 本次实践介绍
  • 三、检查本地环境
    • 3.1 检查本地操作系统版本
    • 3.2 检查系统内核版本
  • 四、部署Node.js环境
    • 4.1 下载Node.js安装包
    • 4.2 解压Node.js安装包
    • 4.3 链接二进制文件
    • 4.4 配置环境变量
    • 4.5 查看node版本
  • 五、下载WBO源码包
    • 5.1 下载WBO源码包
    • 5.2 查看源码目录
  • 六、部署WBO在线协作白板
    • 6.1 进入WBO源码目录
    • 6.2 设置npm镜像源
    • 6.3 安装依赖
    • 6.4 启动WBO服务
    • 6.5 设置service服务
    • 6.6 本地测试WBO服务
    • 6.7 防火墙和selinux设置
  • 七、访问WBO在线协作白板
    • 6.1 访问WBO首页
    • 6.2 创建私人白板
    • 6.3 在线协作
  • 八、WBO在线协作白板使用总结

一、WBO白板工具介绍

1.1 WBO白板简介

WBO是一个自由和开源的在线协作白板。它允许多个用户同时在一个虚拟的大型白板上画图。该白板对所有线上用户实时更新,并且状态始终保持。它可以用于许多不同的目的,包括艺术、娱乐、设计和教学。

1.2 WBO白板特点

  • 要与某人实时协作绘制图形,只需向他们发送白板的URL。

  • 每个人都可以使用公共白板。

  • 创建一个带有随机名称的私有白板,该白板只能通过其链接访问。

  • 创建一个可命名的私有白板,并自定义其URL,所有知道它名字的人都可以访问它。

二、本地环境介绍

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

hostname本地P地址操作系统版本内核版本node版本
jeven192.168.3.166centos 7.63.10.0-957.el7.x86_64v16.17.0

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境;
2.在centos7.6环境下WBO在线协作白板。

三、检查本地环境

3.1 检查本地操作系统版本

检查本地操作系统版本

[root@jeven ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

3.2 检查系统内核版本

检查系统内核版本

[root@jeven ~]# uname -r
3.10.0-957.el7.x86_64

四、部署Node.js环境

4.1 下载Node.js安装包

在/root目录下,下载Node.js安装包,下载版本为v16.17.0。

wget https://nodejs.org/dist/v16.17.0/node-v16.17.0-linux-x64.tar.xz

在这里插入图片描述

4.2 解压Node.js安装包

在/root目录下,解压Node.js安装包

tar -xvJf node-v16.17.0-linux-x64.tar.xz

在这里插入图片描述

4.3 链接二进制文件

将 /root/node-v16.17.0-linux-x64/bin/下的二进制文件链接到/usr/local/bin下

ln -s  /root/node-v16.17.0-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v16.17.0-linux-x64/bin/npm /usr/local/bin/npm

4.4 配置环境变量

  • 在/etc/profile文件中,新增以下两行:
vim /etc/profile
export NODE_HOME=/root/node-v16.17.0-linux-x64/bin/
export PATH=$PATH:$NODE_HOME:/usr/local/bin/
  • 使变量生效
source /etc/profile

4.5 查看node版本

查看node版本

[root@jeven ~]#  npm -v
8.15.0
[root@jeven ~]# node -v
v16.17.0

五、下载WBO源码包

5.1 下载WBO源码包

github下载WBO源码包

git clone https://github.com/lovasoa/whitebophir.git

在这里插入图片描述

5.2 查看源码目录

查看WBO白板工具源码目录

[root@jeven ~]# ls ~/whitebophir/
AUTHORS  client-data         Dockerfile  nightwatch.conf.js  package-lock.json  server       tests
CHECKS   docker-compose.yml  LICENSE     package.json        README.md          server-data
[root@jeven ~]# tree -L 2 ~/whitebophir/
/root/whitebophir/
├── AUTHORS
├── CHECKS
├── client-data
│   ├── apple-touch-icon.png
│   ├── apple-touch-icon-precomposed.png
│   ├── background.png
│   ├── board.css
│   ├── board.html
│   ├── crossdomain.xml
│   ├── error.html
│   ├── favicon.ico
│   ├── favicon.svg
│   ├── frontpage-illustration.svg
│   ├── github.svg
│   ├── icon-size.svg
│   ├── index.css
│   ├── index.html
│   ├── instagram.svg
│   ├── js
│   ├── label.svg
│   ├── manifest.json
│   └── tools
├── docker-compose.yml
├── Dockerfile
├── LICENSE
├── nightwatch.conf.js
├── package.json
├── package-lock.json
├── README.md
├── server
│   ├── boardData.js
│   ├── check_output_directory.js
│   ├── client_configuration.js
│   ├── configuration.js
│   ├── createSVG.js
│   ├── fs_promises.js
│   ├── jwtauth.js
│   ├── jwtBoardnameAuth.js
│   ├── log.js
│   ├── server.js
│   ├── sockets.js
│   ├── templating.js
│   └── translations.json
├── server-data
└── tests
    └── integration.js

6 directories, 40 files

六、部署WBO在线协作白板

6.1 进入WBO源码目录

进入WBO源码目录

[root@jeven ~]# cd whitebophir/
[root@jeven whitebophir]#

6.2 设置npm镜像源

npm设置国内淘宝镜像源

npm config set registry https://registry.npmmirror.com

6.3 安装依赖

安装WBO项目的依赖

npm install --production

在这里插入图片描述

6.4 启动WBO服务

启动WBO服务

PORT=5001 HOST=0.0.0.0 npm start

后台启动WBO服务

PORT=5001 HOST=0.0.0.0 npm start & 

6.5 设置service服务

设置WBO为service服务,使用systemctl管理。

vim /etc/systemd/system/wbo.service
[Unit]
Description=wbo
After=network.target

[Service]
Type=simple
Environment="PORT=5001" "HOST=0.0.0.0"
ExecStart=/root/node-v16.17.0-linux-x64/bin/npm start
ExecReload=/root/node-v16.17.0-linux-x64/bin/npm restart
ExecStop=/root/node-v16.17.0-linux-x64/bin/npm  stop
WorkingDirectory=/root/whitebophir/
Restart=always
User=root
Group=root
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

启动wbo服务

systemctl daemon-reload
systemctl start wbo && systemctl enable  wbo

重启服务器后,查看wbo服务状态。

[root@jeven ~]# systemctl status wbo
● wbo.service - wbo
   Loaded: loaded (/etc/systemd/system/wbo.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2023-10-22 23:25:42 CST; 4min 5s ago
 Main PID: 12292 (npm start)
    Tasks: 23
   Memory: 43.6M
   CGroup: /system.slice/wbo.service
           ├─12292 npm start
           ├─12305 sh /tmp/start-015d97ac.sh
           └─12306 node ./server/server.js

Oct 22 23:25:42 jeven systemd[1]: Started wbo.
Oct 22 23:25:42 jeven npm[12292]: > whitebophir@1.19.1 start
Oct 22 23:25:42 jeven npm[12292]: > node ./server/server.js
Oct 22 23:25:42 jeven npm[12292]: server started        {"port":5001}

6.6 本地测试WBO服务

在本地访问http://192.168.3.166:5001,有wbo网页返回则部署成功。

[root@jeven ~]# curl http://192.168.3.166:5001 |head
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6927  100  6927    0     0  5207k      0 --:--:-- --:--:-- --:--:-- 6764k
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>WBO — Collaborative whiteboard</title>
    <link rel="stylesheet" href="index.css" />
    <meta name="description" content="A free and open-source online collaborative drawing tool. Sketch new ideas together onWBO!" />
    <meta
      name="keywords"
      content="whiteboard,collaborative,online,draw,paint,shared,realtime,wbo,whitebophir,open-source,GPL,javascript"

6.7 防火墙和selinux设置

  • 设置selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
  • 关闭防火墙,如果想要开启防火墙,需放行80端口。
systemctl stop firewalld && systemctl disable firewalld

七、访问WBO在线协作白板

6.1 访问WBO首页

访问地址:http://192.168.3.166:5001/,将IP替换为自己服务器IP地址。

在这里插入图片描述

6.2 创建私人白板

创建可命名的私人白板,可以愉快的使用wbo白板了。

在这里插入图片描述

在这里插入图片描述

6.3 在线协作

进入公共白板,进行绘图操作。

在这里插入图片描述
在这里插入图片描述

在另外一台电脑或浏览器打开,可以进行协作绘图。

在这里插入图片描述

在这里插入图片描述

八、WBO在线协作白板使用总结

wbo白板工具目前仅支持基本的绘画、文字和标注工具,暂不支持高级功能如形状、图表等。此外,在进行协作时,需要确保网络连接稳定,否则可能会发生卡顿或数据丢失等问题。总体而言,wbo是一款简单易用的在线白板协作工具,广泛应用于团队合作、教学、头脑风暴等场景,具有较高的应用价值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1121177.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

进制转换(二进制、八进制、十进制、十六进制)

目录 一&#xff1a;十进制转换为二进制、八进制、十六进制 &#xff08;1&#xff09;整数转换 &#xff08;2&#xff09;小数转换 1&#xff09;十进制转二进制 2&#xff09;十进制转八进制 3&#xff09;十进制转十六进制 二&#xff1a;二进制、八进制、十六进制转…

数据库实验二:图书信息管理系统数据查询与数据更新

实验项目名称&#xff1a;图书信息管理系统数据查询与数据更新 实验目的与要求实验原理与内容1&#xff0e; 实验原理&#xff1a;2 . 实验内容&#xff1a;2. 数据查询 实验设备与软件环境实验过程与结果1. 数据更新图书信息表t_book新增馆藏可借图书c_book借书证表t_libraryC…

offsetof宏计算某变量相对于首地址的偏移量

宏&#xff1a;offsetof的使用 //offsetof (type,member) //type是结构体的类型名&#xff0c;member是结构体中的成员名。struct Student {char name[5]; // 姓名int age; // 年龄float score; // 成绩 };int main() {struct Student s;printf("%zd\n", off…

MyBatis Generator - 快速生成 实体类 和 映射文件

目录 一、MyBatis Generator 的使用 1.1、生成类和映射文件 1.1.1、在 pom.xml 中引入依赖 1.1.2、根据 configurationFile 标签中配置的路径 创建 generatorConfig.xml 文件 1.1.3、自动生成类 和 映射文件 1.1.4、在 Insert 标签中添加获取主键值的选项 1.1.5、扫描配置…

Linux完全卸载PyTorch重装(cuda11.1)

目录 1.命令行输入2.命令行接着输入3.可以看到卸载完后4.下载PyTorch&#xff08;cuda对应11.1&#xff0c;可以通过test_gpu.py的测试&#xff09; 原因&#xff1a;网上看的很多卸载的&#xff0c;并没有把所有跟随PyTorch的包卸载干净&#xff0c;虽然可能后期不会出现较大问…

【计算机操作系统慕课版】第二章课后习题笔记(创作周年纪念版)

一、简答题 (1)什么是前趋图&#xff1f;试画出下面四条语句的前趋图. S1&#xff1a;axy&#xff1b; S2&#xff1a;bz1&#xff1b; S3&#xff1a;ca-b&#xff1b; S4&#xff1a;wc1&#xff1b; 答&#xff1a;前趋图(Precedence Graph)是一个有向无循环图&#xff…

我朋友软件测试月薪5w,跟他聊过之后,才知道差距在哪里!

当我开始工作的时候&#xff0c;年薪50万对于我来说是一个遥不可及的幻想。我认为作为一名普通的软件测试工程师&#xff0c;月薪2w已经是天花板了。然而随着时间的推移和经验的积累&#xff0c;看到越来越多的同行拿到高薪时&#xff0c;我才意识到束缚我薪水的不是行业的天花…

集合迭代器

Iterator迭代器的定义&#xff1a;迭代器&#xff08;Iterator&#xff09;模式&#xff0c;又叫做游标&#xff08;Cursor&#xff09;模式。GOF给出的定义是&#xff0c;提供一种方法访问一个容器&#xff08;container&#xff09;对象中各个元素&#xff0c;而又不需暴露该…

山西电力市场日前价格预测【2023-10-23】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-23&#xff09;山西电力市场全天平均日前电价为232.21元/MWh。其中&#xff0c;最高日前电价为383.23元/MWh&#xff0c;预计出现在18: 30。最低日前电价为0.00元/MWh&#xff0c;预计出…

01、Python 的数据类型

目录 数据类型Python变量具有如下两个特征&#xff1a;输出变量 标识符规则整型四种表示形式浮点数复数 数据类型 使用Python变量 Python的基础类型 Python变量具有如下两个特征&#xff1a; 变量无需声明即可直接赋值&#xff1a;对一个不存在的变量赋值就相当于定义了一个…

十四天学会C++之第九天:内存管理

1. new和delete运算符 new运算符&#xff1a;动态分配内存。delete运算符&#xff1a;释放动态分配的内存。 new运算符&#xff1a;动态分配内存 new运算符的作用是在堆内存中动态分配内存块&#xff0c;并返回指向该内存块的指针。这使得我们能够在程序运行时创建变量&…

短视频如何批量添加水印?实用技巧带你飞

在当今的数字时代&#xff0c;短视频已经成为一种非常流行的内容形式。无论是社交媒体还是视频分享网站&#xff0c;短视频都已经成为了一种非常有吸引力的内容。然而&#xff0c;对于一些拥有大量视频内容的创作者来说&#xff0c;添加水印可能是一项繁琐的任务。本文将介绍如…

沙箱对抗之反沙箱技巧

前言 我们经常会在红蓝对抗中遇到这种场景&#xff0c;离线免杀&#xff0c;但是10分钟又被杀&#xff0c;这就是云查杀的威力&#xff0c;而云查杀可以分为下列两种: 1.静态分析 2.动态分析 静态分析就是分析样本的结构&#xff0c;导入表&#xff0c;等等来判定是否是恶意程…

C语言实现顺序表(图解增删查改+代码)

文章目录 写在前面1. 顺序表的初始化和销毁1.1 顺序表的初始化(SLInit)1.2 顺序表的销毁(SLDestroy) 2. 插入数据2.1 尾插数据(SLPushBack)2.2 头插数据(SLPushFront)2.3 指定位置插入数据(SLInsert) 3. 删除数据3.1 尾删数据(SLPopBack)3.2 头删数据(SLPopFront)3.3 删除指定位…

DDR3笔记 频率配置

可参考 基于FPGA的DDR3设计&#xff08;2&#xff09;DDR3各时钟频率及带宽分析 - 知乎 (zhihu.com) DDR3的时钟频率配置要看两个手册&#xff1a; 1.DDR3器件的手册。 2.开发板芯片的手册 器件 器件名称&#xff1a;MT41J128M16JT-125:K tCK 1.25ns&#xff0c;就可以算出…

冒泡排序应用过程中遇到的问题

冒泡排序思想&#xff1a;相邻的两个数据两两比较&#xff0c;然后按顺序排出 代码展示1&#xff1a; #include<stdio.h>void sort(int arr1[],int sz) {for (int i 0; i < sz-1; i){for (int j i1; j < sz; j){if (arr1[i] > arr1[j]) {int temp 0;temp a…

Wordpress - Xydown独立下载页面插件

Wordpress - Xydown独立下载页面插件&#xff1b; 1.使用ftp将demo.php和download.php上传到网站根目录&#xff08;两个文件中设计网站信息的代码可根据实际情况修改为自己的信息&#xff09; 使用ftp将demo.php和download.php上传到网站根目录&#xff08;两个文件中设计…

消息服务MNS之初见

消息服务MNS 说到消息服务MNS&#xff0c;那么消息服务MNS是什么呢&#xff1f;为什么会有消息服务MNS这款产品的产生呢&#xff1f; 什么是消息服务MNS 消息服务-阿里云消息服务MNS&#xff08;Message Service&#xff09;是一种高效、可靠、安全、便捷和可弹性扩展的分布…

GB28181学习(十)——视音频文件下载

要求 SIP服务器接收到媒体接收者发送的视音频文件下载请求后向媒体流发送者发送媒体文件下载命令&#xff0c;媒体流发送者采用RTP将视频流传输给媒体流接收者&#xff0c;媒体流接收者直接将视频流保存为媒体文件&#xff1b;媒体流接收者或SIP服务器可通过配置查询等方式获取…

算法模板之双链表图文详解

文章目录 &#x1f4cb;前言一. ⛳️使用数组模拟双链表讲解1.1 &#x1f514;为什么我们要使用数组去模拟双链表&#xff1f;1.2 &#x1f514;用数组模拟实现双链表1.2.1 &#x1f47b;整体框架说明1.2.2 &#x1f47b;双链表查找和修改1.2.3 &#x1f47b;双链表插入结点1.2…