思源笔记多端同步方案:Docker MinIO + Siyuan-unlock
思源笔记多端同步方案:Docker MinIO + Siyuan-unlock
1. 需求背景
思源笔记功能强大,有多端 PC 使用需求,但官方同步需付费 78 元。本方案仅需一台服务器即可实现免费同步。
适用人群:
- 拥有一台服务器
- 多台 PC 需要同步
2. 系统架构
核心组件:
- MinIO:开源 S3 对象存储
- Siyuan-unlock:支持自定义 S3 同步
架构: 多个 PC 端 ↔ MinIO Server ↔ 数据存储
3. 实现步骤
3.1 部署 MinIO
docker-compose.yml:
version: '3.8'
services:
minio:
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
container_name: minio
restart: unless-stopped
command: server /data --console-address ":9001"
environment:
TZ: Asia/Shanghai
LANG: en_US.UTF-8
MINIO_ROOT_USER: minioadmin # 改成你的用户名
MINIO_ROOT_PASSWORD: minioadmin # 改成你的密码
MINIO_SERVER_URL: http://<ServerIP>:<Port> # 改成你的服务器IP
volumes:
- minio_data:/data
- minio_config:/root/.minio
ports:
- "9000:9000" # API 端口
- "127.0.0.1:9001:9001" # 控制台(仅本地访问)
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 10s
retries: 3
volumes:
minio_data:
minio_config:
networks:
default:
name: siyuan-network
启动
docker-compose up -d
3.2 安装 MinIO Client (mc)
# 下载 mc 客户端
wget https://dl.min.io/client/mc/release/linux-amd64/mc
# 赋予执行权限
chmod +x mc
# 移动到系统路径
sudo mv mc /usr/local/bin/
# 创建软链接(可选)
sudo ln -s /usr/local/bin/mc /usr/bin/mc
# 验证安装
mc --version
3.3 配置 MinIO
# 配置 MinIO 别名(连接信息)
mc alias set myminio http://<ServerIP>:9000 minioadmin minioadmin
# 验证连接
mc admin info myminio
# 创建存储桶
mc mb myminio/notes-sync
# 查看存储桶列表
mc ls myminio
权限配置(按需选择):
# 方案1:公开访问(不推荐,数据无保护)
mc anonymous set public myminio/notes-sync
# 方案2:私有访问(推荐)
mc anonymous set private myminio/notes-sync
# 查看当前权限
mc anonymous get myminio/notes-sync
3.4 配置思源笔记
在思源笔记中:设置 → 云端 → S3 配置
Endpoint: http://<ServerIP>:9000
Access Key: minioadmin
Secret Key: minioadmin
Bucket: notes-sync
Region: us-east-1
点击启用 自动同步,在关于-数据仓库密钥,设置数据库秘钥,即可启用同步;
3.5 防火墙配置
# 开放 MinIO API 端口 使用 ufw
sudo ufw allow 9000/tcp
4. 常用管理命令
# 查看存储桶内容
mc ls myminio/notes-sync
# 查看存储桶使用情况
mc du myminio/notes-sync
# 备份数据(下载到本地)
mc mirror myminio/notes-sync ./backup
# 删除存储桶(危险操作)
mc rb --force myminio/notes-sync
# 查看 MinIO 服务状态
docker logs -f minio
# 重启 MinIO
docker restart minio
5. 故障排查
# 检查容器状态
docker ps | grep minio
# 查看详细日志
docker logs minio --tail 100
# 测试端口连通性
curl http://<ServerIP>:9000/minio/health/live
# 重置连接
mc alias remove myminio
mc alias set myminio http://<ServerIP>:9000 minioadmin minioadmin
浙公网安备 33010602011771号