image-20250416230448478-ywas

🤠「它能干嘛」

对比传统笔记工具的差异化优势

场景Blinko 优势传统工具不足
数据主权完全自托管,数据本地化存储依赖第三方云端,存在数据审查 / 泄露风险
技术扩展性开源代码 + API 支持深度定制闭源生态,功能受限于官方更新节奏
AI 功能落地原生集成智能检索、内容生成,支持自定义模型接入依赖第三方插件(如 Notion AI 需付费且功能有限)
轻量化部署Docker 一键启动,适合私有云 / 离线环境仅支持云端使用,本地化部署复杂

🔎1. 环境准备

1.1 系统要求

操作系统:Linux(推荐 Ubuntu 20.04+)、macOS 或 Windows(需安装 Docker Desktop) Docker:版本 20.10+ Docker Compose:版本 1.29+

1.2 安装 Docker 与 Docker Compose

# 安装 Docker
sudo apt update && sudo apt install docker.io docker-compose -y
sudo systemctl enable --now docker

1.3 NAS安装 Docker 与 Docker Compose 即可

🤗2. 部署步骤

2.1 创建部署目录

mkdir -p /data/blinko && cd /data/blinko

2.2 Docker 安装

NaN. 必须挂载 postgres 的数据卷,否则您的数据将丢失

NaN. 替换为您自己的安全密钥 NEXTAUTH_SECRET=my_ultra_secure_nextauth_secret

  • 第 1 步:创建自定义 Docker 网络
docker network create blinko-network

第 2 步:运行 PostgreSQL 数据库容器

docker run -d \
 --name blinko-postgres \
--network blinko-network \
-v <your-path>:/var/lib/postgresql/data \
-p 5435:5432 \
-e POSTGRES_DB=postgres \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=mysecretpassword \
-e TZ=Asia/Shanghai \
--restart always \
postgres:14

第 3 步:运行 Blinko 网站容器

docker run -d \
--name blinko-website \
--network blinko-network \
-v <your-path>:/app/.blinko \
-p 1111:1111 \
-e NODE_ENV=production \
-e NEXTAUTH_URL=http://localhost:1111 \
-e NEXT_PUBLIC_BASE_URL=http://localhost:1111 \
-e NEXTAUTH_SECRET=my_ultra_secure_nextauth_secret \
-e DATABASE_URL=postgresql://postgres:mysecretpassword@blinko-postgres:5432/postgres \
--restart always \
blinkospace/blinko:latest

2.2 Docker Compose 安装

第 1 步:创建 docker-compose.yml

networks:
 &nbsp;  blinko-network:
 &nbsp; &nbsp;  driver: bridge
​
  services:
 &nbsp;  blinko-website:
 &nbsp; &nbsp;  image: blinkospace/blinko:latest
 &nbsp; &nbsp;  container_name: blinko-website
 &nbsp; &nbsp;  environment:
 &nbsp; &nbsp; &nbsp;  NODE_ENV: production
 &nbsp; &nbsp; &nbsp; &nbsp;# NEXTAUTH_URL: http://localhost:1111
 &nbsp; &nbsp; &nbsp; &nbsp;# IMPORTANT: If you want to use sso, you must set NEXTAUTH_URL to your own domain
 &nbsp; &nbsp; &nbsp; &nbsp;# NEXT_PUBLIC_BASE_URL: http://localhost:1111
 &nbsp; &nbsp; &nbsp; &nbsp;# IMPORTANT: Replace this with your own secure secret key!
 &nbsp; &nbsp; &nbsp;  NEXTAUTH_SECRET: my_ultra_secure_nextauth_secret
 &nbsp; &nbsp; &nbsp;  DATABASE_URL: postgresql://postgres:mysecretpassword@postgres:5432/postgres
 &nbsp; &nbsp;  depends_on:
 &nbsp; &nbsp; &nbsp;  postgres:
 &nbsp; &nbsp; &nbsp; &nbsp;  condition: service_healthy
 &nbsp; &nbsp; &nbsp;# Make sure you have enough permissions.
 &nbsp; &nbsp; &nbsp;# volumes:
 &nbsp; &nbsp; &nbsp; &nbsp;# - ~/your-name/.blinko:/app/.blinko 
 &nbsp; &nbsp;  restart: always
 &nbsp; &nbsp;  logging:
 &nbsp; &nbsp; &nbsp;  options:
 &nbsp; &nbsp; &nbsp; &nbsp;  max-size: "10m"
 &nbsp; &nbsp; &nbsp; &nbsp;  max-file: "3"
 &nbsp; &nbsp;  ports:
 &nbsp; &nbsp; &nbsp;  - 1111:1111
 &nbsp; &nbsp;  healthcheck:
 &nbsp; &nbsp; &nbsp;  test: ["CMD", "curl", "-f", "http://blinko-website:1111/"]
 &nbsp; &nbsp; &nbsp;  interval: 30s 
 &nbsp; &nbsp; &nbsp;  timeout: 10s &nbsp; 
 &nbsp; &nbsp; &nbsp;  retries: 5 &nbsp; 
 &nbsp; &nbsp; &nbsp;  start_period: 30s 
 &nbsp; &nbsp;  networks:
 &nbsp; &nbsp; &nbsp;  - blinko-network
