通过 Docker 自托管部署 Blinko,构建 AI 驱动、强大的个人笔记和知识库管理系统
阅读体验更佳: https://blog.dejavu.moe/posts/docker-install-blinko-with-nginx/
简介
Blinko 是一个开源、支持自托管的 AI 笔记应用,拥有 强大的 AI 集成支持,以及 最大限度的数据自由。
Blinko 的 核心理念 是将笔记分为两部分:
Blinko 用于捕捉突发灵感和碎片想法
Note 用于记录归纳长篇内容和知识库
我总结了它的 特性,包括且不限于以下这些:
- AI 驱动的 RAG 搜索
- 不锁定格式,导出笔记为 Markdown
- 每日回顾卡片、AI 整理笔记
- 公开笔记提供 RSS 支持
- 提供响应式、美观的分享页面
- 分享笔记设置权限和过期时间
- 具有 PWA、Android、Windows、macOS、Linux 客户端应用
- 可选连接 Blinko Hub 与其他实例连接,构建去中心化知识网络
- 可拓展、自由的插件化支持
- 微信、Telegram、n8n 接入和支持
- ……
开始部署
Blinko 拥有官方合作托管服务,起步价格为 $1.5/月,新用户拥有 $5 体验金,付费的 20% 会捐赠给此项目,感兴趣可以 去试试。
或者我们花费几分钟,即可快速部署一个属于自己的 Blinko 实例。
先决条件
- Docker 以及 Docker Compose
- Nginx 或其他反向代理服务器
- TLS/SSL 证书
准备模板
新建目录用于 Blinko 的数据持久化
mkdir blinko && cd $_生成一个 NEXTAUTH_SECRET 环境变量,填入下面模板的环境变量里
openssl rand -base64 32新建一个 docker-compose.yml 模板文件 (使用 Docker 绑定数据卷)
services: blinko: image: blinkospace/blinko:latest container_name: blinko-website environment: NODE_ENV: production NEXTAUTH_URL: http://localhost:1111 # change it to your domain NEXT_PUBLIC_BASE_URL: https://blinko.your.domain NEXTAUTH_SECRET: # openssl rand -base64 32 DATABASE_URL: postgresql://postgres:blinko@postgres:5432/postgres depends_on: postgres: condition: service_healthy volumes: - ./data/blinko:/app/.blinko restart: unless-stopped ports: - 127.0.0.1:1111:1111 healthcheck: test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:1111/"] interval: 30s timeout: 10s retries: 5 start_period: 30s networks: - blinko-network postgres: image: postgres:14 container_name: blinko-postgres restart: unless-stopped environment: POSTGRES_DB: postgres POSTGRES_USER: postgres POSTGRES_PASSWORD: blinko TZ: Asia/Shanghai volumes: - ./data/postgres:/var/lib/postgresql/data healthcheck: test: ["CMD", "pg_isready", "-U", "postgres", "-d", "postgres"] interval: 5s timeout: 10s retries: 5 networks: - blinko-networknetworks: blinko-network: driver: bridge启动服务
一切就绪,起飞!
sudo docker compose up -d首次启动会进行数据库迁移,观察一下日志
sudo docker compose up logs -f | more反向代理
以 Nginx 反向代理为例,新建一个虚拟主机配置文件
sudo nvim /etc/nginx/conf.d/your.blinko.domain.conf看起来类似这样:
server { listen 80; listen [::]:80; # change it to your domain server_name blinko.your.domain; return 301 https://$host$request_uri;}server { listen 443 ssl; listen [::]:443 ssl; http2 on; # change it to your domain server_name blinko.your.domain; # change it to your TLS/SSL cert path ssl_certificate /path/to/your/cert/wild.via.moe.pem; ssl_certificate_key /path/to/your/cert/wild.via.moe.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ecdh_curve X25519:P-256:P-384; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE+AES128:RSA+AES128:ECDHE+AES256:RSA+AES256'; ssl_prefer_server_ciphers off; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; access_log /var/log/nginx/blinko.your.domain.access.log; error_log /var/log/nginx/blinko.your.domain.error.log; add_header X-Frame-Options "SAMEORIGIN" always; add_header X-XSS-Protection "1; mode=block" always; add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "no-referrer-when-downgrade" always; add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline' 'unsafe-eval'" always; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; # max upload limit client_max_body_size 100M; location / { proxy_pass http://127.0.0.1:1111; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $realip_remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 3600s; }}检查 Nginx 配置文件
sudo nginx -t确认 OK,重载配置
sudo nginx -s reload解析域名到服务器 IP,现在可以打开你的域名访问了,首个注册用户即为管理员。
开始使用
偏好设置
设置基本的语言和时间格式
基本信息
AI 服务提供商
除了已经列出的,同样兼容任何与 OpenAI 兼容的 API。此外,若机器网络无法访问 API,Blinko 支持设置 HTTP 代理。
下滑可以调整模型温度、分数、默认提示词等参数
我觉得这个 AI 集成还有个好处:可以将各家模型的免费额度集合在一个地方使用🤔
支持 Tavily,方便 AI Agent 快速、高效地访问互联网。注册后免费额度为 1000次/月,个人好像够用了?
内建有 MCP 集成
音乐设置
Blinko 有一个漂亮的 音乐播放器,可选注册一个 Spotify API 用于获取上传音乐元数据信息。
使用 Spotify API 解析音乐元数据后,看起来更好看点
最后
总之,Blinko 借助强大的 AI 集成、自然语言搜索以及丰富的插件和服务接口,是一个构建个人知识库的优秀工具。
评论 (0)