在 VPS 上部署 TriliumNext 笔记

部署 TriliumNext 同步个人笔记。已有桌面库时别先初始化服务器,用临时笔记和附件测试双向同步,并另存历史备份。

想离线写笔记,再同步到其他电脑,可以考虑 TriliumNext。桌面端保存本地资料,服务器负责同步,也能用浏览器阅读。安装前先确定要保留哪一份笔记库,这会决定初始化顺序。

它适合个人资料树、项目笔记和带附件的记录。这里使用项目的普通 Docker 镜像,不混用 rootless 镜像的数据目录;多人协作文档应另行比较权限和同时编辑需求。

固定版本,再准备数据目录

Linux VPS 已安装 Docker Engine、Compose 插件,SSH 登录正常。使用普通 Docker Engine,创建独立目录:

sudo mkdir -p /opt/trilium/data
cd /opt/trilium

安装时从项目发布页选择版本,在 .env 写入实际版本,例如 TRILIUM_VERSION=v0.106.0。这个值是版本示例,不代表今后安装时的最新版;桌面端与服务端应按对应版本的同步要求一起安排,不能让 latest 无提示地升级一侧。

compose.yaml:

services:
  trilium:
    image: triliumnext/trilium:${TRILIUM_VERSION:?choose a release}
    restart: unless-stopped
    ports:
      - "127.0.0.1:18080:8080"
    environment:
      TZ: Asia/Shanghai
    volumes:
      - ./data:/home/node/trilium-data

普通镜像需要按它自己的入口程序处理权限,官方不支持直接给这个变体加任意 user:;需要指定数字身份时核对 USER_UID、USER_GID。rootless 变体的默认目录为 /home/trilium/trilium-data,不能只改标签而继续沿用上面挂载路径。

docker compose config --quiet
docker compose pull
docker compose up -d
docker compose logs --tail=100 trilium

在自己的电脑建立转发,访问 http://127.0.0.1:18080:

ssh -N -L 127.0.0.1:18080:127.0.0.1:18080 user@YOUR_VPS_IP

先确认日志无权限或数据库错误。需要远程同步时,为服务配置真实域名及有效 HTTPS 证书,网关转发到本机 18080;不要把 HTTP 同步地址直接用于公网,也不要关闭客户端证书校验来绕过证书问题。

已有桌面笔记,服务器保持未初始化

如果桌面端已经有正式笔记,服务器应保持未初始化状态。先独立备份桌面数据,再在桌面端的同步设置中填写服务器 HTTPS 地址,测试连接并等待上传完成。不要先在服务器建立一个无关的新笔记库,再期待两边自动合并。

如果服务器已经有要使用的笔记,新安装的桌面端则选择从同步服务器初始化,填写实际地址与认证信息。两种方向都先以一台电脑完成,再接入下一台。

同步成功提示之后,用一条临时笔记验证两个方向:桌面创建、服务器看到;浏览器修改、桌面收到;上传一个小附件后,从另一端下载打开。两台设备离线编辑同一段内容时,仍可能发生冲突,检查笔记修订,不要把同步理解为所有冲突都会保留在当前正文里。

时间也需要一致,官方同步文档要求客户端与服务端时间差在允许范围内。遇到同步失败,先查版本、实际生效地址、证书、代理和系统时间;直接重新建库会让原问题更难判断。

整理笔记时,注意克隆和副本的区别

可以按服务器、项目或服务建立笔记树,但同一篇记录被“克隆”到不同位置时,仍是同一份笔记,修改会关联到其他位置。想保留某次升级前的独立记录,应建立副本或导出,不要仅靠多放一个树节点。

维护记录写清日期、镜像版本、域名和恢复位置。密码与私钥保存在适当的密钥管理工具,不要为了方便把所有登录凭据嵌入普通可分享笔记。附件会增长,采购磁盘时要算上附件和独立备份。

如果现有 VPS 有余量,可以先合并部署。准备新服务器时,按同步人数、附件体积及其他应用的总开销比较Docker 应用 VPS,先验证小型笔记库的读写与同步,再扩大用途。

个人笔记同步可先从 2 GB 内存的 Linux 实例试部署,附件多时按实际库、备份和增长选盘;和其他应用共机,也看看 4 GB 实例的费用。可比较 雨云 RCS 的笔记服务配置 与 Evoxt 的实例与地区。先用完整笔记副本测试同步、附件,并试一次恢复,再决定长期规格,设备数量不能单独推算所需内存。

同步不能替代历史备份

误删也可能同步到其他设备。需要保留历史时,把服务器完整数据目录、Compose、版本记录保存到同步关系以外的位置;不要把正在打开的数据库目录交给 Syncthing 或网盘实时复制。

小型实例可以短暂停止 Trilium,使用备份工具保存整个 data 与配置,完成后启动并重新检查同步。恢复时用相同版本,在隔离目录和另一个回环端口启动,先查看较早笔记与附件。恢复实例暂时不接正式桌面端,避免旧数据进入正在使用的同步关系。

升级前保留旧版本对应的完整数据。新版改变数据库之后,单独改回旧镜像未必能回退;要使用升级前的匹配副本。项目入口和发布说明见 TriliumNext 官方仓库。