Docker 部署思源笔记实现多人协作(更新版本:1.2.3)

本贴最后更新于 1240 天前,其中的信息可能已经斗转星移

前言

最近准备将协作平台从 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

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 装好了,开始部署思源笔记。

docker pull b3log/siyuan

然后考虑一下参数,我看的帮助文档里的参数有些过时了,可以通过 -h 参数输出帮助。
需要注意的地方:指定 workspace 的位置方便后续处理,设置授权码 password,这里替换为你想设置的密码。

docker run -v /siyuanworkspace:/siyuanworkspace -p 6806:6806 b3log/siyuan -resident -workspace /siyuanworkspace -accessAuthCode password

理论上换个端口会安全一点、、、

打开 networkServe 配置

重要:运行之后会生成配置,在 1.2.3 版本之后,要去配置文件中将 networkServe 设置为 true 才能正常访问。

image.png

配置文件大概位置: /siyuanworkspace/conf/conf.json


浏览器访问 http://ip:6806:/,提示需要输入密码,密码是你刚刚设置的授权码。

image.png

大功告成。

测试完毕后,可以这样运行:

docker run -d -v /siyuanworkspace:/siyuanworkspace -p 6806:6806 b3log/siyuan -resident -workspace /siyuanworkspace -accessAuthCode password

这样在 detached mode 中运行,就可以后台运行了。

试了一下,虽然用的是国外服务器,但没有什么延迟的感觉。

(可选操作)绑定域名

绑定个域名好记一点、、、实际上,添加一条 A 记录就可以了,没有什么额外的工作。

image.png

(可选操作)使用 MegaSync 同步

我的最初目的是多人协作编辑一个笔记本,我还希望这个笔记本能被同步到本地,这样我可以在别的笔记本中引用它。

首先需要注意,在笔记本根目录下创建一个 assets 文件夹,这样资源文件就会单独保存到这个文件夹,而与 Workspace 隔离开。

我现在使用的同步盘是 Mega,因此我考虑用 Mega 同步对应的文件夹到本地。可以使用 Mega CMD 进行操作。

下载好之后,通过 scp -P port localpath root@ip:remotepath 进行上传。根据官网教程进行安装。

这个 MegaCMD 是个全功能客户端,我们只需要 Sync 就好了,无需过多了解。事实上有一个非常详细的 UserGuide.

mega-login email password

登陆完成之后,准备开始同步。由于我已经在本地创建好了对应的笔记本并同步到 Mega,因此路径上需要稍作调整。
请在操作前备份。

MEGA 路径:/MEGAsync/SiYuan/data/Gaokao/
服务器路径:/siyuanworkspace/data/Gaokao

需要注意,在同步前要创建对应的文件夹。例如 mkdir /siyuanworkspace/data/Gaokao

然后开始同步。

mega-sync /siyuanworkspace/data/Gaokao /MEGAsync/SiYuan/data/Gaokao

稍微等待一会,进去 ls 就可以看到文件全部同步过去了。

image.png

顺利同步、、、

大概尝试了一下,新建文档之类的是可以顺利同步过去的,但是有一定的延迟。

但是如果同时修改某个文档,是无法同步的。

这不是可靠性很高的同步方案,请谨慎使用。

(可选操作)打包一个第三方客户端

曾经我写过一篇在 Linux 下使用 Nativefier 打包思源笔记的文章,其实这个操作在任何平台都适用。
对于任意的网页,我们都可以打包成一个 Electron 应用。

因此我们可以打包一个 Windows 程序分享给他人使用。(虽然我是 Linux 用户、、、)
这样可以做到类似客户端的体验,比如托盘、常驻后台、单例模式之类的,详细请访问原文章吧。

nativefier --name "RemoteSiyuan"  -i /home/clouder/Pictures/Icons/Siyuan.ico --single-instance --tray -e 13.1.0 http://address:6806 

image.png

Linux 下测试正常,转到 Windows 虚拟机测试。

image.png

看起来很正常。在 Windows 下同样损失了思源自带的标题栏,因为这是网页打包。
往好处想,这也让 UI 变得更协调美观了……

更新

更新时,先停止之前的容器。

docker container list
docker stop ....

再次 pull:

docker image pull b3log/siyuan

然后再次运行即可。

结语

实际上用 Docker 部署思源笔记的 Kernel 是非常简单的。
其实直接运行 Kernel 的二进制文件是一种更简单的方法,但还是建议大家按官方文档来吧。

目前尚未投入使用,日后可能会有附加反馈。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    23001 引用 • 92504 回帖 • 2 关注
2 操作
Clouder 在 2021-07-30 12:45:49 更新了该帖
Clouder 在 2021-07-30 12:45:25 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • ybxs

    我在 windows 打包遇到一个问题就是,nativefier 打包后,打开应用直接是全屏的,无法调整窗口大小,整体设置如下:
    nativefier --name "SiYuan" "http://我的服务器 IP:6806" --icon "F:\SEU_file\windows_code\icon\siyuan.ico" --width 1280 --height 720 --min-width 640 --min-height 480 --max-width 1920 --max-height 1080 --no-full-screen --basic-auth-password 2512591041 --electron-version 33.3.0
    nativefier 版本:52.0.0
    electron 打包版本:33.3.0


    已经解决,方法是在 linux 平台打包输出 win 平台的应用程序,终于不是强制全屏。

    1 操作
    ybxs 在 2024-12-21 13:38:23 更新了该回帖