前言

trilium是一款伟大的笔记软件,也是我重度使用1年多的生产力工具,但使用门槛实在是太高(需要部署、服务器、域名、反代、没有中文……),所以在国内知名度远不如ob、logseq、思源等一众软件。

但只有部署服务端才能充分体会到trilium的强大之处,部署服务端后有以下优点:

今天为大家带来一篇从零开始的trilium安装教程,教你如何一步一步搭建自己的笔记系统。

准备工作

一台服务器

自备

一个域名

namesilo作为一家老牌的域名经销商,是购买域名的不二之选,官网地址:https://www.namesilo.com/

首先前往 官网 注册一个账号。

注册完毕后在顶部搜索栏搜索你想购买的域名,比如:nerdsid ,系统会弹出可购买的域名列表:

如图所示我们可以购买nerdsid.xyz、nerdsid.top等域名,且nerdsid.com已经被他人持有。其中红色划线的表示续费价格,黑色加粗字体表示首次购买的价格。

可以看到.top域名的首购价格和续费价格均比较合适,建议购买.top域名。

点击下方的蓝色购物车按钮后,这个域名就会被加购到购物车中,在购物车中点击大红色的【CHECKOUT】按钮即可支付,namesilo同样支持支付宝付款(都想赚中国人的钱是吧)。

ssh通信工具

云服务器是运行在遥远的美国大陆,所以我们需要通过ssh访问到我们的云服务器。

Terminus是一款跨平台的ssh软件,建议使用。官网地址:https://termius.com/

当然,好用的终端工具还有很多,比如xshell、tabby,选一个自己喜欢的就好。如果只是跟着我的教程的话,直接呼出windows自带的cmd就可以开始部署了,下文就以windows自带的终端作为演示。

cloudflare托管

cloudflare是一家网络基础设施和安全公司,提供内容分发网络(CDN)、DDoS防护、云安全服务等,是各位站长的老朋友了。

在进行正式部署trilium前,我们可以使用cloudflare托管我们的网站,这能够隐藏我们服务器的真实ip,并且在一定程度上对我们的网站进行防护。

首先登陆cloudflare,点击添加站点:

点击继续,界面会提示你需要使用什么计划,我们选择【Free】即可,点击继续,接下来到第三步,将域名的名称服务器更改为cloudflare。

这一步需要在namesilo中操作,让我们回到namesilo,登录仪表盘,进入到这个界面:

找到你之前购买的域名,点击我箭头标注的位置,会弹出以下界面:

将默认的三个NameServer删除,依次填入cloudflare的名称服务器:

点击【Submit】,这一步就完事了,修改名称服务器需要一点时间,以我个人经验来看,一般半个小时到两个小时就会修改好,等更新完毕后此处会显示成“有效”。

等待名称服务器更新后就可以使用cloudflare配置dns记录,点击仪表盘的【DNS】选项,点击【添加记录】按钮:

其中【1.1.1.1】请替换成你的ip地址,记得在【代理状态】中点上勾,这样cloudflare才会托管你的网站,一切就绪后点击保存即可。

部署trilium服务端

trilium支持源码部署和docker部署两种方式,选择适合自己的就好,小白建议使用docker部署

trilium官方只有英文版本,不过有一个国人翻译的中文仓库:Nriver/trilium-translation,各位自行抉择。

本教程默认使用官方原版。

注意:配置服务端完成后,请先不要在服务端的trilium中进行任何操作!

源码部署

下载源码

前往 releases,获取最新服务端压缩包的链接(名称为:trilium-linux-x64-server-0.62.4.tar.xz)。目前最新版本是v0.62.4,下载链接为:https://github.com/zadam/trilium/releases/download/v0.62.4/trilium-linux-x64-server-0.62.4.tar.xz(下文以此为示例,请自行替换为最新链接)。

首先使用登录云服务器:

ssh root@你的ip

终端会提示你输入密码,将密码复制到终端中,按下回车,登录成功的话会显示类似这样的信息:

Linux servervpn 5.10.0-8-amd64 #1 SMP Debian 5.10.46-4 (2021-08-03) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Dec 29 16:51:09 2023 from 36.21.206.141
root@servervpn:~#

这表示成功登录了远程服务器,接着输入以下指令:

wget https://github.com/zadam/trilium/releases/download/v0.62.4/trilium-linux-x64-server-0.62.4.tar.xz

此时输入ls指令会发现目录下多了一个名为trilium-linux-x64-server-0.62.4.tar.xz的文件,依次运行以下指令:

tar -xf trilium-linux-x64-server-0.62.4.tar.xz
mv trilium-linux-x64-server /opt/trilium
cd /opt/trilium
./trilium.sh

配置自启动

此时通过 http://[你的ip]:8080 应该可以访问trilium的初始化页面了,能访问之后先别急,让我们把trilium设置为自启动:

