前言
最近准备将协作平台从 HackMD 迁徙到思源笔记。 这主要是因为我个人笔记使用思源,而团队笔记使用 HackMD,不免有些混乱。 再加上思源的块信息实在是很好的平台,基于丰富的信息有很多可操作性,后续也有一定的相关的计划,所以现在打算开始迁徙。
首先买了一台服务器、、、1v 512MB,英国,凑合用用。
安装了 Debian10.3,准备开始操作。
(可选操作)准备工作
一下都是可选的步骤,主要是为了安全性等考虑。
先更新一下系统:apt update
然后 apt upgrade
,更新完重启一下,如果出问题了,则重装系统、、、
设置一下时区:timedatectl set-timezone Asia/Shanghai
更改 SSH 端口:vim /etc/ssh/sshd_config
,修改 Port 22
,然后 systemctl restart sshd
断开连接,使用新的端口重新连接。
然后最好取消掉密码登陆。 在本机配置 SSH 密钥,然后上传到服务器。可以参考这篇文章。
最后配置一下防火墙,打开 SSH 端口和思源端口 6806
即可,可能你的服务商会提供安全组策略。
部署思源 Docker
先参考这篇文章安装 Docker
代码语言:javascript复制apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
apt update
apt install docker-ce
然后 Docker 装好了,开始部署思源笔记。
代码语言:javascript复制docker pull b3log/siyuan
然后考虑一下参数,我看的帮助文档里的参数有些过时了,可以通过 -h
参数输出帮助。
需要注意的地方:指定 workspace
的位置方便后续处理,设置授权码 password
,这里替换为你想设置的密码。
docker run -v /siyuanworkspace:/siyuanworkspace -p 6806:6806 b3log/siyuan -resident -workspace /siyuanworkspace -authCode password
理论上换个端口会安全一点、、、
浏览器访问 http://ip:6806:/
,提示需要输入账号密码,账号是 siyuan
,密码是你刚刚设置的授权码。
大功告成。
测试完毕后,可以这样运行:
代码语言:javascript复制docker run -d -v /siyuanworkspace:/siyuanworkspace -p 6806:6806 b3log/siyuan -resident -workspace /siyuanworkspace -authCode password
这样在 detached mode
中运行,就可以后台运行了。
试了一下,虽然用的是国外服务器,但没有什么延迟的感觉。
(可选操作)绑定域名
绑定个域名好记一点、、、实际上,添加一条 A
记录就可以了,没有什么额外的工作。
(可选操作)使用 MegaSync 同步
我的最初目的是多人协作编辑一个笔记本,我还希望这个笔记本能被同步到本地,这样我可以在别的笔记本中引用它。
首先需要注意,在笔记本根目录下创建一个 assets
文件夹,这样资源文件就会单独保存到这个文件夹,而与 Workspace 隔离开。
我现在使用的同步盘是 Mega,因此我考虑用 Mega 同步对应的文件夹到本地。可以使用 Mega CMD 进行操作。
下载好之后,通过 scp -P port localpath root@ip:remotepath
进行上传。根据官网教程进行安装。
这个 MegaCMD 是个全功能客户端,我们只需要 Sync 就好了,无需过多了解。事实上有一个非常详细的 UserGuide.
代码语言:javascript复制mega-login email password
登陆完成之后,准备开始同步。由于我已经在本地创建好了对应的笔记本并同步到 Mega,因此路径上需要稍作调整。 请在操作前备份。
MEGA 路径:/MEGAsync/SiYuan/data/Gaokao/
服务器路径:/siyuanworkspace/data/Gaokao
需要注意,在同步前要创建对应的文件夹。例如 mkdir /siyuanworkspace/data/Gaokao
然后开始同步。
代码语言:javascript复制mega-sync /siyuanworkspace/data/Gaokao /MEGAsync/SiYuan/data/Gaokao
稍微等待一会,进去 ls
就可以看到文件全部同步过去了。
顺利同步、、、
大概尝试了一下,新建文档之类的是可以顺利同步过去的,但是有一定的延迟。 但是如果同时修改某个文档,是无法同步的。 这不是可靠性很高的同步方案,请谨慎使用。
(可选操作)打包一个第三方客户端
曾经我写过一篇在 Linux 下使用 Nativefier 打包思源笔记的文章,其实这个操作在任何平台都适用。 对于任意的网页,我们都可以打包成一个 Electron 应用。
因此我们可以打包一个 Windows 程序分享给他人使用。(虽然我是 Linux 用户、、、) 这样可以做到类似客户端的体验,比如托盘、常驻后台、单例模式之类的,详细请访问原文章吧。
这里有一个注意的点:必须使用 http://address:6806/
才能正常授权。
在 Nativefier 中传入账号密码进行授权。
代码语言:javascript复制nativefier --name "RemoteSiyuan" -i /home/clouder/Pictures/Icons/Siyuan.ico --single-instance --tray -e 13.1.0 http://address:6806 --basic-auth-username siyuan --basic-auth-password password
Linux 下测试正常,转到 Windows 虚拟机测试。
看起来很正常。在 Windows 下同样损失了思源自带的标题栏,因为这是网页打包。
往好处想,这也让 UI 变得更协调美观了……
结语
实际上用 Docker 部署思源笔记的 Kernel 是非常简单的。 其实直接运行 Kernel 的二进制文件是一种更简单的方法,但还是建议大家按官方文档来吧。
目前尚未投入使用,日后可能会有附加反馈。