自部署 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 构建。它允许用户快速记录灵感,并通过自然语言查询轻松检索笔记。

主要功能点

  1. 基于 AI 的笔记检索:利用先进的 RAG (Retrieval-Augmented Generation) 技术,用户可以使用自然语言查询快速搜索和访问笔记。
  1. 数据所有权:所有笔记和数据都存储在用户自托管的环境中,确保完全控制信息。
  1. 高效快捷:可以即时捕捉想法并以纯文本形式存储,支持 Markdown 格式,方便共享。
  1. 轻量级架构:基于 Next.js 构建,提供出色的性能和效率。
  1. 开放协作:作为开源项目,Blinko 欢迎社区贡献,所有代码都是透明的,可在 GitHub 上获取。

技术栈

  • 前端: React, Next.js
  • 后端: TypeScript
  • 数据库: PostgreSQL

部署

数据库

服务器上的储存空间不太够, 这里还是使用 DBaaS 服务 —— https://xata.io
notion image
notion image
根据指引创建好数据库(需要开启 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 可查看运行日志。
 

页面

打开页面(域名解析等在此略去,根据实际情况自行处理),初始时会自动跳转到登录页,先手动注册第一个用户,此用户将会成为超级管理员权限,后续如需要注册其他用户需要去设置中开启允许注册。
notion image
notion image
notion image

设置

S3 对象存储

这里直接使用赛博菩萨 Cloudflare 家的 R2 对象存储,其兼容 S3 协议,且有 10GB 的免费额度。
  • 创建 bucket:
notion image
  • 创建 Token
notion image
点击 Use R2 with APIs 可查看 S3 compatible API,也就是 S3 Endpoint
notion image
点击 Manage API tokens 可创建 Token:
notion image
得到如下图中的 Access Key ID 和 Secret Access Key
notion image
  • Blinko 配置 S3
根据上面得到信息依次填写即可
notion image