Linux本地WBO创作白板部署与远程访问

news/2023/12/1 10:30:06

文章目录

    • 前言
    • 1. 部署WBO白板
    • 2. 本地访问WBO白板
    • 3. Linux 安装cpolar
    • 4. 配置WBO公网访问地址
    • 5. 公网远程访问WBO白板
    • 6. 固定WBO白板公网地址

前言

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

下面结合cpolar内网穿透工具,实现远程访问我们本地的WBO白板,远程访问的好处包括:

  1. 可以让多个用户在不同的地点同时协作,提高工作效率和沟通效果。
  2. 可以随时随地访问和编辑白板,方便灵活。
  3. 可以节省时间和成本,避免因为地理位置限制而无法进行协作。
  4. 可以实时更新和保存白板状态,方便后续查看和修改。

1. 部署WBO白板

官方提供了docker 一键部署启动,本例采用docker 方式部署,如需使用其他安装方式请参考官方文档,首先创建一个包含白板的目录:

mkdir /usr/local/wbo-boards

然后给该目录设置权限

chown -R 1000:1000 /usr/local/wbo-boards

执行docker 命令,一键运行WBO白板,访问端口为5001:

docker run -it --publish 5001:80 --volume "/usr/local/wbo-boards:/opt/app/server-data" lovasoa/wbo:latest

2. 本地访问WBO白板

docker部署成功后,打开浏览器,访问5001端口,即可访问WBO主页

image-20231019134931663

进入白板,即可愉快的进行创作了,本地访问成功了,下面进行远程设置,安装cpolar内网穿透软件

image-20231019135145843

3. Linux 安装cpolar

上面在本地Linux中成功部署了WBO创作白板,并局域网访问成功,下面我们在Linux安装cpolar内网穿透工具,通过cpolar 转发本地端口映射的http公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装cpolar步骤

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可

image-20231016143741228

4. 配置WBO公网访问地址

点击左侧仪表盘的隧道管理——创建隧道,创建一个WBO 创作白板的cpolar 公网地址隧道!

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:5001(本地访问时的端口)
  • 域名类型:免费选择随机域名
  • 地区:选择China

点击创建

image-20231019140421429

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

5. 公网远程访问WBO白板

使用上面的cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到我们WBO白板主界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可发布到公网进行远程访问!

image-20231019140858850

6. 固定WBO白板公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化【ps:cpolar.cn已备案】

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

image-20231019141350496

保留成功后复制保留成功的二级子域名的名称

image-20231019141412305

返回登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20231019141446005

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20231019141519306

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名

image-20231019141545532

最后,我们使用固定的公网地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,随时随地都可以远程访问WBO白板界面!!

image-20231019141640415


http://www.ppmy.cn/news/1230885.html

相关文章

适合您的智能手机的 7 款优秀手机数据恢复软件分享

如今,我们做什么都用手机;从拍照到录音,甚至作为 MP3 播放器,我们已经对手机变得非常依恋。这导致我们在手机上留下了很多珍贵的回忆。 不幸的是,我们有可能会丢失手机上的部分甚至全部数据。幸运的是,这不…

【LSTM】北京pm2.5 天气预测--pytorch版本,有代码可以跑通-LSTM回归问题,工程落地一网打尽

文章目录 前言1. 知识理解1.1 核心理解1.2 原理1.2.1 图解LSTM1.2.1 分词1.2.1 英语的词表示1.2.2 中文的词表示1.2.3 构建词表 2. 工程代码2.1 数据预处理2.2 数据集&模型构建2.3 模型训练2.4 保持模型&加载模型&预测 前言 LSTM 少分析原理,更强调工程…

Vue3 常用组件

一、Fragment组件 Vue2 的template 模板中必须要有一个根标签,而我们在Vue3 的模板中不需要使用根标签就能渲染,因为Vue3 在内部会将多个标签包含在一个Fragment 虚拟元素中。 好处就在于可以减少标签的层级,减小内存占用。 二、Teleport组…

HR问:有没有免费的人才测评工具?

人才测评工具分为两种,一种是测评量表,一种是操作量表的工具,在线测评的方式没有普及之前,很多朋友都习惯把测评量表(测评试题)称为测评工具,其实我认为量表就是量表,而试试量表测评…

Spark---核心介绍

