PassNAT LogoPassNAT

开源在线协作白板 WBO,NAS 上 Docker 一条编排部署,内网穿透远程多人同时画

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

这个项目是干嘛的

WBO(仓库名 whitebophir)是一个开源的在线协作白板。打开就能画,铅笔、直线、矩形、椭圆、文本、橡皮、移动、网格、缩放都在左边一条工具栏上,一共十来个工具。

它最关键的一点是:白板的地址就是入口。你把链接发给谁,谁点开就能进同一块板子一起画,两边的笔画实时同步,人走了内容也还在,都存在服务端。整个过程不需要注册账号、不需要装客户端。

装在自己的 NAS 上,画的东西就都在自己盘里 —— 上课讲题、给同事比划一个流程、跟家里人一起排个日程表,都用得上。

部署安装

下面这套是我自己在飞牛 NAS 上跑通的。家里宽带如果没有公网 IP,先准备好内网穿透 —— 我用的是 帕斯内网穿透,等容器起来之后把端口开放到公网,外面的人才打得开你的白板。

编排文件

在 NAS 上新建一个空文件夹,Docker 应用里切到 Compose 标签、点新增项目,路径选这个空文件夹,来源选「创建 docker-compose 文件」,把下面这段整段贴进去。

1services:
2 wbo:
3 image: lovasoa/wbo:latest
4 container_name: wbo
5 ports:
6 # 左边 3029 是 NAS 上的端口,右边 80 是容器里的,别写反
7 - "3029:80"
8 volumes:
9 # 画的东西都存在这个目录里,跟着 NAS 一起备份就行
10 - ./boards:/opt/app/server-data
11 restart: unless-stopped

要认的就三处:

一是镜像 lovasoa/wbo:latest —— 上游文档给的就是 latest,跟着它走就行。

二是端口 3029:80。冒号左边 3029 是 NAS 上对外的端口,可以换成你自己没被占用的;右边的 80 是容器里的端口,不要改。这个 3029 待会儿建隧道要填。

三是 ./boards:/opt/app/server-data。白板画的内容都落在这个 boards 目录里,跟着 NAS 一起备份就行。上游用的也是这种绑定挂载,不是具名卷,删起来方便。

勾上「创建后立即启动」再点创建。容器很轻,实测常驻内存只有三十几 MB,起来大概二十秒端口就通了。

让外面的人也能打开

白板这东西不发给别人就没有意义,所以这一步是必须的。在 NAS 的应用中心装上 PassNAT 插件,打开插件直接建隧道:协议选 TCP,本地地址留默认的 127.0.0.1 不用动,端口填上面那个 3029。

建好之后按一下电源,面板上就会给出一个公网地址。之后开白板、发链接,用的都是这个地址。

怎么用

首页上有三种板子:公共白板是所有人都能进的,随便画;「创建私人白板」会给你一块随机名字的板子,只有拿到链接的人能进;第三种是可以自己起名字的私有板,地址就是 /boards/ 加上你起的名字,好记也好发。

起个名字点「打开」,一块空白板子就出来了。左边挑工具画几笔,再把这个地址发给另一个人 —— 他打开看到的就是你刚画的,你继续画他那边跟着动。

顺带一提,板子的私密性靠的是「链接猜不到」,不是账号密码。所以真要放不方便给人看的东西,名字就别起得太好猜。