【终极教程】:为知笔记在威联通NAS的私有化部署(内含独门绝技)

作者:布拉特

一、发端:

为知10年的老用户了,介于他们团队的重心以及产品迭代的节奏,一直担心哪天就停服了。其实在上次续费前,就想过找个大一点的厂商的产品替换,无奈笔记文件的导出实在麻烦,何况60一年真的不贵,就又继续续费了。直到我前几天又看到这个弹框

考虑到笔记在平时工作生活中还是非常高频的存在,算是未雨绸缪吧,决定这次无论如何决定折腾一把了。

二、方案选择

1. 选择迁移其他云笔记:导数据太麻烦,且不解决安全和长期服务的问题;一度想入坑onenote,但是听说2024年了,同步问题还是或多或少影响体验。

2. 选择本地部署:类似jolplin、ob是私有化部署的当红炸子鸡,一度想过入坑,不过最后还是在数据迁移以及使用习惯上犹豫了。

3. 为知的本地部署:使用习惯不用变,为知官网还在更新私有化部署的文档,感觉是团队重心到TOB之后,为企业定制的私有化部署方案。可以问客服要公有云到私有化部署的迁移教程(虽然我自己也摸索到了),最终决定还是用另一种方式“支持”为知笔记

至于私有化本身要考虑的问题,比如服务稳定性啥的,是后续不管部署哪个方案,都要解决的问题。

三、常规部署

官方提供的是基于docker的服务端镜像,看了下服务端架构是基于nginx+nodejs的选型,总体对内存和cpu还是有一定的要求,特别是内存,至少需要2G,请有条件后再尝试。由于官方文档是纯docker的命令行部署,下面基于威联通的container station再贴一下整体过程。有一些细节还是要注意的。

获取镜像

1. 整个服务端的镜像大小大概有3-4G,所以直接从dockerhub下载,网络是不行的。

2. 在属性设置中,增加国内的mirror加速地址,用图里面的一般就可以了

3. 从加速站下载镜像文件到本地,注意镜像文件名称不要写错

创建容器

4. 等待镜像下载完成后,在镜像文件列表里面,可以看到通过mirror下载的wiznote服务端镜像 ,点击右侧+号,进入容器创建过程。

5. 容器创建过程,就是网上资料最多的内容,不再赘述,纯看图吧,几个主要的配置,和我保持一样就行了

这里的udp端口是什么作用,还没研究,似乎不写也不影响使用,猜测是协同的时候用来实时通信的?有知道的大佬可以留言。

启动容器

按照以上配置启动容器后,使用

NAS局域网IP:aaaa访问 ,比如192.168.1.66:aaaa,aaaa就是上文图中配置的端口。应该可以访问到内网部署的为知笔记web端页面。

用户名:admin@wiz.cn 密码:123456

建议在内网环境修改好密码。

四、添加外网访问

按照以上方案,如果本身nas就具备内网穿透的能力,一般只要再配置一个aaaa和bbbb的端口转发就能使用了,对于威联通的NAS如何具备内网穿透能力,这里不再赘述了。威联通官方也提供了ddns域名的服务。不过以上设置都还是基于HTTP的。对于外网访问回去NAS这样的设备,强烈建议使用HTTPS回去。

对于威联通NAS,有一个免费的证书可以使用,建议参考黑群老司机转正威联通---QNAP TS-551 转com域名并部署SSL证书_NAS存储_什么值得买 (),一步到位完成官方ddns和https证书的设置。

五、多端的HTTPS连接问题,重点!!!

当我完成对web端服务的部署和https设置后,发现不管是windows经典版、X版本、IOS版本和安卓版本,都不能正常登录或者能够登录,但是同步异常!!!现象如整个帖子描述一样:

私有化部署的为知,客户端无法登录,网页端https正常【为知笔记吧】_百度贴吧 (baidu.com)

结论是告诉我要用http!! 这没法忍啊!!白搞了么??

我偶然发现,小黄鱼上竟然有卖为知笔记私有化坑位的!!,我就问了下他们是否支持https

,告诉我可以,那就说明还有希望!!

六、看到曙光

其实,在官方部署文档里面最后,提到了为知笔记 | 为知笔记私有部署配置nginx反向代理和https的方法 (wiz.cn),我用测试url验证了下,果然,虽然我浏览器用https访问了web服务,但是实际在wiznote服务内部,还是认为没有开启。返回都是http!

官方提到的设置方法,大概的意思是,https的反向代理,需要在请求头里面,家一些客户端真实IP以及协议的信息,后端服务才能返回正确的协议握手报文。

问题来了,威联通的反向代理,哪里去配置这些内容呢?反向代理,一定使用的nginx吗?? IT男的技能继续发挥下,ssh进去看下吧。。。,发现了这玩意:

似曾相识啊,验证下吧,就是apache...,看不懂没事,意思就是和官方的示例不一样就行了,需要自己魔改。

七、魔改,把Nginx配置翻译成Aapche

这里的过程,就不多赘述了,核心原理,就是把上面官方的需要支持https的NGinx配置,翻译成威联通反向代理能够认识的的配置。当然这个在NAS设置页面里面,肯定找不到。

威联通NAS在反向代理设置里面的每一条配置,都会生成一个单独的配置文件,位置如下

修改反向代理配置

我的为知笔记,是第三条规则,打开3.conf文件,在配置文件末尾,加上翻译过来的两条配置(我自己验证,有这两条就能工作了)

ProxyPreserveHost On

RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}

重启反向代理

修改完以上配置后,调用配置重加载命令,使修改生效

/etc/init.d/reverse_proxy.sh reload

注意:当我们在nas页面关闭或者新增配置的时候,可能上面增加的内容会被重新删除,我还没有来得及修改脚本,简单一些就是备份下,如果发现配置被复原,拿备份文件还原下就好。

八、迁移数据

完成多端的endpoint https改造之后,就开始迁移数据。为知笔记的最新的windows经典版本,是支持账号之间复制笔记的。

安装经典windows客户端,并先登录一次私有化账号

再登录被迁移的账号,在笔记本顶级目录右击,你能看到相关选项。这里就不详细说了

迁移完成后,新笔记里面,所有的笔记时间戳都会变成迁移当时的,这也是一个劣势,不过在笔记详情里面,还能看到笔记创建时间

九、备份数据

迁移到NAS之后,数据虽然安全了,但是本身丢数据的风险,反而比云端要增加了,所以对于笔记的数据目录,就是docker挂在的那个NAS目录,建议定期备份。威联通自带的HBS 3.0 功能比较丰富,支持把NAS本地数据,通过丰富的策略,备份到百度网盘等云端存储。强烈建议!!!

十、其他

至于支持微信/微博/邮件收藏,我还没时间尝试,根据官方文档,应该是可以的。我自己平时用的不多。

结语

通过自建服务,整体同步速度还是不错的,虽然为知笔记整体功能迭代已经不多,但是由于其多端的支持、良好的体验,虽然老气沉沉,整体还是能打的!对于有情怀的老用户,折腾一下还是挺有价值的。上述方案仅仅在我自己的威联通NAS测试通过,如果有什么问题,欢迎留言讨论啊~~

特别声明:以上文章内容仅代表作者本人观点,不代表新浪网观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与新浪网联系。

3英寸等于多少厘米?|微信群聊怎么@某个人