​
 &nbsp;  postgres:
 &nbsp; &nbsp;  image: postgres:14
 &nbsp; &nbsp;  container_name: blinko-postgres
 &nbsp; &nbsp;  restart: always
 &nbsp; &nbsp;  ports:
 &nbsp; &nbsp; &nbsp;  - 5435:5432
 &nbsp; &nbsp;  environment:
 &nbsp; &nbsp; &nbsp;  POSTGRES_DB: postgres
 &nbsp; &nbsp; &nbsp;  POSTGRES_USER: postgres
 &nbsp; &nbsp; &nbsp;  POSTGRES_PASSWORD: mysecretpassword
 &nbsp; &nbsp; &nbsp;  TZ: Asia/Shanghai
 &nbsp; &nbsp; &nbsp;# Persisting container data
 &nbsp; &nbsp; &nbsp;# Make sure you have enough permissions.
 &nbsp; &nbsp; &nbsp;# volumes:
 &nbsp; &nbsp; &nbsp; &nbsp;# - ~/your-name/.db:/var/lib/postgresql/data
 &nbsp; &nbsp;  healthcheck:
 &nbsp; &nbsp; &nbsp;  test:
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;["CMD", "pg_isready", "-U", "postgres", "-d", "postgres"]
 &nbsp; &nbsp; &nbsp;  interval: 5s
 &nbsp; &nbsp; &nbsp;  timeout: 10s
 &nbsp; &nbsp; &nbsp;  retries: 5
 &nbsp; &nbsp;  networks:
 &nbsp; &nbsp; &nbsp;  - blinko-network

第 2 步:执行 docker-compose 命令启动 Blinko

docker-compose -f docker-compose.yml up -d

👍3. 配置说明

3.1 环境变量

变量名说明
POSTGRES_PASSWORDPostgreSQL 数据库密码
NEXTAUTH_SECRETNextAuth.js 加密密钥(需随机生成)
DATABASE_URL数据库连接字符串(格式:postgresql://用户名:密码@数据库服务名:端口/数据库名
NEXTAUTH_URLBlinko 服务 URL(用于身份验证回调)
NEXT_PUBLIC_BASE_URLBlinko 基础 URL(客户端使用)

3.2 数据持久化

数据库数据:通过 ./db 目录持久化 PostgreSQL 数据 应用数据:通过 ./blinko_data 目录存储笔记、附件等内容

✌️4. 访问与使用

4.1 首次访问

打开浏览器访问:http://your_server_ip:1111 注册账号并登录

4.2 基础功能

NaN. 闪念记录:快速捕捉灵感,支持 Markdown 格式

NaN. 笔记管理:支持标签分类、批量操作

NaN. AI 检索:通过自然语言查询笔记(需配置 AI 模型)

4.3 配置 AI 功能

NaN. 进入 Settings > AI Configuration

NaN. 填写 OpenAI API Key 和模型接口地址

NaN. 选择模型(如 gpt-3.5-turbo

🤞5. 安全与优化

5.1 HTTPS 配置(推荐)

# 安装 Nginx 反向代理
sudo apt install nginx -y
# 配置 Nginx 站点(/etc/nginx/sites-available/blinko)
server {
 &nbsp;  listen 80;
 &nbsp;  server_name your_domain.com;
​
 &nbsp;  location / {
 &nbsp; &nbsp; &nbsp;  proxy_pass http://localhost:1111;
 &nbsp; &nbsp; &nbsp;  proxy_set_header Host $host;
 &nbsp; &nbsp; &nbsp;  proxy_set_header X-Real-IP $remote_addr;
 &nbsp; &nbsp; &nbsp;  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 &nbsp; &nbsp; &nbsp;  proxy_set_header X-Forwarded-Proto $scheme;
 &nbsp;  }
}
​
# 启用 HTTPS(需先获取证书)
sudo certbot --nginx -d your_domain.com

5.2 安全建议

NaN. 使用强密码并定期更换

NaN. 限制容器权限(如 --user 参数)

NaN. 启用防火墙(如 ufw

NaN. 定期备份数据

🙌6. 维护与更新

6.1 更新 Blinko

# 拉取最新镜像
docker-compose pull blinko
# 重启容器
docker-compose up -d blinko

6.2 升级数据库

# 备份现有数据
docker-compose exec postgres pg_dump -U postgres blinko > backup.sql
# 停止并删除旧容器
docker-compose down
# 升级 Docker Compose 文件
# 重新启动容器
docker-compose up -d

⁉️7. 常见问题

7.1 容器启动失败

# 检查日志
docker-compose logs
# 检查端口占用
sudo lsof -i :1111

7.2 数据库连接失败

# 确认 DATABASE_URL 格式正确
# 检查容器网络
docker network inspect blinko_default

7.3 AI 功能报错

# 检查 API Key 是否有效
# 确认模型接口地址是否正确