CentOS 部署 WBO 在线协作白板

1)WBO 白板工具介绍

1.1)WBO 白板简介

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

1.2)WBO 白板特点

  • 要与某人实时协作绘制图形,只需向他们发送白板的 URL。
  • 每个人都可以使用公共白板。
  • 创建一个带有随机名称的私有白板,该白板只能通过其链接访问。
  • 创建一个可命名的私有白板,并自定义其 URL,所有知道它名字的人都可以访问它。

2)本地环境介绍

2.1)本地环境规划

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

hostname本地P地址操作系统版本内核版本node版本
blog10.0.59.114CentOS 7.63.10.0-957.el7.x86_64v16.17.0

2.2)本次实践介绍

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

3)检查本地环境

3.1)检查本地操作系统版本

检查本地操作系统版本

cat /etc/redhat-release

3.2)检查系统内核版本

检查系统内核版本

uname -r

4)部署 Node.js 环境

4.1)下载 Node.js 安装包

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

cd /root && 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 版本

npm -v
node -v

image.png

5)下载 WBO 源码包

5.1)下载 WBO 源码包

GitHub 下载 WBO 源码包

yum install git -ygit clone https://github.com/lovasoa/whitebophir.git

5.2)查看源码目录

查看 WBO 白板工具源码目录

ls ~/whitebophir/
tree -L 2 ~/whitebophir/

6)部署 WBO 在线协作白板

6.1)进入 WBO 源码目录

进入 WBO 源码目录

cd 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 服务状态。

systemctl restart wbo
systemctl status wbo

image.png

6.6)本地测试 WBO 服务

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

image.png

6.7)防火墙和 SELinux 设置

设置 SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
cat /etc/selinux/config | grep disabled
setenforce 0

关闭防火墙,如果想要开启防火墙,需放行 5001 端口。

systemctl stop firewalld && systemctl disable firewalld

7)访问 WBO 在线协作白板

7.1)访问 WBO 首页

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

image.png

7.2)创建私人白板

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

image.png
image.png

7.3)在线协作

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

image.png
image.png

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

image.png
image.png

8)WBO 在线协作白板使用总结

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

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

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

相关文章

C语言实现ARM MCU SWD离线调试器

以下是一个使用C语言实现ARM MCU SWD离线调试器的示例代码&#xff0c;该代码可以读取目标设备的寄存器和内存&#xff1a; #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <string.h>#define SWDIO_PIN 0 #define SWCLK_PIN …

服务器和Linux ,安装R rstudio ,常用软件

服务器的基本概念&#xff1a; 如服务器的基本结构&#xff0c;节点&#xff0c;端口的概念等。 服务器的基本设置和管理&#xff1a; 如何配置新服务器&#xff0c; 如何管理服务器&#xff0c;如何分配账户并确保他们互不访问&#xff0c; 如何全局安装软件让所有人都可以…

《明解C语言》第三版 (入门篇) 第十一章练习答案

练习11-1 #include <stdio.h>int main(void) {char* p "123";printf("p \"%s\"\n", p);p "456"1; printf("p \"%s\"\n", p);return 0; } //输出“56”&#xff0c;p指向的地址1后&#xff0c;往…

python/C混合编程

目录 1、实现方式 2、通过setuptools编译.c文件的实现 1、实现方式 Python和C语言混合编程可以通过以下方式实现&#xff1a; 使用Python的C扩展&#xff1a;Python提供了C扩展的功能&#xff0c;允许我们在Python中调用C语言代码。我们可以编写C语言扩展模块&#xff0c;并…

mysql面试题——日志与MVCC

一&#xff1a;什么是MVCC&#xff1f; 多版本并发控制&#xff0c;更好的方式去处理读-写冲突&#xff0c;就是为了查询一些正在被另一个事务更新的行&#xff0c;并且可以看到它们被更新之前的值&#xff0c;这样在做查询的时候就不用等待另一个事务释放锁。 二&#xff1a…

TZOJ 1386 十转换转R进制

答案&#xff1a; #include<stdio.h> char fun(int n) {if (n > 0 && n < 10) //如果是小于10进制的return n 48; //ASCII值48else if (n > 10 && n < 16) //如果是大于10进制小于16进制的return n 55; //ASCII值55elseretur…

PD QC快充协议诱骗取电sink受电芯片大全_测试报告

随着Type-C接口的充电器普及&#xff0c;市面上的PD充电器越来越多&#xff0c;小家电产品可不配充电器&#xff0c;使用Type-C接口&#xff0c;然后加入一颗PD协议取电协议芯片XSP08即可让充电器/充电宝/车充等电源输出9V/12V/15V/20V电压给产品供电。 快充取电芯片应用场景&a…

从0开始学习JavaScript--JavaScript ES6 模块系统

