Skip to content

简单、免费、易于使用和部署的在线协作白板Online collaborative Whiteboard that is simple, free, easy to use and to deploy

License

Notifications You must be signed in to change notification settings

yuanzhongqiao/whitebophir

 
 

Repository files navigation

WBO

WBO 是一种在线协作白板,允许许多用户同时在大型虚拟板上绘图。 Board 会为所有已连接的用户实时更新,并且其状态始终保持不变。它可以用于许多不同的目的,包括艺术、娱乐、设计、教学。

演示服务器可在 wbo.ophir.dev

屏幕截图

匿名 协作图表编辑 WBO 用户界面屏幕截图:架构
WBO 上教授数学 WBO 教学 绘画艺术 WBO 上的河合猫

运行您自己的 WBO 实例

如果您有自己的 Web 服务器,并且想要在其上运行 WBO 的私有实例,则可以。让它在你自己的服务器上运行应该很容易。

在容器中运行代码(更安全)

如果您使用 docker 容器化服务,您可以轻松地将 WBO 作为容器运行。 WBO 的官方 docker 镜像托管在 dockerhub 上,作为 lovasoa/wboWBO 1M docker 拉取

您可以运行以下 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

默认情况下,WBO 会启动自己的 Web 服务器,并在服务器的根目录 (on) 提供其所有内容。 如果要通过不同的路径访问服务器,则必须设置反向代理。 请参阅我们 Wiki 上有关如何为 WBO 设置反向代理的说明。/https://your.domain.com/wbo/

翻译

WBO 提供多种语言版本。翻译存储在 server/translations.json 中。 如果您想为这个合作项目做出贡献,您可以将 WBO 翻译成您自己的语言

认证

WBO 支持使用 Json Web 令牌进行身份验证。这应该作为带有键 的查询传入,例如tokenhttp://myboard.com/boards/test?token={token}

configuration.js 中的变量应填充 JWT 的密钥。AUTH_SECRET_KEY

在有效负载中,您可以将用户的角色声明为数组。 目前唯一接受的角色是 和 。moderatoreditor

  • moderator将为用户提供一个额外的工具来擦除板中的所有数据。要声明此角色,请参阅以下示例。
  • editor将使用户能够编辑 Board。这是所有用户的默认角色。
{
  "iat": 1516239022,
  "exp": 1516298489,
  "roles": ["moderator"]
}

版主可以访问 清除 工具,该工具将擦除 Board 中的所有内容。

JWT 中的板名称验证

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 预览

要下载 SVG 格式的板预览,您可以访问 ,例如,将 https://wbo.ophir.dev/board/anonymous 更改为 https://wbo.ophir.dev/preview/anonymous。渲染器不是 100% 忠实的,但它通常已经足够好了。/preview/{boardName}

About

简单、免费、易于使用和部署的在线协作白板Online collaborative Whiteboard that is simple, free, easy to use and to deploy

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 91.1%
  • CSS 4.6%
  • HTML 4.1%
  • Dockerfile 0.2%