用了一段时间了,确实是个好软件,但是因为是外国开发者,更新很频繁,支持自己本地部署和同步,完全符合我的需求,但是出现了问题很多时候很难流畅沟通,就需要自己摸索,而且网络上充斥着大量的文章,实际是都有问题的,在这里发一下,后来者可以及时发现问题。
1、文件夹挂载
网上启动docker用的命令式是
docker run -d -p 0.0.0.0:8080:8080 -v ~/trilium-data:/root/trilium-data zadam/trilium
这个命令在以前是没有问题的,但是后来更新之后,/root/trilium-data的路径发生了改变,要换成
/home/node/trilium-data,这个在网上搜到的教程基本都是没有说明的,大部分不是实际使用的用户,发个文章了事,所以启动命令换为
docker run -d -p 0.0.0.0:8080:8080 -v ~/trilium-data:/home/node/trilium-data zadam/trilium
否则,当你同步完发现,你同步了个寂寞,/root/trilium-data是空文件
2、异常排查
当服务没有正常启动,需要看一下报错信息,但是如果使用后台运行,就看不到当前运行状态
docker run -it -p 0.0.0.0:8080:8080 -v ~/trilium-data:/home/node/trilium-data zadam/trilium /bin/sh
这里使用sh终端进入,因为docker镜像没有bash环境
可以手动sh start-docker.sh运行服务,排查问题,我也是通过这种方式发现同步时文件写入的路径发生了变化
3、客户端和服务端同步
客户端和服务端同步时版本要一致,否则不进行同步,开发者这点需要加强,建议隔一段时间同步更新服务端和客户端至最新版本。
笔记数据都是存在document.db中的,linux服务器就在你设置挂载的目录内,windows则在
C:\Users\{$USER}\AppData\Roaming\trilium-data
{$USER}根据你自己用户名修改,备份时保存即可,或者直接新建文件夹,把document.db复制过去,简单粗暴解决问题。
4、文件夹权限
以前还遇到过文件夹权限不足,无法写入,因为挂载文件夹是服务器使用root权限创建的,docker没有权限写入,有两个思路,一是给docker高权限,即
docker run -it --privileged=true -p 0.0.0.0:8080:8080 -v ~/trilium-data:/home/node/trilium-data zadam/trilium
还有一种是先创建能够写入的文件夹,默认trilium-data的权限是lighthouse
mkdir trilium-data
chown lighthouse:lighthouse trilium-data
如果还有遇到其他问题,欢迎一起讨论