JavaScript ES6&#xff08;ECMAScript 2015&#xff09;引入了官方支持的模块系统&#xff0c;使得前端开发更加现代化和模块化。本文将深入探讨 ES6 模块系统的各个方面&#xff0c;通过丰富的示例代码详细展示其核心概念和实际应用。 ES6 模块的基本概念 1 模块的导出 ES…

【算法刷题】Day10

文章目录 15. 三数之和题干&#xff1a;算法原理&#xff1a;1、排序 暴力枚举 利用set 去重2、排序 双指针 代码&#xff1a; 18. 18. 四数之和题干&#xff1a;算法原理&#xff1a;1、排序 暴力枚举 利用set 去重2、排序 双指针 代码&#xff1a; 15. 三数之和 原题链…

springboot数据格式验证——自定义日期格式验证及list验证

我们在工作中经常需要对日期格式进行定义&#xff0c;如果客户端传来的日期字符串不符合要求&#xff0c;那么根本无法保存&#xff0c;但是已有的注解并没有日期格式的验证&#xff0c;那我们就自己实现一个 一、自定义日期格式验证的注解DateFormat import javax.validatio…

2023年阅读类APP如何发展?怎么做好商业化? | TopOn观察

前言 阅读类APP作为泛娱乐应用的重要板块&#xff0c;近年来在全球都发展火热。本文将主要从阅读类应用的市场规模、头部产品及地区特点、商业化模式及提升商业变现几个方面入手&#xff0c;解析2023年阅读类APP的发展趋势&#xff0c;希望为阅读类应用开发者带来参考价值。 一…

28.线段树与树状数组基础

一、线段树 1.区间问题 线段树是一种在算法竞赛中常用来维护区间的数据结构。它思想非常简单&#xff0c;就是借助二叉树的结构进行分治&#xff0c;但它的功能却非常强大&#xff0c;因此在很多类型的题目中都有它的变种&#xff0c;很多题目都需要以线段树为基础进行发展。…

分享一个关于 Go 错误处理的新提案

在比较一段长的时间里&#xff0c;Go 的错误处理已经没有什么特别的进展和新改进了。看着已经到了瓶颈期。 今天在 GitHub 上学习时&#xff0c;看到 Go 社区里有人提了个错误处理的优化提案《proposal: Go 2: Error-Handling Paradigm with !err Grammar Sugar》&#xff0c;…

【PyTorch】(五)模型训练

文章目录 1. 基本步骤 1. 基本步骤 for epoch in range(num_epochs):for _X, _y in dataloader:# 将数据转移到GPU_X, _y _X.to(device), _y.to(device)# 前向传播计算损失loss criterion(model(_X).reshape(_y.shape), _y)# 清空优化器梯度缓存optimizer.zero_grad()# 误差…

SELinux refpolicy详解(7)

接前一篇文章&#xff1a;SELinux refpolicy详解&#xff08;6&#xff09; 三、refpolicy内容详解 1. README 文件路径&#xff1a;refpolicy源码根目录/README。 文件内容如下&#xff1a; 1) Reference Policy make targets:General Make targets:install-src Install …

【Skynet 入门实战练习】分布式 ID | 雪花算法 | 缓存设计 | LRU算法 | 数据库

文章目录 前言雪花算法LRU 算法缓存模块数据库测试逻辑 前言 本节实现了 分布式 ID 生成系统&#xff0c;采用雪花算法实现唯一 ID&#xff1b;实现缓存架构&#xff0c;采用 LRU &#xff08;最近最少使用&#xff09;算法。 雪花算法 分布式 ID 生成算法的有很多种&#x…

Redis——某马点评day01——短信登录

项目介绍 导入黑马点评项目 项目架构 基于Session实现登录 基本流程 实现发送短信验证码功能 controller层中 /*** 发送手机验证码*/PostMapping("code")public Result sendCode(RequestParam("phone") String phone, HttpSession session) {// 发送短信…

mysql8.0 提取json数据转为行

仅适用于mysql8.0&#xff0c;之前的版本不支持JSON_TABLE函数 数据结构: idnamejsonarr1张三[{"daystr": "2023-12-01","score": "53"},{"daystr": "2023-12-02","score": "78"}]2李四[{&q…

B站缓存视频M4S合并MP4(js + ffmpeg )

文章目录 B站缓存视频转MP4&#xff08;js ffmpeg &#xff09;1、说明 2、ffmpeg2.1 下载地址2.2 配置环境变量2.3 测试2.4 转换MP4命令 3、处理程序 B站缓存视频转MP4&#xff08;js ffmpeg &#xff09; 注意&#xff1a;这样的方式只用于个人之间不同设备的离线观看。请…

spring boot mybatis TypeHandler 看源码如何初始化及调用

目录 概述使用TypeHandler使用方式在 select | update | insert 中加入 配置文件中指定 源码分析配置文件指定Mapper 执行query如何转换 结束 概述 阅读此文 可以达到 spring boot mybatis TypeHandler 源码如何初始化及如何调用的。 spring boot 版本为 2.7.17&#xff0c;my…