
lovasoa/wboWBO 是一款在线协作白板,允许多名用户在大型虚拟画板上同时绘图。所有连接的用户都能实时看到画板更新,且画板状态始终保持持久化。它可用于多种场景,包括艺术创作\、娱乐、设计和教学等。
演示服务器地址:wbo.ophir.dev
| ***画板 | 协作图表编辑 | ||
| 在WBO上教授数学 | 绘画创作 |
如果您拥有自己的Web服务器,并希望在其上运行私有WBO实例,操作非常简单。
如果您使用docker容器化服务,可以轻松将WBO作为容器运行。Docker Hub上托管了WBO的官方镜像lovasoa/wbo:/wbo-boards:/opt/app/server-data" lovasoa/wbo:latest # 运行WBO
之后,您可以通过http://localhost:5001访问WBO。
或者,您也可以直接使用node.js运行代码,无需Docker。
首先,下载源代码:
git clone [***] cd whitebophir
然后,如果尚未安装node.js(v10.0或更高版本),请先安装,接着安装WBO的依赖:
npm install --production
最后,启动服务器:
PORT=5001 npm start
这将在您的机器上直接运行WBO,端口为5001,与其他服务没有隔离。您也可以使用如下命令:
PORT=5001 HOST=127.0.0.1 npm start
使whitebophir仅监听回环设备。如果您想将whitebophir置于反向代理之后,这会很有用。
默认情况下,WBO会启动自己的Web服务器,并在服务器根路径(/)提供所有内容。如果您希望通过不同路径(如[***])访问服务器,需要设置反向代理。有关如何为WBO设置反向代理的说明,请参阅我们Wiki上的WBO反向代理设置。
WBO支持多种语言。翻译文件存储在server/translations.json中。如果您想为这个协作项目做贡献,可以将WBO翻译成您的母语。
WBO支持使用Json Web Tokens进行身份验证。应通过查询参数token传递,例如[***]{token}。
configuration.js中的AUTH_SECRET_KEY变量应填入JWT的密钥。
在负载中,您可以将用户角色声明为数组。当前接受的角色仅有moderator(管理员)和editor(编辑者)。
moderator:赋予用户清除画板所有数据的额外工具。声明此角色的示例如下。editor:赋予用户编辑画板的能力。这是所有用户的默认角色。json{ "iat": ***, "exp": ***, "roles": ["moderator"] }
管理员可以使用"清除"工具,该工具会擦除画板上的所有内容。
WBO支持通过JWT验证画板名称。
要检查有效的画板名称,只需在角色中添加带有冒号的画板名称。这样您可以为特定画板设置管理员。
json{ "roles": ["moderator:<boardName1>","moderator:<boardName2>","editor:<boardName3>","editor:<boardName4>"] }
例如,[***]{token}
json{ "iat": ***, "exp": ***, "roles": ["moderator:mySecretBoardName"] }
现在,您可以确保只有拥有正确令牌的用户才能访问具有特定名称的画板。
启动WBO服务器时,它会从多个环境变量加载配置。您可以在configuration.js中查看这些变量的列表。一些重要的环境变量包括:
WBO_HISTORY_DIR:配置存储画板的目录。默认为./server-data/。WBO_MAX_EMIT_COUNT:客户端在单位时间内可发送的最大消息数。如果您希望绘图更流畅,可以增加此值,但如果服务器处理能力不足,可能更容易受到拒绝服务***。默认单位为每4秒的消息数,默认值为192。AUTH_SECRET_KEY:如果您想使用JWT对画板进行身份验证,此变量用于声明密钥。如果您在使用WBO时遇到问题或想提出新功能,请提交GitHub issue。
如果您自行托管WBO实例,可能需要监控其负载、连接用户数和其他各种指标。
您可以通过STATSD_URL环境变量启动WBO,将指标发送到兼容statsd的指标收集代理。
示例:docker run -e STATSD_URL=udp://127.0.0.1:8125 lovasoa/wbo。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务