vim /etc/systemd/system/trilium.service

粘贴以下内容:

[Unit]
Description=Trilium Daemon
After=syslog.target network.target

[Service]
User=xxx
Group=xxx
Type=simple
ExecStart=/opt/trilium/trilium.sh
WorkingDirectory=/opt/trilium/

TimeoutStopSec=20
# KillMode=process leads to error, according to https://www.freedesktop.org/software/systemd/man/systemd.kill.html
Restart=always

[Install]
WantedBy=multi-user.target

其中User和Group需要填写你实际的值,root用户一般填写root

应用自启动:

sudo systemctl enable --now -q trilium

更新流程

执行指令删除trilium:

rm -rf /opt/trilium

之后重新进行安装流程即可。

docker部署

安装docker

使用以下命令安装docker本体:

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

为docker设置开启自启:

 systemctl enable docker

docker常用指令

  • docker ps 查看当前正在运行的容器
    • -a 查看所有容器ID
  • docker stop [CONTAINER ID] 停止指定CONTAINER ID的容器
  • docker rm [CONTAINER ID] 移除容器

安装trilium

拉取最新镜像:

docker pull zadam/trilium:[VERSION]
# 其中[VERSION]为Trilium的版本号,比如要拉取v0.62.4,则使用以下命令
docker pull zadam/trilium:0.62.4

将镜像挂载到本地并运行:

docker run  --restart=always -d -p 0.0.0.0:8080:8080 -v ~/trilium-data:/home/node/trilium-data zadam/trilium:[VERSION]

更新流程

  1. 使用 docker ps 确定trilium容器ID
  2. 使用 docker stop [容器ID] 停止当前正在运行的容器
  3. 使用 docker rm [容器ID] 移除trilium容器
  4. 之后按照安装镜像的流程重新进行一遍即可

反向代理

虽然经过以上步骤我们可以通过http://[你的ip]:8080的方式访问trilium,但是也太不优雅了,这就需要进行反代,反向代理工具我推荐使用caddy2,配置简单,自带ssl。

安装caddy2

依次执行以下指令安装:

apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install caddy

配置反向代理

执行指令:vim /etc/caddy/Caddyfile,粘贴以下内容:

你的域名 {
  reverse_proxy localhost:8080
}

运行caddy2:

systemctl start caddy

使用以下指令将caddy2配置成自启动:

systemctl enable caddy

这一步完成后你就可以通过https://[你的域名],访问trilium服务端了,这样是不是优雅多了。

 

配置客户端同步

同样在 releases 中根据你的实际操作系统下载对应客户端,假设你是windows系统,点击【trilium.exe】即可打开软件,打开软件的第一步需要进行初始化:

这里选择第一个选项,初始化一个trilium笔记仓库,点击【Next】即进入trilium笔记界面。接下来需要配置同步,将客户端与服务器链接起来。

首先,通过浏览器打开trilium服务端:https://[你的域名] ,选择第二个选项:

点击【Next】后会进入下一个界面:

这里提示你需要在客户端中填写你的服务器地址,到这一步时浏览器先放一边,不要关闭。

打开trilium客户端,点击左上角trilium的图标,进入【Options - Sync】选项:

在【Server instance address】中填写你的服务器域名,其他不用填,点击【Save】按钮保存后,点击下方的【Test sync】按钮,如果没有弹出什么报错,则代表链接成功。

这时返回浏览器,点击我红色箭头标注的位置,服务器会开始自动同步,等同步成功时,浏览器会自动重定向到trilium笔记界面。

搭建博客(可选)

有不少人或许是看了我的文章 [全新的博客发布体验:在 Trilium 用「知识管理」的方式发博客 - 少数派] 之后才对trilium感兴趣的,那么这里再来一个简单的博客配置教程。

导入博客主题包

首先需要按照 Trilium博客主题:Ankia使用指南,安装博客主题。

但此时我们只能通过https://[你的域名]/share访问博客,但这也太low了,所以我们需要一个二级域名进行反代

配置二级域名

配置二级域名同样在cloudflare中进行。

新建一个A记录,比如你想通过blog.域名访问你的博客,那么就在名称一栏中填写blog,IP地址改成你服务器的地址,点击保存即可。

配置反代

在上文中我们使用caddy2进行反代,同样的我们打开Caddyfile:vim /etc/caddy/Caddyfile,在末尾加入:

二级域名 {
  @notShare {
    not path /share
  }
  rewrite @notnotShare  /share{uri}
  reverse_proxy localhost:8080
}

修改Caddyfile文件后需要重载:

systemctl reload caddy

现在你可以通过https://blog.域名访问你的博客了!

结语

到此全部的部署已经结束,当然这只是开始使用trilium的第一步,还有更多好玩高级技巧等你探索,之后我也会分享自己的使用心得和高级技巧,欢迎关注。

8
7