这些年折腾过不少开源笔记系统。
从最早的 Memos,到功能强大的 Trilium,再到后面尝试过的各种知识库产品,最终长期留下来的反而是 Blinko。
并不是因为它功能最多。
恰恰相反,我越来越觉得:
一个笔记系统能否长期使用,核心不在于功能数量,而在于你是否愿意每天打开它。
为什么放弃了 Memos?
最早接触的是 Memos。
Memos 更像是一个私有化部署版的微博或者朋友圈。
优点非常明显:
轻量
部署简单
社区活跃
记录速度快
支持公开分享
对于记录灵感、碎片化想法来说非常方便。
但随着内容越来越多,我发现它更擅长「记录」,而不是「管理」。
当笔记达到数千条之后:
分类能力有限
知识关联较弱
长期沉淀能力不足
慢慢就无法满足个人知识库的需求。
为什么没有坚持使用 Trilium?
后来我转向了 Trilium。
不得不承认:
Trilium 是我见过功能最强大的开源笔记系统之一。
它支持:
无限层级目录
属性系统
笔记关系引用
自定义脚本
数据结构管理
甚至很多人直接把它当成个人 Wiki 使用。
但是问题也同样明显。
功能太强。
每次记录一个简单想法时,都需要考虑:
放在哪个目录?
是否需要属性?
是否需要建立关系?
慢慢地发现:
自己花在管理知识上的时间,甚至超过了记录知识本身。
为什么最终选择了 Blinko?
第一次打开 Blinko 时,其实并没有被功能吸引。
真正让我决定长期使用的,是它的界面设计。
相比很多开源项目依然保持着传统后台管理系统风格:
Bootstrap 风格
Admin 后台风格
表格式管理界面
Blinko 更像现代 SaaS 产品。
无论是:
页面布局
动画效果
卡片设计
深色模式
移动端适配
整体体验都非常舒服。
对于一个每天都要打开几十次的工具来说:
颜值本身也是生产力。
更符合现代自动化工作流
除了界面之外。
Blinko 对现代工作流的支持也让我非常满意。
例如:
Docker 部署
PostgreSQL
API 接口
AI 集成
Webhook
尤其是 Webhook。
目前我的工作流已经实现:
Blinko
↓
Webhook
↓
n8n
↓
知识整理
↓
AI分析
↓
自动归档
当我在 Blinko 新增一条笔记后:
自动触发 Webhook
n8n 接收事件
自动分类
自动生成摘要
自动同步到其他系统
很多原本需要手工处理的事情都实现了自动化。
这也是目前很多传统笔记系统无法做到的。
我的 Blinko Docker 部署方案
经过多次调整,目前使用下面这套配置。
services:
blinko:
image: blinkospace/blinko:latest
container_name: blinko
restart: always
logging:
options:
max-size: "10m"
max-file: "3"
environment:
NODE_ENV: production
DATABASE_URL: postgres://root:admin@postgres:5432/blinko
NEXTAUTH_SECRET: aaaaaaaa
NEXTAUTH_URL: https://idea.yyliucha.com
ports:
- "127.0.0.1:1111:1111"
networks:
- webnet
volumes:
- /blinko/data:/app/.blinko
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://blinko:1111"]
interval: 20s
timeout: 5s
retries: 5
start_period: 20s
networks:
webnet:
external: true
配置解析
镜像版本
image: blinkospace/blinko:latest
使用官方最新版本镜像。
首次启动时会自动从 Docker Hub 拉取。
容器名称
container_name: blinko
固定容器名称。
方便后续管理:
docker logs blinko
docker exec -it blinko sh
docker restart blinko
自动重启
restart: always
生产环境必备配置。
当:
容器异常退出
Docker 服务重启
服务器重启
都会自动恢复运行。
日志轮转
logging:
options:
max-size: "10m"
max-file: "3"
限制日志大小。
避免长期运行后:
/var/lib/docker
日志无限增长导致磁盘爆满。
最终最多占用:
10MB × 3 = 30MB
数据库连接
DATABASE_URL: postgres://root:admin@postgres:5432/blinko
连接 PostgreSQL 数据库。
格式:
postgres://用户名:密码@主机:端口/数据库名
解析如下:
用户名:root
密码:admin
主机:postgres
端口:5432
数据库:blinko
其中:
postgres
通常是 PostgreSQL 容器名称。
NEXTAUTH_SECRET
NEXTAUTH_SECRET: aaaaaaaa
用于用户认证和 Session 加密。
生产环境建议生成随机密钥:
openssl rand -base64 32
不要直接使用示例值。
NEXTAUTH_URL
NEXTAUTH_URL: https://idea.yyliucha.com
填写实际访问域名。
否则可能导致:
登录失败
Session 异常
OAuth 回调异常
端口映射
ports:
- "127.0.0.1:1111:1111"
表示:
本机1111端口
↓
映射
↓
容器1111端口
由于绑定:
127.0.0.1
因此外网无法直接访问。
更加安全。
通常搭配 Nginx 反向代理使用。
数据持久化
volumes:
- /blinko/data:/app/.blinko
将数据存储到宿主机。
即使容器删除:
docker rm blinko
数据依然保留。
这一点非常重要。
Docker 网络
networks:
- webnet
用于与其他容器通信。
例如:
PostgreSQL
Nginx
n8n
Blinko
都可以加入同一个网络。
健康检查
healthcheck:
Docker 会定期检测服务状态。
如果连续检测失败:
unhealthy
方便监控系统及时发现问题。
启动方式
创建网络:
docker network create webnet
启动服务:
docker compose up -d
查看运行状态:
docker ps
查看日志:
docker logs -f blinko
生产环境建议
如果长期使用,建议额外增加:
PostgreSQL 自动备份
Nginx 反向代理
HTTPS 证书
Cloudflare 防护
定时备份
/blinko/datan8n 自动化工作流
Webhook 集成
这样基本就能满足个人知识库的长期运行需求。
总结
从 Memos 到 Trilium,再到最终选择 Blinko。
我发现一个笔记系统最重要的并不是功能有多少,而是你是否愿意持续使用它。
Memos 足够轻量。
Trilium 足够强大。
而 Blinko 则刚好处于两者之间。
它拥有现代化的界面、舒适的使用体验、完善的 Docker 支持,以及与 AI、Webhook、n8n 等现代工具的天然集成能力。
至少对于我目前的知识管理体系来说,Blinko 已经成为最核心的入口之一。
如果你也在寻找一个既好看、又好用、还能融入自动化工作流的开源笔记系统,那么 Blinko 值得尝试。
从 Memos 到 Trilium,再到 Blinko:我的开源笔记系统最终选择
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法