Docker 部署 Trilium Notes 完整教程:自建大型知识库

本文基于 triliumnext/trilium:main 镜像,Ubuntu 24.04 服务器实测(访问端口 8080

Notion、语雀、Obsidian 各用各的,数据格式不互通?Trilium Notes (TriliumNext 社区版)是一款 免费开源、可自托管的层级笔记应用 ------支持深度笔记树、富文本 / Markdown / 代码笔记、全文搜索、笔记地图、思维导图、加密保护、多设备同步,官方宣称可支撑 10 万+ 笔记 规模的知识库。更关键的是:单容器即可运行 ,无需 MariaDB / Redis,一条 docker run 就能上线

本文带你完成一次 TriliumNext Docker 部署 :从轩辕镜像拉取、创建数据目录、docker run 一键启动,到浏览器跟做 首次初始化向导 (语言 → 新建知识库 → 设置密码 → 登录),再浏览日记、搜索、笔记地图、保护会话,以及外观 / AI / 同步 / 代码笔记等设置------全程 Ubuntu 24.04 实测,附 17 张截图

国内用户从 Docker Hub 拉取 triliumnext/trilium 可能较慢,本文使用 轩辕镜像 加速域 docker.xuanyuan.run。官方 Docker 文档见 Using Docker,项目文档 TriliumNext Docs,源码 TriliumNext/Trilium

部署要点 :TriliumNext 容器内数据目录为 /home/node/trilium-data (非旧版 zadam/trilium/data)。轩辕镜像页部分示例仍写 /data请以本文与官方文档为准

一、Trilium Notes 是什么?

Trilium Notes (现由 TriliumNext 社区维护)是一款 免费开源、跨平台的层级笔记应用 ,专为构建和管理 大型个人知识库 设计。它是原 zadam/trilium 项目的社区延续版,Docker 镜像为 triliumnext/trilium

能力 说明
层级笔记树 任意深度树状结构;单条笔记可通过 克隆 出现在多个位置
富文本 / Markdown WYSIWYG 编辑器,支持表格、图片、LaTeX 公式、Markdown
代码笔记 多语言语法高亮,可选 Vim 快捷键
全文搜索 快速导航、书签、笔记提升(Hoisting)
笔记地图 可视化展示笔记间链接关系(知识图谱)
日记(Journal) 按年 / 月 / 日自动组织,适合每日记录
版本控制 笔记修订历史,可查看与恢复
加密保护 笔记级加密 + 保护会话,敏感内容需二次密码
多设备同步 自托管服务器 + 桌面 / 移动客户端同步
AI / MCP 可配置 LLM 提供商;支持 MCP 端点供 AI 助手读写笔记
思维导图 / 画布 Mind Elixir 思维导图、Excalidraw 画布笔记
数据导入导出 Evernote、Markdown 等格式

典型使用场景:

  • 个人 大型知识库、学习笔记、读书摘抄
  • 学术研究:文献笔记、实验记录、数学公式与代码片段
  • 项目文档:任务、进度、Wiki 式组织
  • 敏感信息:加密笔记 + 保护会话,数据完全在自有服务器

与 Memos 的区别 :Memos 偏轻量时间线随手记;Trilium 偏 深度层级组织 + 知识图谱 + 脚本自动化 ,适合笔记量大、结构复杂的用户。若只需极简 Markdown 时间线,可参考 Memos 部署教程

架构示意:

text 复制代码
浏览器 ──HTTP:8080──▶ Trilium 容器(单进程 + 内置 SQLite)
Trilium 容器 ──挂载卷──▶ 宿主机 trilium-data/(笔记数据库与附件)
桌面 / 移动客户端 ──同步协议──▶ 同一 Trilium 服务器

二、环境要求

项目 建议
操作系统 Linux(本文 Ubuntu 24.04)
Docker 已安装 Docker 与 Docker Compose V2
内存 ≥ 1 GB(推荐 2 GB;大型知识库建议 4 GB)
CPU 双核即可
磁盘 ≥ 2 GB(镜像 + 笔记数据与附件;知识库越大占用越多)
端口 8080(Trilium 默认 Web 端口)
工作目录 /www/wwwroot/trilium(独立目录,勿与其他项目混用)

验证 Docker:

bash 复制代码
docker --version
docker compose version

若尚未安装 Docker,可使用轩辕镜像一键脚本:

bash 复制代码
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)

