ChainlessChain 安装部署
快速开始 | 支持 Windows / macOS / Linux | Electron + Vue3 桌面端 | Docker 后端服务
本指南将帮助您在不同平台上安装和配置ChainlessChain个人AI系统。
概述
本文档提供 ChainlessChain 在 Windows、macOS、Linux 桌面端及 Android/iOS 移动端的完整安装部署指南,涵盖安装包安装、源码构建、Docker 后端服务部署、首次启动配置向导以及从 Notion/Evernote/Obsidian 等平台的数据迁移方法。
核心特性
- 🖥️ 多平台支持: Windows / macOS / Linux 桌面端
- 📱 移动端: Android APK 直装
- 🐳 Docker 服务: 一键启动 Ollama / Qdrant / PostgreSQL / Redis
- ⚡ CLI 安装:
npm install -g chainlesschain一行命令(支持cc/clc/clchain短命令别名) - 🔧 交互式向导:
chainlesschain setup(或cc setup)引导完成配置 - 🩺 环境诊断:
chainlesschain doctor(或cc doctor)自动检测问题
系统架构
安装部署架构
┌─────────────────────────────────────────┐
│ npm install -g chainlesschain │ CLI 工具
│ │ │
│ ▼ │
│ chainlesschain setup (交互式向导) │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ 选择版本 配置 LLM 下载二进制 │
│ (个人/企业) (8 提供商) (GitHub Releases) │
│ │ │
│ ▼ │
│ chainlesschain start ← 桌面应用 (Electron) │
│ │ │
│ ▼ │
│ chainlesschain services up │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ Ollama Qdrant Postgres Redis │
│ (11434) (6333) (5432) (6379) │
└─────────────────────────────────────────┘系统要求
硬件要求
PC端最低配置
- CPU: 双核 2.0GHz 或更高
- 内存: 4GB RAM
- 硬盘: 10GB 可用空间
- 网络: 宽带网络连接
PC端推荐配置(含AI功能)
- CPU: 四核 3.0GHz 或更高(支持AVX2指令集)
- 内存: 8GB+ RAM(运行大模型需要16GB+)
- 硬盘: 50GB+ SSD(存储模型文件)
- 显卡: NVIDIA RTX系列(可选,加速AI推理)
- 网络: 稳定的宽带连接
移动端要求
Android:
- 系统版本: Android 8.0 (API 26) 或更高
- 内存: 3GB RAM 或更高
- 存储: 5GB 可用空间
- 处理器: 64位ARMv8
iOS:
- 系统版本: iOS 14.0 或更高
- 设备: iPhone 8 或更新型号
- 存储: 5GB 可用空间
软件要求
PC端开发环境
- Node.js: 18.0 或更高版本
- npm: 9.0 或更高版本
- Git: 2.30 或更高版本
- Docker: 20.10 或更高版本(用于后端服务)
可选软件
- Ollama: 本地AI模型运行环境
- SQLite Browser: 数据库查看工具
- Postman: API测试工具
PC端安装
Windows 安装
方式一: 安装包安装(推荐)
- 下载安装包
访问 ChainlessChain官网 下载Windows安装包:
ChainlessChain-Setup-1.0.0.exe(约150MB)
- 运行安装程序
- 双击运行安装包
- 选择安装路径(默认:
C:\Program Files\ChainlessChain) - 勾选"创建桌面快捷方式"
- 点击"安装"
- 首次启动
- 启动ChainlessChain
- 完成初始化配置向导
- 插入U盾/SIMKey设备
方式二: 从源码构建
- 克隆项目
# 克隆仓库
git clone https://github.com/chainlesschain/chainlesschain.git
cd chainlesschain- 安装依赖
# 安装Node.js依赖
npm install
# 安装桌面端依赖
cd desktop
npm install
cd ..- 启动后端服务
# 启动Docker服务(MySQL, Redis, Ollama等)
cd backend/docker
docker-compose up -d
# 等待服务启动(约30秒)
docker-compose ps- 启动PC端应用
# 开发模式
npm run dev:desktop
# 或构建生产版本
npm run build:desktop常见问题
问题1: 缺少Visual C++运行库
解决方法:
# 下载并安装 Visual C++ Redistributable
# https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist问题2: 端口冲突
解决方法:
# 检查端口占用
netstat -ano | findstr "3000"
netstat -ano | findstr "3306"
# 修改配置文件端口
# desktop/config.jsmacOS 安装
方式一: DMG安装包(推荐)
- 下载DMG文件
访问官网下载macOS安装包:
ChainlessChain-1.0.0.dmg(约140MB)
- 安装应用
- 双击打开DMG文件
- 将ChainlessChain拖到Applications文件夹
- 首次打开时,右键选择"打开"(绕过Gatekeeper)
- 授予权限
# 如果提示权限问题
xattr -cr /Applications/ChainlessChain.app方式二: Homebrew安装
# 添加ChainlessChain tap
brew tap chainlesschain/tap
# 安装ChainlessChain
brew install chainlesschain
# 启动应用
chainlesschain方式三: 从源码构建
# 克隆项目
git clone https://github.com/chainlesschain/chainlesschain.git
cd chainlesschain
# 安装依赖
npm install
# 启动Docker服务
cd backend/docker
docker-compose up -d
cd ../..
# 启动开发模式
npm run dev:desktopmacOS特定配置
允许USB设备访问:
# 授予USB设备访问权限
sudo kextload -b com.apple.driver.usb.AppleUSBUHCI配置Ollama:
# 安装Ollama
brew install ollama
# 启动Ollama服务
ollama serve
# 下载模型
ollama pull llama3
ollama pull qwenLinux 安装
Ubuntu/Debian 安装
- 添加软件源
# 添加ChainlessChain GPG密钥
curl -fsSL https://www.chainlesschain.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/chainlesschain.gpg
# 添加软件源
echo "deb [signed-by=/usr/share/keyrings/chainlesschain.gpg] https://repo.chainlesschain.com/apt stable main" | sudo tee /etc/apt/sources.list.d/chainlesschain.list
# 更新软件包列表
sudo apt update- 安装ChainlessChain
# 安装
sudo apt install chainlesschain
# 启动
chainlesschainAppImage安装(通用)
# 下载AppImage
wget https://www.chainlesschain.com/download/ChainlessChain-1.0.0.AppImage
# 添加执行权限
chmod +x ChainlessChain-1.0.0.AppImage
# 运行
./ChainlessChain-1.0.0.AppImage从源码构建
# 安装依赖
sudo apt install -y nodejs npm git docker.io docker-compose
# 克隆项目
git clone https://github.com/chainlesschain/chainlesschain.git
cd chainlesschain
# 安装Node.js依赖
npm install
# 启动Docker服务
cd backend/docker
sudo docker-compose up -d
cd ../..
# 启动应用
npm run dev:desktop配置systemd服务(可选)
# 创建服务文件
sudo nano /etc/systemd/system/chainlesschain.service内容:
[Unit]
Description=ChainlessChain Personal AI System
After=network.target
[Service]
Type=simple
User=your-username
WorkingDirectory=/home/your-username/chainlesschain
ExecStart=/usr/bin/npm run start:desktop
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target启动服务:
sudo systemctl daemon-reload
sudo systemctl enable chainlesschain
sudo systemctl start chainlesschain移动端安装
Android 安装
方式一: Google Play(推荐)
- 打开Google Play商店
- 搜索"ChainlessChain"
- 点击"安装"
- 打开应用并完成初始化
方式二: APK安装
- 下载APK
访问官网下载Android安装包:
ChainlessChain-v1.0.0.apk(约50MB)
- 启用未知来源
设置 → 安全 → 允许安装未知应用
- 安装APK
- 打开下载的APK文件
- 点击"安装"
- 等待安装完成
方式三: 从源码构建
# 克隆项目
git clone https://github.com/chainlesschain/chainlesschain.git
cd chainlesschain
# 安装依赖
npm install
# 构建Android应用
cd android
./gradlew assembleRelease
# APK文件位置
# android/app/build/outputs/apk/release/app-release.apk开发模式:
# 启动开发服务器
npm run dev:android
# 在Android Studio中运行
# File -> Open -> chainlesschain/android
# 点击Run按钮iOS 安装
方式一: App Store(即将上线)
- 打开App Store
- 搜索"ChainlessChain"
- 点击"获取"
- 等待安装完成
方式二: TestFlight测试版
- 加入TestFlight
- 访问 https://testflight.apple.com/join/chainlesschain
- 安装TestFlight应用
- 接受测试邀请
- 安装测试版
- 在TestFlight中找到ChainlessChain
- 点击"安装"
方式三: 从源码构建
要求:
- macOS系统
- Xcode 15+
- Apple Developer账号(用于真机调试)
步骤:
# 克隆项目
git clone https://github.com/chainlesschain/chainlesschain.git
cd chainlesschain
# 安装依赖
npm install
# 安装CocoaPods依赖
cd ios
pod install
cd ..
# 在Xcode中打开项目
open ios/ChainlessChain.xcworkspace
# 在Xcode中:
# 1. 选择你的开发团队
# 2. 选择目标设备
# 3. 点击Run按钮后端服务配置
Docker部署(推荐)
ChainlessChain的后端服务使用Docker Compose部署,包括:
- MySQL: 数据库
- Redis: 缓存
- Ollama: 本地AI模型
- MeiliSearch: 全文搜索引擎
启动所有服务
cd backend/docker
docker-compose up -d查看服务状态
docker-compose ps应该看到:
NAME STATUS PORTS
chainless-mysql Up 30 seconds 0.0.0.0:3306->3306/tcp
chainless-redis Up 30 seconds 0.0.0.0:6379->6379/tcp
chainless-ollama Up 30 seconds 0.0.0.0:11434->11434/tcp
chainless-meilisearch Up 30 seconds 0.0.0.0:7700->7700/tcp查看日志
# 查看所有服务日志
docker-compose logs -f
# 查看特定服务日志
docker-compose logs -f ollama停止服务
docker-compose down重启服务
docker-compose restart手动安装后端服务
如果不使用Docker,可以手动安装各个服务。
MySQL 8.0
Windows:
# 下载MySQL Installer
# https://dev.mysql.com/downloads/installer/
# 创建数据库
mysql -u root -p
CREATE DATABASE chainlesschain DEFAULT CHARACTER SET utf8mb4;Linux:
sudo apt install mysql-server
sudo mysql_secure_installation
mysql -u root -p
CREATE DATABASE chainlesschain DEFAULT CHARACTER SET utf8mb4;Redis 7.0
Windows:
# 下载Redis for Windows
# https://github.com/microsoftarchive/redis/releasesLinux:
sudo apt install redis-server
sudo systemctl start redis
sudo systemctl enable redisOllama
Windows/macOS/Linux:
# 下载并安装Ollama
# https://ollama.com/download
# 启动Ollama
ollama serve
# 下载模型
ollama pull llama3
ollama pull qwenMeiliSearch
# 下载MeiliSearch
curl -L https://install.meilisearch.com | sh
# 启动MeiliSearch
./meilisearch --http-addr 127.0.0.1:7700初始化配置
首次启动向导
- 欢迎页面
- 选择语言(简体中文/English)
- 阅读用户协议
- 点击"开始配置"
- 设备设置
选择设备类型:
- U盾(USB Key)
- SIMKey(SIM卡密钥)
- 软件模拟(测试用)
插入U盾:
- 将U盾插入USB接口
- 系统自动检测设备
- 输入U盾PIN码(默认: 123456)
SIMKey配置:
- 插入SIMKey卡
- 输入PIN码
- 选择SIM卡槽
- 创建身份
生成DID:
did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH设置个人信息:
- 昵称: 你的名字
- 头像: 上传或使用默认
- 简介: 可选
备份助记词(重要!):
abandon ability able about above absent absorb abstract absurd abuse access accident- 抄写到纸上
- 妥善保管
- 不要截图或电子存储
- 验证助记词
- 配置AI模型
选择AI引擎:
- Ollama(推荐)
- LLaMA.cpp
- 无(稍后配置)
选择模型:
- LLaMA 3 8B(推荐,4GB内存)
- Qwen 7B(中文优化,5GB内存)
- GLM-4 9B(对话优化,6GB内存)
下载模型:
正在下载模型...
[████████████████████] 100%
LLaMA 3 8B (4.7GB) - 下载完成测试AI:
你: 介绍一下ChainlessChain
AI: ChainlessChain是一个去中心化的个人AI管理系统...- 数据同步
配置Git仓库:
- 使用GitHub/GitLab
- 自建Git服务器
- 稍后配置
GitHub示例:
仓库URL: https://github.com/username/chainlesschain-data.git
用户名: your-username
Token: ghp_xxxxxxxxxxxxxxxxxxxx同步频率:
- 实时同步(推荐)
- 每小时
- 每天
- 手动
- 完成配置
- 配置摘要确认
- 点击"完成"
- 进入主界面
配置文件
主配置文件
位置: ~/.chainlesschain/config.json
{
"version": "1.0.0",
"user": {
"did": "did:key:z6Mkp...",
"nickname": "张三",
"avatar": "avatar.jpg"
},
"device": {
"type": "UKEY",
"path": "/dev/usb0",
"pin": "encrypted_pin"
},
"ai": {
"engine": "ollama",
"model": "llama3",
"apiUrl": "http://localhost:11434",
"temperature": 0.7,
"maxTokens": 2048
},
"sync": {
"enabled": true,
"remote": "https://github.com/user/data.git",
"frequency": "realtime",
"autoCommit": true
},
"database": {
"path": "~/.chainlesschain/data.db",
"backup": true,
"backupInterval": "daily"
},
"network": {
"p2p": {
"enabled": true,
"port": 4001,
"bootstrap": [
"/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ"
]
},
"relay": {
"enabled": true,
"servers": ["/ip4/relay.chainlesschain.com/tcp/443/wss/p2p/QmRelay"]
}
},
"ui": {
"theme": "auto",
"language": "zh-CN",
"fontSize": 14
}
}AI模型配置
位置: ~/.chainlesschain/ai-config.json
{
"models": [
{
"name": "llama3",
"path": "~/.ollama/models/llama3",
"size": "4.7GB",
"contextLength": 8192,
"enabled": true
},
{
"name": "qwen",
"path": "~/.ollama/models/qwen",
"size": "5.2GB",
"contextLength": 32768,
"enabled": false
}
],
"rag": {
"enabled": true,
"chunkSize": 512,
"overlap": 50,
"embeddingModel": "bge-small-zh",
"topK": 5
}
}数据迁移
从其他笔记软件迁移
从Notion导出
# 在Notion中导出为Markdown & CSV
# Settings -> Export all workspace content -> Markdown & CSV
# 导入到ChainlessChain
chainlesschain import --source notion --path ~/Downloads/Notion_Export.zip从Evernote导出
# 在Evernote中导出为ENEX格式
# File -> Export Notes -> ENEX
# 转换ENEX到Markdown
npm install -g evernote-to-md
evernote-to-md ~/Downloads/notes.enex ~/markdown/
# 导入
chainlesschain import --source markdown --path ~/markdown/从Obsidian迁移
# Obsidian使用Markdown,可直接导入
chainlesschain import --source markdown --path ~/ObsidianVault/备份和恢复
备份数据
# 完整备份
chainlesschain backup --output ~/Backups/chainless_backup_$(date +%Y%m%d).tar.gz
# 只备份笔记
chainlesschain backup --notes-only --output ~/Backups/notes.zip恢复数据
# 从备份恢复
chainlesschain restore --input ~/Backups/chainless_backup_20241202.tar.gz
# 恢复到新设备
chainlesschain restore --input ~/Backups/backup.tar.gz --new-device使用示例
方式一:通过 npm CLI 快速安装(推荐)
# 一行命令全局安装
npm install -g chainlesschain
# 交互式设置(选择版本、LLM 提供商、下载二进制)
chainlesschain setup
# 启动桌面应用
chainlesschain start
# 环境诊断(检查 Node.js、Docker、端口等)
chainlesschain doctor方式二:Docker 一键部署后端服务
# 启动全部后端服务(Ollama、Qdrant、PostgreSQL、Redis)
chainlesschain services up
# 查看服务运行状态
chainlesschain services logs -f
# 停止所有服务
chainlesschain services down方式三:从源码构建桌面应用
git clone https://github.com/chainlesschain/chainlesschain.git
cd chainlesschain/desktop-app-vue
npm install
npm run build:main # 构建主进程
npm run dev # 开发模式运行
npm run make:win # 打包 Windows 安装包故障排查
常见问题
1. U盾/SIMKey无法识别
症状: 插入设备后无响应
解决:
# Windows: 检查驱动
# 设备管理器 -> 通用串行总线控制器
# Linux: 检查USB设备
lsusb
# 检查设备权限
sudo chmod 666 /dev/bus/usb/001/002
# 添加udev规则
sudo nano /etc/udev/rules.d/99-ukey.rules
# 添加: SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", MODE="0666"
sudo udevadm control --reload-rules2. AI模型加载失败
症状: "Failed to load model"
解决:
# 检查Ollama服务
curl http://localhost:11434/api/tags
# 重新下载模型
ollama rm llama3
ollama pull llama3
# 检查磁盘空间
df -h
# 检查内存
free -h3. Git同步失败
症状: "Failed to push to remote"
解决:
# 检查网络连接
ping github.com
# 检查Git配置
git config --list
# 重新设置远程仓库
git remote set-url origin https://github.com/user/repo.git
# 检查认证
git credential fill4. 数据库损坏
症状: "Database disk image is malformed"
解决:
# 备份数据库
cp ~/.chainlesschain/data.db ~/.chainlesschain/data.db.backup
# 修复数据库
sqlite3 ~/.chainlesschain/data.db
> PRAGMA integrity_check;
> .quit
# 如果无法修复,从备份恢复
chainlesschain restore --input ~/Backups/latest.tar.gz性能优化
PC端优化
# 增加Node.js内存限制
export NODE_OPTIONS="--max-old-space-size=4096"
# 启用GPU加速(NVIDIA)
export OLLAMA_GPU=1
# 禁用不需要的功能
# config.json
{
"network": {
"p2p": { "enabled": false }
}
}数据库优化
-- 定期清理
VACUUM;
-- 重建索引
REINDEX;
-- 分析表
ANALYZE;下一步
配置参考
安装选项配置
chainlesschain setup 支持通过环境变量或 CLI 参数预设安装选项,适用于自动化部署场景:
# 非交互式安装(CI/CD 场景)
CC_VERSION=personal \
CC_LLM_PROVIDER=ollama \
CC_SKIP_DOWNLOAD=false \
CC_DATA_DIR="$HOME/.chainlesschain" \
chainlesschain setup --yes
# 指定自定义数据目录和 LLM 端点
chainlesschain setup \
--data-dir /opt/chainlesschain \
--llm-url http://localhost:11434 \
--llm-model qwen2:7b \
--yesDocker 服务配置覆盖
在 docker-compose.override.yml 中覆盖默认端口或资源限制:
# docker-compose.override.yml
services:
ollama:
environment:
- OLLAMA_NUM_PARALLEL=4
- OLLAMA_MAX_LOADED_MODELS=2
deploy:
resources:
reservations:
devices:
- capabilities: [gpu] # 启用 NVIDIA GPU
qdrant:
ports:
- "6334:6334" # 将 gRPC 端口暴露到本地
postgres:
environment:
POSTGRES_MAX_CONNECTIONS: "200"
POSTGRES_SHARED_BUFFERS: "256MB"CLI 全局配置文件
~/.chainlesschain/config.json 中与安装相关的完整字段参考:
{
"install": {
"version": "personal",
"channel": "stable",
"autoUpdate": true,
"updateCheckInterval": "daily",
"binaryPath": "/usr/local/bin/chainlesschain-desktop"
},
"services": {
"ollama": { "host": "http://localhost:11434", "autoStart": true },
"qdrant": { "host": "http://localhost:6333", "autoStart": true },
"postgres": { "host": "localhost", "port": 5432, "autoStart": true },
"redis": { "host": "localhost", "port": 6379, "autoStart": true }
},
"doctor": {
"checks": ["node", "docker", "ports", "ollama", "disk"],
"warnThresholdDiskGB": 5,
"failThresholdDiskGB": 1
}
}环境变量速查
| 变量名 | 默认值 | 说明 |
|---|---|---|
CC_DATA_DIR | ~/.chainlesschain | 数据存储根目录 |
CC_VERSION | personal | 安装版本(personal / enterprise) |
OLLAMA_HOST | http://localhost:11434 | Ollama 服务地址 |
QDRANT_HOST | http://localhost:6333 | Qdrant 向量库地址 |
DB_HOST | localhost:5432 | PostgreSQL 连接地址 |
REDIS_HOST | localhost:6379 | Redis 连接地址 |
CC_SKIP_DOCTOR | false | 跳过启动时环境检查 |
NODE_OPTIONS | — | Node.js 运行时参数(如 --max-old-space-size=4096) |
性能指标
安装耗时(参考值)
| 安装方式 | 网络条件 | 典型耗时 |
|---|---|---|
npm install -g chainlesschain | 100 Mbps | ~15 秒 |
chainlesschain setup(仅配置,无模型下载) | — | ~30 秒 |
chainlesschain setup(含 llama3:8b 模型下载) | 100 Mbps | ~8 分钟 |
docker-compose up -d(首次拉取所有镜像) | 100 Mbps | ~5 分钟 |
docker-compose up -d(镜像已缓存) | — | ~20 秒 |
| AppImage / DMG / .exe 安装包 | 100 Mbps | ~2 分钟 |
磁盘占用
| 组件 | 占用空间 |
|---|---|
CLI 核心包(chainlesschain npm) | ~2 MB |
| 桌面应用(Electron 打包后) | ~180 MB |
| Docker 镜像合计(Ollama + Qdrant + PostgreSQL + Redis) | ~3.5 GB |
| llama3:8b 模型文件 | ~4.7 GB |
| qwen2:7b 模型文件 | ~4.4 GB |
~/.chainlesschain/ 初始数据目录(无笔记) | ~50 MB |
运行时资源(推荐配置下)
| 指标 | 空载 | 对话中(7B 模型) |
|---|---|---|
| 桌面应用内存 | ~120 MB | ~200 MB |
| Ollama 内存 | ~200 MB | ~5–6 GB(模型加载后) |
| Qdrant 内存 | ~80 MB | ~150 MB |
| CPU 占用(推理时,8 核) | <1% | 40–70% |
| GPU 显存(NVIDIA,启用时) | — | ~5 GB(7B 模型) |
启动时间
| 阶段 | 时间(SSD,推荐配置) |
|---|---|
| 桌面应用冷启动到主界面 | ~3 秒 |
chainlesschain doctor 完成全项检查 | ~5 秒 |
| Ollama 首次加载 7B 模型 | ~8–15 秒 |
| Ollama 模型已缓存时加载 | ~2–4 秒 |
| Docker 全服务就绪(镜像已缓存) | ~20 秒 |
测试覆盖率
安装与部署相关模块的测试文件列表:
CLI 安装命令
- ✅
packages/cli/__tests__/commands/setup.test.js— 交互式向导全流程、--yes非交互、版本选择、LLM 提供商配置 - ✅
packages/cli/__tests__/commands/doctor.test.js— Node.js 版本检测、Docker 检测、端口可用性、Ollama 连通性、磁盘空间检查 - ✅
packages/cli/__tests__/commands/start.test.js— 桌面应用启动、二进制路径解析、已运行实例检测 - ✅
packages/cli/__tests__/commands/services.test.js—services up/down/logs/restart、Docker Compose 调用、服务健康检查
配置管理
- ✅
packages/cli/__tests__/lib/config-manager.test.js— 配置读写、环境变量优先级、默认值回退、加密字段处理 - ✅
packages/cli/__tests__/lib/binary-downloader.test.js— GitHub Releases 下载、SHA-256 校验、断点续传、平台检测(win32/darwin/linux) - ✅
desktop-app-vue/src/main/config/__tests__/unified-config-manager.test.js— 统一配置管理器、跨平台路径、配置合并
Docker 服务编排
- ✅
packages/cli/__tests__/lib/docker-compose-manager.test.js— compose 文件生成、服务启停、日志流、GPU 配置注入 - ✅
packages/cli/__tests__/lib/service-health-checker.test.js— Ollama / Qdrant / PostgreSQL / Redis 健康探针、超时重试
数据迁移
- ✅
packages/cli/__tests__/commands/import.test.js— Notion ZIP 导入、Evernote ENEX 解析、Obsidian Markdown 导入、标签保留 - ✅
packages/cli/__tests__/commands/backup-restore.test.js— 完整备份打包、增量备份、跨设备恢复、备份完整性验证
环境诊断
- ✅
packages/cli/__tests__/lib/environment-checker.test.js— 操作系统检测、Node.js/npm 版本验证、Git 可用性、U-Key 驱动检测
安全考虑
- 环境变量安全: 避免将 API Key、数据库密码等敏感信息硬编码在脚本或配置文件中,使用
chainlesschain config set加密存储 - Docker 安全: 生产环境中为 Docker 容器配置网络隔离,避免将数据库端口暴露到公网
- 密钥与助记词: 首次创建身份时生成的助记词务必离线保存(纸笔),切勿截图或存储在电子设备中
- U-Key PIN 码: 默认 PIN 码为
123456,首次使用后务必立即修改为强 PIN - 文件权限: 配置目录
~/.chainlesschain/建议设置权限为 700,配置文件权限为 600 - 网络传输: 所有远程连接(Git 同步、API 调用)强制使用 HTTPS/TLS 加密
- 二进制校验: CLI 下载的二进制文件通过 SHA-256 校验和验证完整性,防止中间人篡改
- 最小权限原则: 不要以 root/管理员身份运行 ChainlessChain,使用普通用户权限即可
关键文件
packages/cli/src/commands/setup.js— CLI 安装向导packages/cli/src/commands/doctor.js— 环境诊断desktop-app-vue/package.json— 桌面应用依赖docker-compose.yml— Docker 服务编排
