1. 为什么选择Trilium作为云笔记解决方案
在众多自托管笔记方案中,Trilium以其独特的设计理念脱颖而出。作为一款开源的知识管理工具,它采用树状结构组织内容,支持Markdown、代码块、关系图谱等专业功能。与Notion等SaaS产品相比,本地化部署确保了数据完全自主可控,特别适合处理敏感工作文档或私人知识库。
我选择在云服务器部署主要基于三点考虑:首先,云服务提供24小时稳定运行环境,避免本地电脑关机导致服务中断;其次,多终端通过网页即可访问,免去复杂的同步设置;最后,云服务器通常配有自动备份机制,为笔记数据提供额外保障。实测在1核2G配置的轻量云服务器上,Trilium可流畅支持5人同时协作编辑。
2. 部署前的环境准备
2.1 云服务器基础配置
推荐选择Ubuntu 20.04/22.04 LTS系统,这是目前兼容性最好的Linux发行版。如果使用国内云服务商,建议先运行以下命令更新软件源:
bash复制sudo apt-get update && sudo apt-get upgrade -y
内存方面,Trilium单用户运行时最低需要512MB,但考虑到系统开销,建议分配至少1GB内存。我曾尝试在甲骨文云的免费ARM实例(4核24GB内存)上部署,轻松支持20+用户同时在线编辑。
2.2 必要依赖安装
Trilium基于Node.js开发,需要先安装运行环境:
bash复制# 安装Node.js 16.x版本(官方推荐)
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
# 验证安装
node -v # 应显示v16.x
npm -v # 应显示8.x+
数据库方面,Trilium默认使用SQLite无需额外配置。如需更高性能,可安装MySQL:
bash复制sudo apt-get install mysql-server
sudo mysql_secure_installation
3. Trilium服务端安装详解
3.1 获取并解压安装包
官方提供两种版本:标准版(含所有功能)和服务器版(精简前端)。建议下载最新稳定版:
bash复制wget https://github.com/zadam/trilium/releases/download/v0.58.3/trilium-linux-x64-0.58.3.tar.xz
tar xvf trilium-linux-x64-0.58.3.tar.xz
cd trilium-linux-x64
3.2 配置系统服务
创建systemd服务实现开机自启:
bash复制sudo nano /etc/systemd/system/trilium.service
写入以下内容(注意修改ExecStart路径):
ini复制[Unit]
Description=Trilium Notes Service
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/node /path/to/trilium-linux-x64/src/www
WorkingDirectory=/path/to/trilium-linux-x64
User=www-data
Group=www-data
Restart=always
[Install]
WantedBy=multi-user.target
启用服务并启动:
bash复制sudo systemctl daemon-reload
sudo systemctl enable trilium
sudo systemctl start trilium
4. 网络与安全配置实战
4.1 防火墙设置
开放默认的8080端口:
bash复制sudo ufw allow 8080/tcp
sudo ufw enable
如果使用阿里云/腾讯云等平台,还需在控制台安全组中添加相应规则。
4.2 反向代理配置(Nginx)
建议使用Nginx实现HTTPS加密:
bash复制sudo apt-get install nginx certbot python3-certbot-nginx
sudo nano /etc/nginx/sites-available/trilium
配置模板如下:
nginx复制server {
listen 80;
server_name notes.yourdomain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
启用配置并申请SSL证书:
bash复制sudo ln -s /etc/nginx/sites-available/trilium /etc/nginx/sites-enabled
sudo certbot --nginx -d notes.yourdomain.com
5. 初始化与日常维护
5.1 首次访问设置
浏览器访问https://yourdomain.com,首次运行会提示:
- 创建管理员账户
- 选择数据存储位置(默认为~/trilium-data)
- 设置自动备份策略
强烈建议开启"每日备份"功能,备份文件会保存在服务器指定目录。
5.2 性能优化技巧
遇到卡顿时可尝试以下方案:
- 修改config.ini中的
dbConnectionTimeout参数(默认30000ms) - 禁用不用的插件:设置→插件→停用
- 定期清理历史版本:工具→文档版本清理
对于团队使用,建议在MySQL配置中增加连接池参数:
ini复制[database]
client = mysql
host = localhost
user = trilium
password = yourpassword
database = trilium
connectionLimit = 20
6. 常见问题排错指南
6.1 服务启动失败排查
查看日志定位问题:
bash复制journalctl -u trilium -f
常见错误及解决方案:
Address already in use:修改src/www中的端口号Cannot find module:运行npm install修复依赖ECONNREFUSED:检查MySQL服务是否运行
6.2 数据迁移与恢复
备份整个~/trilium-data目录即可保留所有笔记。恢复时:
- 停止Trilium服务
- 替换数据目录
- 重启服务
如需跨服务器迁移,可以使用官方提供的导出功能:
工具→导出→完整数据库导出(.db文件)
7. 高级功能扩展
7.1 协同编辑配置
修改config.ini开启多人协作:
ini复制[Network]
syncServer = true
syncServerHost = 0.0.0.0
syncServerPort = 8081
每个客户端需要在设置→同步中填入服务器地址。
7.2 插件开发环境
Trilium支持自定义插件,开发步骤:
- 在~/trilium-data/plugins创建插件目录
- 编写manifest.json定义元数据
- 实现前端JS或后端Node.js代码
- 在界面中刷新插件列表
一个简单的插件示例:
javascript复制api.runOnServer(async () => {
await api.createNote({
title: "示例插件笔记",
content: "这是通过插件创建的笔记",
parentNoteId: "root"
});
});
我在实际部署中发现,Trilium的API响应速度与笔记数量直接相关。当笔记超过5000条时,建议启用MySQL并优化查询索引。另外,定期执行"工具→优化数据库"能显著提升大容量知识库的访问速度。
