trilium 同步服务配置笔记
trilium 是一个个人知识库笔记软件,支持同步到自己的服务器上。
参考资料:
首先在 ubuntu 上安装 nodejs 10.x
,版本必须在 10.5
之后。然后根据官方指南安装所有依赖:
sudo apt install libpng16-16 libpng-dev pkg-config autoconf libtool build-essential nasm libx11-dev libxkbfile-dev
然后克隆最新稳定版源码并安装 npm 包:
git clone -b stable https://github.com/zadam/trilium.git
cd trilium
npm install
这期间我遇到过一个报错:
g++: fatal error: Killed signal terminated program cc1plus
没有搜索到什么解决方法,某个回答说是内存不够,再次运行 npm install
就好了。
到这一步,原本直接运行就可以,但因为这个服务器上还运行了别的应用,我打算把它部署在子域名下,所以需要配置一下端口和反向代理。
在 /etc/nginx/sites-available/
下建立 trilium
,并写入如下内容:
server {
listen 80;
listen [::]:80;
server_name trilium.example.com; // 自定义域名
location / {
proxy_pass http://127.0.0.1:8080/; // 自定义端口
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
注意这里有个坑:proxy_pass
必须用 http
协议,否则会 502。
不知为何,我的 /home/[user]/
目录下并不存在 .local/share
,因此只能自己手动建立一个 data directory:
cd ~
mkdir trilium-data
export TRILIUM_DATA_DIR= ~/trilium-data
然后把 config.ini
复制过来:
cp <dir>/trilium/config-sample.ini ~/trilium-data/config.ini
把这个 config.ini 里的端口改掉,就齐活了。
现在可以运行:
cd trilium
nohup node src/www &
这样即使用户登出,还是能在后台运行服务。在这一步又踩了两个坑,一个是没装 sqlite3,于是手动 npm install sqlite3
;另一个是提示 DB uninitialized
,只要配置正确后跳转到 /setup
完成初次使用导航就好了。
登录和同步完成后,又发现一个问题,就是加载实在太慢。可以调整一下 payload 大小限制,在 server{}
里加上:
client_max_body_size 0;
最后,照例 certbot
配置 SSL
证书,就完成了。其实还有很多不完善的地方,研究 nginx 文档后再回来修改吧。