为知笔记的私有部署可以通过Docker镜像来实现。您可以下载完整的为知笔记服务端以及所需的各种环境,同时还包含了为知笔记网页版。您只需要启用为知笔记服务端,就可以利用自带的为知笔记网页版,在局域网内无限制使用为知笔记各种功能了 。

具体的部署教程可以参考官方提供的文档。如果您遇到了问题,也可以联系为知笔记的客服进行咨询。

一、配置内网穿透访问

在内网环境下,可以通过配置端口映射实现对外部服务器的访问。例如,192.168.1.66: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版本还是安卓版本,都无法正常登录或者能够登录但同步异常。这可能是因为某些客户端仍然使用http协议进行连接。

四、寻求解决方法

在官方部署文档中提到了为知笔记私有部署配置nginx反向代理和https的方法 (wiz.cn)。经过测试验证,虽然浏览器使用https访问了web服务,但在wiznote服务内部,仍然认为没有开启https,返回都是http。这是因为需要在请求头中加入客户端真实IP以及协议的信息,以便后端服务返回正确的协议握手报文。

五、配置Nginx反向代理

问题在于,如何配置威联通的反向代理以满足这些要求?反向代理一定要使用nginx吗?通过SSH进入服务器,发现实际上使用的是apache。因此,需要对Nginx进行魔改以满足需求。

六、将Nginx配置翻译成Apache

通过对Nginx配置的翻译,将其转换为Apache格式。这样就可以实现与官方示例相同的功能,同时满足后端服务的要求。

一、搭建反向代理

这里的过程,就不多赘述了。核心原理就是将官方的 Nginx 配置翻译成威联通反向代理可以识别的配置。这个在 NAS 设置页面里是找不到的。

二、修改反向代理配置

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

修改反向代理配置

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

```

ProxyPreserveHost On

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

```

三、重启反向代理

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

```bash

/etc/init.d/reverse_proxy.sh reload

```

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

四、迁移数据

完成多端的 endpoint https 改造之后,开始迁移数据。为知笔记的最新版本 Windows 客户端支持账号之间复制笔记。安装经典 Windows 客户端并先登录一次私有化账号。再登录被迁移的账号,在笔记本顶级目录右击,可以看到相关选项。这里就不详细说了。

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

五、备份数据

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

六、其他功能

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

七、结语

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