更多安装说明见 轩辕镜像使用手册

镜像标签对照

标签 适用场景
main 本文实测标签,跟随主分支构建,适合试用
v0.91.6 等版本号 生产推荐,固定版本便于备份与回滚
latest 可能自动升级,不建议生产(尤其有同步客户端时)

三、拉取镜像

bash 复制代码
docker pull docker.xuanyuan.run/triliumnext/trilium:main

成功时终端类似输出(Ubuntu 24.04 实测):

text 复制代码
main: Pulling from triliumnext/trilium
55afa1ecc21d: Pull complete
6da5779e8eeb: Pull complete
7e2a5e2761f5: Pull complete
57eb903fc7a4: Pull complete
21af007bacf6: Pull complete
4f4fb700ef54: Pull complete
7f3b05c3b155: Pull complete
5df865968c63: Pull complete
3c672d20d5ad: Pull complete
773091eb7616: Pull complete
8fb5fe3424c8: Pull complete
328fa99b08e5: Download complete
Digest: sha256:86f8cd62cc6c864a734b364dc1a1c5357609c2f9e25a7e59367afb2f15708f99
Status: Downloaded newer image for docker.xuanyuan.run/triliumnext/trilium:main
docker.xuanyuan.run/triliumnext/trilium:main
官方镜像 轩辕镜像加速拉取
triliumnext/trilium:main docker pull docker.xuanyuan.run/triliumnext/trilium:main
triliumnext/trilium:v0.91.6 docker pull docker.xuanyuan.run/triliumnext/trilium:v0.91.6

四、快速体验:单容器部署

适合:个人试用、内网知识库、资源有限的 VPS。

4.1 创建数据目录

Trilium 必须将宿主机目录挂载到容器内 /home/node/trilium-data ,否则重启后数据丢失。官方容器默认以 UID 1000 写数据:

bash 复制代码
sudo mkdir -p /www/wwwroot/trilium/trilium-data
sudo chown -R 1000:1000 /www/wwwroot/trilium/trilium-data
cd /www/wwwroot/trilium

权限踩坑 :若日志出现 EACCESpermission denied,执行 sudo chown -R 1000:1000 /www/wwwroot/trilium/trilium-data 后重启容器。也可通过环境变量 USER_UID / USER_GID 指定运行用户(见第六节 FAQ)。

4.2 启动容器

镜像已拉取可跳过第三节,直接运行(Ubuntu 24.04 实测命令):

bash 复制代码
docker run -d \
  --name trilium \
  --restart unless-stopped \
  -p 8080:8080 \
  -v /www/wwwroot/trilium/trilium-data:/home/node/trilium-data \
  -e TZ=Asia/Shanghai \
  docker.xuanyuan.run/triliumnext/trilium:main

成功时返回容器 ID,例如:

text 复制代码
c9d7c5cb8cb25d73b6686c1a275b3cb20e0e01a82c245fb63f8c8904571a9fcd

各参数说明:

配置 说明
-p 8080:8080 对外暴露 Web 访问端口
-v ...:/home/node/trilium-data 必须挂载,持久化笔记数据库与附件
-e TZ=Asia/Shanghai 时区(非 Compose 场景官方建议手动设置)
main 本文实测标签;生产建议固定版本号
--restart unless-stopped 宿主机重启后自动拉起

仅本机访问(配合 Nginx 反代时更安全):

bash 复制代码
-p 127.0.0.1:8080:8080

8080 已被占用 时改主机端口,例如 -p 8081:8080,浏览器访问 :8081

4.3 验证启动

bash 复制代码
docker ps
docker logs -f trilium

docker ps 中容器状态为 Up 即表示运行中。快速探测:

bash 复制代码
curl -I http://127.0.0.1:8080

应返回 HTTP 200302


五、浏览器首次初始化

浏览器打开:

text 复制代码
http://你的服务器IP:8080

以下按实测向导顺序跟做。

5.1 选择语言

首次进入会弹出 语言 选择,推荐选 简体中文 ,点击 继续

5.2 新建知识库

选择 开始使用 Trilium ,点击 新建知识库(从一个全新的知识库开始)。

若你已在其他设备运行 Trilium 服务器或桌面版,也可选 连接到现有服务器 / 连接桌面应用 进行同步;本文演示全新部署。

5.3 演示内容 or 空白

推荐首次体验选 包含演示内容 ,可快速了解 Trilium 的笔记类型、格式化、脚本等能力;熟悉后可删演示笔记。若希望从零开始,选 空白

5.4 等待知识库准备

选择后会出现 正在准备你的知识库 加载页,稍等片刻即可。

5.5 设置密码

Trilium 网页版需设置 登录密码 (非多用户账号体系,单实例一个密码)。填写密码与确认密码,点击 设置密码

安全提示 :请使用强密码并妥善保存。若对公网开放 8080,务必尽快完成初始化。生产环境建议关闭公网直连,改用 第九节反向代理 HTTPS

5.6 登录

设置完成后进入 登录 Trilium Notes 页面,输入刚才设置的密码,可勾选 记住我 ,点击 登录


六、主界面与核心功能

登录成功后进入 Trilium 主界面。若选了演示内容,左侧笔记树会出现 Journal (日记)与 Trilium Demo 等节点。

6.1 日记(Journal)与日历视图

Journal 按年 / 月 / 日自动组织笔记,中央可切换 日 / 周 / 月 / 年 / 列表 视图,适合每日记录与回顾。

6.2 创建笔记

在日记或任意节点下 新建笔记 ,中央为富文本编辑器,支持 文本 / 画布 / 代码 / Markdown / 集合 / 模板 等笔记类型,顶部工具栏提供格式化、链接、表格、代码块等能力。

6.3 全文搜索

