**需求:**希望在多个电脑和手机端记录笔记,做到实时同步。
**适用:**有一台可以部署服务的公网服务器。
思源笔记在 github 的说明中写到,docker 部署的思源不支持桌面端和手机端的客户端连接,只能在浏览器中使用。
但是熟悉思源笔记架构的应该知道,网页端和客户端用的都是一套代码,只需要让客户端连接远程服务器就可以了。
下面探索了如何在自己服务器上部署,并编译可以连接这个服务端的桌面端和手机端应用。
1 服务端修改
默认的服务端是在 docker 中部署的,不太符合我的需求,对其稍作更改。
1.1 服务端监听地址修改
服务器默认监听地址是 127.0.0.1,需要修改为 0.0.0.0;
或者需要用 nginx 等反向代理,反向代理配置需要配置 websocket /ws
修改方法,在工作空间数据目录 SiYuan/conf/conf.json 文件中改 system->networkServe : true
1.2 无连接自动退出
本来 kernel 是设计的随着前端启动/退出的,但是我们需要让他保持运行。
本身会检测如果处于容器中则保持运行,但是我们部署没有用到容器,因此修改下面的代码:
process.go HookDesktopUIProcJob
(){return}直接返回
1.3 无界面,需要修改默认编译参数
go build --tags fts5 -v -o "../app/kernel/SiYuan-Kernel.exe" -ldflags "-s -w -H=windowsgui" .
去掉-H=windowsgui
2 客户端修改
2.1 跳过启动本地 kernel
原本启动的时候,是会先启动 kernel 做为本地服务程序,这里我们修改代码,使跳过这个步骤
2.1.1 桌面端
app/electron/main.js
注释掉调用 initKernel
的代码,直接 boot()
增加代码 firstOpen = false;
否则启动客户端会让选择工作空间,但是我们已经没有本地工作空间了
2.1.2 移动端
MainActivity
注释掉 Mobile 模块的引用,相关的代码
还要注释掉对 kernel 的依赖 implementation(name: 'kernel', ext: 'aar')
2.2 修改连接地址,连接远端服务
基本上是全局替换 127.0.0.1==> 服务器地址
3 编译
3.1 编译前端
npm run build:app
npm run build:mobile
npm run build:desktop
npm run build:export
编译结果在同级目录里的四个文件夹
3.2 编译 kernel
在 scripts/win-build.bat 有脚本自己看
编译的结果 kernel.exe 加前端的四个文件夹部署在服务器运行
3.3 打包桌面端
npm run dist
3.4 打包安卓端
需要下载 siyuan-android-main 工程
需要 android-studio,
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于