WBO 是一种在线协作白板,允许许多用户同时在大型虚拟板上绘图。 Board 会为所有已连接的用户实时更新,并且其状态始终保持不变。它可以用于许多不同的目的,包括艺术、娱乐、设计、教学。
演示服务器可在 wbo.ophir.dev
匿名板 | ![]() | 协作图表编辑 | ![]() |
在 WBO 上教授数学 | ![]() | 绘画艺术 | ![]() |
如果您有自己的 Web 服务器,并且想要在其上运行 WBO 的私有实例,则可以。让它在你自己的服务器上运行应该很容易。
如果您使用 docker 容器化服务,您可以轻松地将 WBO 作为容器运行。
WBO 的官方 docker 镜像托管在 dockerhub 上,作为 lovasoa/wbo
: 。
您可以运行以下 bash 命令在端口 5001 上启动 WBO,同时将板保留在 Docker 之外:
mkdir wbo-boards # Create a directory that will contain your whiteboards chown -R 1000:1000 wbo-boards # Make this directory accessible to WBO docker run -it --publish 5001:80 --volume "$(pwd)/wbo-boards:/opt/app/server-data" lovasoa/wbo:latest # run wbo
然后,您可以在 访问 WBO。http://localhost:5001
或者,您可以直接使用 node.js 运行代码,而不使用 docker。
首先,下载源代码:
git clone https://github.com/lovasoa/whitebophir.git
cd whitebophir
然后安装 node.js(v10.0 或更高版本) 如果您还没有,请安装 WBO 的依赖项:
npm install --production
最后,您可以启动服务器:
PORT=5001 npm start
这将直接在您的计算机上的 5001 端口上运行 WBO,而无需与其他服务隔离。您还可以使用类似
PORT=5001 HOST=127.0.0.1 npm start
使 WhiteBophir 仅在 loopback 设备上侦听。如果您想将 whitebophir 放在反向代理后面,这很有用。
默认情况下,WBO 会启动自己的 Web 服务器,并在服务器的根目录 (on) 提供其所有内容。
如果要通过不同的路径访问服务器,则必须设置反向代理。
请参阅我们 Wiki 上有关如何为 WBO 设置反向代理的说明。/
https://your.domain.com/wbo/
WBO 提供多种语言版本。翻译存储在 server/translations.json
中。
如果您想为这个合作项目做出贡献,您可以将 WBO 翻译成您自己的语言。
WBO 支持使用 Json Web 令牌进行身份验证。这应该作为带有键 的查询传入,例如token
http://myboard.com/boards/test?token={token}
configuration.js
中的变量应填充 JWT 的密钥。AUTH_SECRET_KEY
在有效负载中,您可以将用户的角色声明为数组。
目前唯一接受的角色是 和 。moderator
editor
moderator
将为用户提供一个额外的工具来擦除板中的所有数据。要声明此角色,请参阅以下示例。editor
将使用户能够编辑 Board。这是所有用户的默认角色。
{ "iat": 1516239022, "exp": 1516298489, "roles": ["moderator"] }
版主可以访问 清除 工具,该工具将擦除 Board 中的所有内容。
WBO 支持使用 JWT 验证板。
要检查有效的 Board 名称,只需将 Board 名称添加到角色中,并加上 “:” 即可。有了这个,您可以为特定板设置版主。
{ "roles": [ "moderator:<boardName1>", "moderator:<boardName2>", "editor:<boardName3>", "editor:<boardName4>" ] }
例如,http://myboard.com/boards/mySecretBoardName?token={token}
{ "iat": 1516239022, "exp": 1516298489, "roles": ["moderator:mySecretBoardName"] }
现在,您可以确保只有拥有正确令牌的用户才能访问具有特定名称的 Board。
当您启动 WBO 服务器时,它会从多个环境变量加载其配置。
您可以在 configuration.js
中查看这些变量的列表。
一些重要的环境变量是:
WBO_HISTORY_DIR
:配置 Board 的保存目录。默认为 。./server-data/
WBO_MAX_EMIT_COUNT
:客户端每单位时间内可以发送的最大消息数。如果您想要更平滑的绘图,请增加此值,但如果您的服务器没有足够的处理能力,则容易受到拒绝服务攻击。默认情况下,此数量的单位为每 4 秒消息数,默认值为 。192
AUTH_SECRET_KEY
:如果您想使用 jwt 验证您的开发板,这将声明密钥。
如果您遇到问题或想在 WBO 中提出新功能,请打开 github 问题。
如果您正在自托管 WBO 实例,则可能需要监控其负载, 已连接用户数以及各种其他量度。
您可以使用环境变量启动 WBO,以将其发送到与 statsd 兼容的
指标收集代理。STATSD_URL
例:。docker run -e STATSD_URL=udp://127.0.0.1:8125 lovasoa/wbo
- 如果您使用 prometheus,则可以使用 statsd-exporter 收集指标。
- 如果您使用 datadog,则可以使用 dogstatsd 收集指标。
要下载 SVG 格式的板预览,您可以访问 ,例如,将 https://wbo.ophir.dev/board/anonymous 更改为 https://wbo.ophir.dev/preview/anonymous。渲染器不是 100% 忠实的,但它通常已经足够好了。/preview/{boardName}