点击左侧 搜索 图标,可输入关键词或标签(如 #calendarRoot)进行 全文搜索,结果按路径与属性展示,支持分页浏览。

6.4 快速搜索(Quick Search)

按快捷键或点击搜索栏,弹出 快速搜索 overlay:可按名称或类型搜索笔记,查看最近访问,或 Ctrl + Enter 触发全文搜索。

6.5 笔记地图(Note Map)

笔记地图 以节点与箭头可视化笔记间的链接关系,适合梳理知识结构与发现关联。演示内容中 Trilium Demo 与各子笔记的链接一目了然。

6.6 最近修改

点击 最近修改 可查看按时间排序的编辑历史,快速回到刚改过的笔记。


七、安全、设置与扩展

7.1 保护会话(Protected Session)

Trilium 支持 笔记级加密 。访问受保护笔记时,需输入密码进入 保护会话 。点击左侧盾牌图标,在弹窗中输入密码后点击 开始保护会话

7.2 外观设置

左下角 选项(Options)外观 :可切换 应用主题 (如「现代」)、配色方案 (跟随系统 / 浅色 / 深色)、版面样式(旧布局 / 新布局)等。

7.3 AI / LLM 与 MCP

选项 → AI / LLM :可添加 LLM 提供商,启用右侧 AI 对话 面板;还可开启 MCP 服务器,供 Claude Code、GitHub Copilot 等 AI 助手读写笔记(默认仅本地访问)。

7.4 同步设置

选项 → 同步 :填写 服务器地址 (如 https://notes.example.com),桌面版与移动版可与此 Docker 实例同步。部署在本机时可填 http://服务器IP:8080 进行内网测试。

7.5 代码笔记设置

选项 → 代码笔记 :配置 自动换行制表符宽度Vim 快捷键CodeMirror 主题(如 VS Code Dark)等,适合开发者维护代码片段库。


八、生产推荐:Docker Compose

适合:长期运行、需要可复现配置、便于 git 管理部署文件的场景。

8.1 目录结构

bash 复制代码
cd /www/wwwroot/trilium

将包含:

text 复制代码
/www/wwwroot/trilium/
├── docker-compose.yml
└── trilium-data/          # 笔记数据(需 chown 1000:1000)

8.2 编写 docker-compose.yml

基于 官方 docker-compose.yml,镜像改为轩辕加速域:

yaml 复制代码
services:
  trilium:
    image: docker.xuanyuan.run/triliumnext/trilium:v0.91.6
    container_name: trilium
    restart: unless-stopped
    environment:
      - TRILIUM_DATA_DIR=/home/node/trilium-data
      - TZ=Asia/Shanghai
    ports:
      - "8080:8080"
    volumes:
      - ./trilium-data:/home/node/trilium-data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro

生产环境请将 main 换为固定版本标签(如 v0.91.6),避免自动升级破坏同步。

8.3 启动与运维

bash 复制代码
docker compose up -d
docker compose ps
docker compose logs -f trilium

常用运维:

bash 复制代码
# 升级:先备份 trilium-data/
docker compose pull
docker compose up -d

# 停止(保留数据)
docker compose down

8.4 生产环境注意

  • HTTPS :将 Trilium 放在 Nginx、Caddy 或 Traefik 反向代理 之后,对外只暴露 443。官方文档:Nginx Proxy SetupTLS Configuration
  • 备份 :定期打包宿主机 trilium-data/ 目录(含 SQLite 数据库与附件)。
  • 防火墙 :若必须直连端口,可 sudo ufw allow 8080/tcp;云服务器需在 安全组 放行。更推荐仅反代对外、8080 仅内网访问。
  • 多因素认证 :可在 选项 → 密码与认证 中配置 TOTP 等,详见官方 Multi-Factor Authentication

九、从旧版 zadam/trilium 迁移

TriliumNext 是原 zadam/trilium 的社区延续版。迁移步骤:

  1. 停止原 zadam/trilium 容器
  2. 同一宿主机数据目录 挂载到新镜像的 /home/node/trilium-data
  3. 启动新容器,自动识别现有数据库

版本兼容性 :v0.90.4 及以下与原 zadam/trilium v0.63.7 兼容;更高版本因同步协议更新,跨版本迁移需查阅 TriliumNext 文档


十、常见问题 FAQ

Q1:轩辕镜像页写挂载 /data,为什么本文用 /home/node/trilium-data

TriliumNext 官方镜像(triliumnext/trilium)数据目录为 /home/node/trilium-data/data 是旧版 zadam/trilium 或部分第三方镜像的写法。挂载路径错误会导致 数据未持久化,容器重建后笔记丢失。

Q2:8080 端口被占用怎么办?

bash 复制代码
docker run -d --name trilium --restart unless-stopped \
  -p 8081:8080 \
  -v /www/wwwroot/trilium/trilium-data:/home/node/trilium-data \
  -e TZ=Asia/Shanghai \
  docker.xuanyuan.run/triliumnext/trilium:main

浏览器访问 http://服务器IP:8081

Q3:数据存在哪里?

宿主机 /www/wwwroot/trilium/trilium-data,容器内 /home/node/trilium-data。含 SQLite 数据库与用户上传附件。删除该目录会丢失全部笔记

Q4:权限报错 EACCES 怎么办?

bash 复制代码
sudo chown -R 1000:1000 /www/wwwroot/trilium/trilium-data
docker restart trilium

或通过环境变量指定 UID/GID:

bash 复制代码
docker run -d ... -e USER_UID=1000 -e USER_GID=1000 ...

Q5:mainlatest 能用吗?

可以试用,但官方 不建议生产使用 ------可能自动升级导致同步客户端不兼容。推荐固定版本号如 v0.91.6

Q6:如何升级 Trilium?

bash 复制代码
# 单容器:先备份 trilium-data/
docker pull docker.xuanyuan.run/triliumnext/trilium:v0.91.6
docker stop trilium && docker rm trilium
# 再执行第四节 docker run(数据卷不变)

# Compose
cd /www/wwwroot/trilium && docker compose pull && docker compose up -d

Q7:忘记密码怎么办?

Trilium 无默认「忘记密码邮件」流程。需在服务器数据目录中重置,或参考官方 FAQ / Troubleshooting。建议初始化时使用强密码并妥善保存。

Q8:容器启动后浏览器无法访问?

依次检查:docker ps 确认 Updocker logs trilium 看报错;本机 curl -I http://127.0.0.1:8080;云服务器 安全组 / 防火墙 是否放行 8080。

Q9:与 Docker Hub 官方镜像的关系?

功能相同。docker.xuanyuan.run/triliumnext/trilium 为轩辕镜像加速的 Docker Hub 同步版,便于国内拉取。配置中将镜像名替换为轩辕域即可。

Q10:如何停止与卸载?

bash 复制代码
# 单容器(保留 trilium-data/)
docker stop trilium && docker rm trilium

# Compose
cd /www/wwwroot/trilium && docker compose down

# 删除数据(慎用)
rm -rf /www/wwwroot/trilium/trilium-data

十一、命令速查

操作 命令
拉取镜像 docker pull docker.xuanyuan.run/triliumnext/trilium:main
创建数据目录 sudo mkdir -p /www/wwwroot/trilium/trilium-data && sudo chown -R 1000:1000 /www/wwwroot/trilium/trilium-data
快速启动 见第四节 docker run 完整命令
Compose 启动 cd /www/wwwroot/trilium && docker compose up -d
查看日志 docker logs -f trilium
健康检查 curl -I http://127.0.0.1:8080
Web 访问 http://服务器IP:8080
备份数据 tar czf trilium-backup-$(date +%F).tar.gz -C /www/wwwroot/trilium trilium-data
停止服务 docker stop trilium && docker rm trilium

十二、延伸阅读

主题 链接
轩辕镜像页 https://xuanyuan.cloud/zh/r/triliumnext/trilium
官方 Docker 文档 https://docs.triliumnotes.org/user-guide/setup/server/installation/docker
TriliumNext 文档索引 https://triliumnext.github.io/Docs/
GitHub 源码 https://github.com/TriliumNext/Trilium
Docker Hub 镜像 https://hub.docker.com/r/triliumnext/trilium
官方 docker-compose.yml https://github.com/TriliumNext/Trilium/blob/main/docker-compose.yml
Nginx 反向代理 https://docs.triliumnotes.org/user-guide/setup/server/installation/nginx-proxy-setup
同步说明 https://docs.triliumnotes.org/user-guide/setup/server/synchronization
备份说明 https://docs.triliumnotes.org/user-guide/setup/server/backup
轩辕镜像 https://xuanyuan.cloud

总结 :Trilium Notes = 私有化大型层级知识库 ,单容器、一条命令就能跑。个人试用选 第四节单容器 + 第五节浏览器向导 ;长期运行选 第八节 Compose ,配合 数据备份反向代理 HTTPS 。数据目录务必挂载到 /home/node/trilium-data,笔记与知识图谱完全在自己服务器上。

相关推荐
myqijin1 小时前
Cloudflare Tunnel docker-compose.yml
docker
weixin_307779131 小时前
Linux下Docker Compose里运行PostgreSQL数据库故障诊断Shell脚本
linux·运维·数据库·docker·postgresql
梦想的颜色2 小时前
【Docker 原理】Docker 数据持久化完全指南:三种挂载原理、数据卷实操、数据库落地实战
docker·云原生·数据持久化·volume·数据卷·容器挂载
qiu_lovejun9982 小时前
linux安装docker和redis和rabbitmq和nginx和rocketmq和kafka
linux·redis·docker·kafka·rabbitmq·rocketmq
源码学社2 小时前
Spug 3.0 Ubuntu 22.04 Docker 部署文档
linux·ubuntu·docker·windows安装·spug
石小千3 小时前
修改Docker Engine 存储路径
运维·docker·容器
xinyu3914 小时前
旧版Ubuntu Docker镜像 apt 失败
linux·ubuntu·docker
bin91535 小时前
使用Docker安装github项目 源码中含有 docker-compose.yml
docker·eureka·github
weixin_307779136 小时前
Linux下Docker Compose里运行Milvus向量数据库故障诊断Shell脚本
linux·运维·数据库·docker·milvus