这些年折腾过不少开源笔记系统。

从最早的 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/data

  • n8n 自动化工作流

  • Webhook 集成

这样基本就能满足个人知识库的长期运行需求。


总结

从 Memos 到 Trilium,再到最终选择 Blinko。

我发现一个笔记系统最重要的并不是功能有多少,而是你是否愿意持续使用它。

Memos 足够轻量。

Trilium 足够强大。

而 Blinko 则刚好处于两者之间。

它拥有现代化的界面、舒适的使用体验、完善的 Docker 支持,以及与 AI、Webhook、n8n 等现代工具的天然集成能力。

至少对于我目前的知识管理体系来说,Blinko 已经成为最核心的入口之一。

如果你也在寻找一个既好看、又好用、还能融入自动化工作流的开源笔记系统,那么 Blinko 值得尝试。