自部署 Blinko AI 笔记工具并配置 Cloudflare R2 对象存储
status
Published
type
Post
slug
self-host-blinko-and-config-cloudflare-r2
date
Feb 21, 2025
tags
Tool
Config
AI
summary
文章介绍了一款名为 Blinko 的开源自托管 AI 笔记工具,作为 memos 的替代方案,该工具支持纯文本与 Markdown 格式记录,通过“闪念”和“笔记”双模块管理内容,并集成基于 RAG 技术的自然语言搜索功能。文章重点阐述了部署流程:使用 Xata 的 PostgreSQL 数据库服务配置数据库,通过 Docker Compose 启动服务,并详细指导如何对接 Cloudflare R2 对象存储实现文件托管。
背景
之前自部署的 memos 笔记工具,从 0.18 版本后的更新项目有点与个人预期不符,也就停留在旧版本凑合使用。Blinko 作为后起之秀,几个月前分享过,但一直没有部署,这下有时间正好整一整。
项目
Blinko 是一个开源、自托管的个人 AI 笔记工具,专注于隐私保护,使用 TypeScript 构建。它允许用户快速记录灵感,并通过自然语言查询轻松检索笔记。
主要功能点
- 基于 AI 的笔记检索:利用先进的 RAG (Retrieval-Augmented Generation) 技术,用户可以使用自然语言查询快速搜索和访问笔记。
- 数据所有权:所有笔记和数据都存储在用户自托管的环境中,确保完全控制信息。
- 高效快捷:可以即时捕捉想法并以纯文本形式存储,支持 Markdown 格式,方便共享。
- 轻量级架构:基于 Next.js 构建,提供出色的性能和效率。
- 开放协作:作为开源项目,Blinko 欢迎社区贡献,所有代码都是透明的,可在 GitHub 上获取。
技术栈
- 前端: React, Next.js
- 后端: TypeScript
- 数据库: PostgreSQL
部署
数据库


根据指引创建好数据库(需要开启 Enable direct access to Postgres),得到 PostgreSQL Endpoint ,下面的 docker compose 配置文件会用到。
Compose.yaml
services: blinko-website: image: blinkospace/blinko:latest container_name: blinko restart: always environment: TZ: Asia/Shanghai NODE_ENV: production NEXTAUTH_SECRET: 此处自定义加密字符串,可随机生成 DATABASE_URL: 此处使用上面得到的 PostgreSQL Endpoint volumes: - ./blinko:/app/.blinko ports: - 127.0.0.1:1111:1111 healthcheck: test: ["CMD", "curl", "-f", "http://blinko:1111/"] interval: 30s timeout: 10s retries: 5 start_period: 30s networks: - blinko-network networks: blinko-network: driver: bridge
执行
docker compose up -d
启动服务,docker compose logs -f -n 300
可查看运行日志。页面
打开页面(域名解析等在此略去,根据实际情况自行处理),初始时会自动跳转到登录页,先手动注册第一个用户,此用户将会成为超级管理员权限,后续如需要注册其他用户需要去设置中开启允许注册。



设置
S3 对象存储
这里直接使用赛博菩萨 Cloudflare 家的 R2 对象存储,其兼容 S3 协议,且有 10GB 的免费额度。
- 创建 bucket:

- 创建 Token

点击
Use R2 with APIs
可查看 S3 compatible API,也就是 S3 Endpoint。
点击
Manage API tokens
可创建 Token:
得到如下图中的 Access Key ID 和 Secret Access Key

- Blinko 配置 S3
根据上面得到信息依次填写即可