一、Spark核心 1、RDD 1)、概念: RDD(Resilient Distributed Datest),弹性分布式数据集。 2)、RDD的五大特性: 1、RDD是由一系列的partition组成的 2、函数是作用在每一个partition(split…

平衡二叉树c语言版

一、定义二叉树结点结构体 /*** 定义平衡二叉树结点 */ struct avlbinarytree { //数据域NodeData* data;///树高int h;struct avlbinarytree* left;struct avlbinarytree* right; }; typedef struct avlbinarytree AVLNode; 二、声明函数的操作 /*** 创建结点 */ AV…

PP-PicoDet算法训练行人检测模型

PP-PicoDet算法训练行人检测模型 1,效果图2,PP-PicoDet介绍3,使用飞浆框架训练模型1,准备好图片和对应的标注文件2,划分训练集和验证集3,vi label_list.txt4,目录结构5,修改配置文件…

Android VSYNC发展历程

0 前言 安卓直到android-4.1.1_r1才首次引入VSYNC实现,然后逐步演进到android-4.4才得以完善,并在android-11、12后继续大改。 1 尚未引入 android-4.0.4_r2.1之前尚未引入VSYNC[1],SurfaceFlinger被实现为一个线程,通过睡眠来实…

【Django-DRF用法】多年积累md笔记,第3篇:Django-DRF的序列化和反序列化详解

本文从分析现在流行的前后端分离Web应用模式说起,然后介绍如何设计REST API,通过使用Django来实现一个REST API为例,明确后端开发REST API要做的最核心工作,然后介绍Django REST framework能帮助我们简化开发REST API的工作。 全…

请求prometheus数据然后使用tensorflow计算正则模型

使用tensorflow 计算正则模型, 数据来源为Prometheus的数据近7天的数据, 然后计算了90%区间的上下限和当前值的概率密度 import requests import pandas as pd import tensorflow as tf from datetime import datetime, timedelta# 定义 Prometheus 查询的参数 url "htt…

钩子函数-hook

钩子函数-hook hook 的作用 利用钩子函数可以在所有测试用例执行前做一些预置操作(如:准被测试数据、测试环境) 或者在测试结束后做一些后置操作(如:清理测试数据) 钩子函数在其它框架中也有&#xff0…

uni-app:前端实现心跳机制(全局)+局部页面控制心跳暂停和重新心跳

一、App.vue全局中写入心跳 在data中定义变量heartbeatTimer,便于暂停心跳使用在onLaunch中引用开始心跳的方法startHeartbeat()写入开始心跳方法写入暂停心跳方法写入请求后端刷心跳机制 定义变量 // 在全局设置的心跳机制中添加一个变量来保存定时器的标识 data(…

HALCON根据需要创建自定义函数

任务要求: 创建函数myfun(a,b,c),输入浮点数a,b的值,计算c a b,将计算结果返回。 操作步骤: 1)打开HDevelop程序 2)打开函数菜单,选择“创建新函数”&#xff0c…

torch 的数据加载 Datasets DataLoaders

点赞收藏关注! 如需要转载,请注明出处! torch的模型加载有两种方式: Datasets & DataLoaders torch本身可以提供两数据加载函数: torch.utils.data.DataLoader()和torch.utils.data.Datase…

11 redis中分布式锁的实现

单机锁代码 import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.con…

如何解决requests库自动确定认证arded 类型

requests 库是一种非常强大的爬虫工具,可以用于快速构建高效和稳定的网络爬虫程序。对于经常使用爬虫IP用来网站爬虫反爬策略的我来说,下面遇到的问题应当值得我们思考一番。 问题背景 在使用requests库进行网络请求时,有时会遇到需要对目标服务进行认证…

c++模式之单例模式详解

c模式之单例模式详解 1.概念2.懒汉模式示例(缺点)3.懒汉模式线程安全4.饿汉式创建单例5.饿汉模式线程示例 1.概念 单例模式是指在整个系统生命周期内,保证一个类只能产生一个实例,确保该类的唯一性. 使用单例两个原因&#xff1a…

在 Windows 中关闭 Nginx 所有进程

在 Windows 中关闭 Nginx 所有进程并强制重启的命令如下: 打开命令提示符(CMD)。 输入以下命令来查找 Nginx 进程的 PID: tasklist /fi "imagename eq nginx.exe"此命令将列出所有名为 nginx.exe 的进程以及它们的 PID…

Visio免费版!Visio国产平替软件,终于被我找到啦!

作为一个职场人士,我经常需要绘制各种流程图和图表,而Visio一直是我使用的首选工具。但是,随着公司的发展和工作的需要,我逐渐发现了Visio的优点和不足。 首先,让我们来看看Visio的优点。Visio是一个专业的流程图和图…

JVS低代码表单设计:数据联动详解(多级数据级、数据回显等)

在这信息化时代,表单作为数据的收集和展示工具,已经渗透到不同的角落。JVS低代码对表单的设计和操作进行了不断的优化和创新。其中,联动回显作为一项重要的功能,无论是多级数据级联控制、组件的联动控制,还是多表的数据…
最新文章