trilium server服务安装流程
博客圈前段时间一直在讨论笔记应用,先是讨论印象笔记如何如何恶心,开了会员也有广告之类的。后来又讨论到那个笔记好,推荐的可谓五花八门,如mybase、notion之类的。
我以前没用过这一类的程序,也没搭建过个人知识库系统,但是了解到这个东西后又发现自己其实挺有需求的,最简单的例子就是在执行ubuntu命令的时候有些命令每次都去百度,但是下次又可能需要用上,然后又去百度,但是会查找到很多无效的内容。如果我把查找到的正确的内容收藏起来,下次直接打开不久好了么。
s所以还是有点心动的,notion之前尝试过国内的抄作业版:wolai,当时用不太懂,也没理解到这类工具的真正用途。这次再打开wolai有点豁然开朗的感觉,notion也很好,但是这类服务数据都是托管在运营商那边,我们并没有完全的把握权限让我有点不安。所以又试了很多工具,如:思源笔记、为知笔记、Obsidian、trilium等等
最后我选了trilium,我总结了一下选trilium的原因
- 开源
- 有中文版
- 可以使用markdown语法,所见既得
- 可以纯本地使用,也可以用docker搭建服务端同步。
- 有浏览器收藏工具
- 主题定制简单
- 更新频繁,提的issue两天内开发者都会跟进。至少后续出问题了不用担心没人管。
目前使用起来挺舒服的,改了一个主题,也把官方的插件都继承进来了。目前编辑器偶尔会出现打中文会出现有个字母在前面的bug,我用ghost的网页编辑器也会这样,不知道怎么回事。
这个版本的主题我frok了一份原版的,然后修改了一下night部分的css,如果你喜欢的话可以进行尝试。
另外:trilium完全可以不依赖server再本地运行,但是注意不要使用onedrive等第三方同步服务同步数据。因为trilium使用的是数据库,这样会导致数据库损坏。如果你使用过这种方式同步数据,你的原有数据将无法导入trilium server端中,只能新建,或者选择本地打包导出数据再进行导入。
安装流程
安装环境
Ubuntu 18-20
,推荐Ubuntu 20.04 LTS
博客圈的均哥之前用centos6.7
跟着这教程走连docker都装不上,所以建议还是用新一点的系统。理论上20年的系统版本应该都是没有问题的。
安装docker
拉取docker镜像
$ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
配置国内镜像源,并设置docker开机自动启动
$ mkdir -p /etc/docker/
$ echo "{'registry-mirrors': ['https://docker.mirrors.ustc.edu.cn']}" > /etc/docker/daemon.json
$ systemctl daemon-reload
$ systemctl start docker
# 把docker加入开机自启
$ systemctl enable docker
其他国内镜像源
网易 http://hub-mirror.c.163.com
ustc https://docker.mirrors.ustc.edu.cn
中国科技大学 https://docker.mirrors.ustc.edu.cn
申请ssl证书
现在有很多平台都可以免费申请ssl证书,因为我的域名备案在腾讯云的,所以我直接在腾讯申请了个免费的ssl证书。
登录后台,在搜索处搜索SSL,点击【域名与网站】下的【ssl证书】
点击【我的证书】-> 【申请免费证书】,然后按要求填资料就好了,一般十几分钟就能下来。
申请完后点列表的下载就可以下载到SSL的证书文件压缩包。
我们通过sftp工具或者其他的方式把证书压缩包里的nginx目录下的两个【.crt,.key】文件放到服务器上去,并记住存放路径,之后会用到。
配置nginx
我这边nginx的配置文件目录在etc/nginx/conf.d
进入该目录,新增一个后缀为conf
的nginx配置文件,内容如下:
server {
listen 443 ssl;
server_name #你的绑定的笔记域名;
ssl_certificate #你的证书crt文件地址;
ssl_certificate_key #你的证书key文件地址;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
#因为我的主站没有ssl,不知道为什么如果手动输入https访问我的主站会跳转到这里,所以做了处理
#如果你主站绑定了ssl,可以不用写这一段
#location / {
#if ( $host = "主站域名,不带www" ){
#return 301 http://$host$request_uri;
#}
#if ( $host = "主站域名,带www" ){
#return 301 http://$host$request_uri;
#}
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
}
location ~ /.well-known {
allow all;
}
client_max_body_size 50m;
}
保存后用sudo nginx -s reload
重启nginx服务
拉取trilium中文docker镜像
感谢以下这些作者们,让我们使用到了如此优秀的软件
- 原版github地址:https://github.com/zadam/trilium
- 汉化版github地址:https://github.com/Nriver/trilium-translation
拉取镜像(选一条,上面是中文的,下面是原版的)
docker pull nriver/trilium-cn
docker pull zadam/trilium:latest
创建并启动容器
sudo docker run --name tmserver -t -i -p 127.0.0.1:8080:8080 -e TRILIUM_DATA_DIR='/home/node/trilium-data' -v /data/trilium-data:/home/node/trilium-data --restart=always nriver/trilium-cn
参数说明:
--name 容器名称
-p 容器映射的ip和端口
-v 把容器里的trilium文件路径映射到vps上,防止容器停止后数据丢失
--restart=always 开机自动启动
现在访问你绑定的域名因该就可以使用了。
加入评论