最近在折腾笔记,安装了Obsidian和思源笔记,目前主要是使用WebDAV来实现同步,Obsidian上还行,但是在思源笔记上遇到一些问题,速度实在是实在是太慢了,经常打开笔记就干等着很无语
并且最近注意到思源笔记也不建议使用WebDAV进行数据同步,更建议使用MinIO来实现数据同步,参考了官网文档,和一些博客的内容,完成了这篇笔记
本文主要是面向NAS用户和云服务器用户,有一定动手能力,又比较追求隐私的人群
一、环境准备
群晖型号:DS220+ 以及更高型号
如果是用其他自己的电脑,参考如下配置(最低配置要求):
- CPU:最低要求2核、推荐配置4核以上(高并发或多节点建议8核以上)
- 内存:最低要求 4GB,推荐配置:
- 8 GB用于小规模部署
- 16GB+ 用于大规模分布式部署或频繁上传/下载大文件
- 磁盘就自己看着办,有多大数据准备多大硬盘(相信您一定是硬盘数不清的大佬,我就不卖弄了)
二、MinIO 安装部署
本文主要介绍基于群晖 Docker Compose的部署方式
安装Docker部件
以防有朋友还没安装Docker

直接在套件中心搜索Docker,就能搜索到 Container Manager,安装即可
🛠 步骤一:准备数据目录
打开群晖“文件管理器”或使用 SSH,创建一个用于持久化 MinIO 数据的目录,例如:

注意:/volume1/docker/minio/data
是容器中的 /data
映射路径,请根据你群晖中实际共享文件夹名称进行调整。
🛠 步骤二:运行 MinIO 容器
打开 DSM 的 Docker 套件 → 切换到 注册表,搜索并下载 minio/minio
镜像(或 quay.io/minio/minio
也可)。

然后手动创建容器或使用以下命令(需开启 SSH 登录群晖):
docker run -d \
--name minio \
-p 9000:9000 \
-p 9001:9001 \
-v /volume1/docker/minio/data:/data \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=admin12345" \
quay.io/minio/minio server /data --console-address ":9001"
Code language: Bash (bash)
或者也可以直接使用界面运行,点击运行

点击下一步

- 这里最好是选择一下:启用自动重新启动
配置一下端口和存储路径

再配置一下账号密码:

再填个命令

🖥 步骤三:访问 MinIO 控制台
1、打开浏览器,访问群晖 IP 的控制台地址:
<code>http://<群晖IP>:9001</code>
Code language: Bash (bash)
2、输入刚才设置的账号密码登录
<code>admin / admin12345</code>
Code language: Bash (bash)

三、MinIO 初始配置
访问 MinIO Web 控制台:http://群晖IP:9001
创建一个桶(Bucket):例如 siyuan-notes
/ obsidian-sync

然后配置一下权限,不过现在界面上只能配置基础的桶了
自 MinIO RELEASE.2023-10-16T04-13-43Z 起,社区版移除了 MinIO Console 的用户/权限管理功能,现在所有配置都应通过 命令行工具 mc
(MinIO Client) 或 API 完成。
下面是最常见的通过命令行配置 MinIO 的流程,包括用户管理、桶权限、策略设定等,适用于思源笔记或 Obsidian 的同步场景。

🧰 前置工具:安装 mc
(MinIO Client)
官网文档:https://docs.min.io/community/minio-object-store/reference/minio-mc.html#quickstart
安装命令(适用于 Linux / macOS):
# macOS (Homebrew)
brew install minio/stable/mc
# Linux (curl)
curl -O https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
Code language: Bash (bash)
对于Windows用户可以从文档下载执行文件

🛠 步骤一:添加 MinIO 实例到 mc
<code>mc alias set local http://<MINIO_IP>:9000 admin admin12345</code>
Code language: Bash (bash)
local
:是给这台 MinIO 起的别名http://<MINIO_IP>:9000
:MinIO S3 API 地址admin
/admin12345
:是 MinIO 的 Root 用户和密码(来自容器变量)
🪣 步骤二:创建 Bucket
<code>mc mb local/siyuan-sync</code>
Code language: HTML, XML (xml)
mb
代表 “make bucket”
前面用UI创建过的就不需要执行这个命令了
如果启用了版本控制,可以继续:
<code>mc version enable local/siyuan-sync</code>
Code language: Bash (bash)
🔐 步骤三:创建自定义访问策略(只读/读写)
你可以根据需要创建一个只允许某 Bucket 访问的策略。
示例策略:读写桶权限(适合思源笔记)
创建 JSON 文件 siyuan-sync-policy.json
:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::siyuan-sync"]
},
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject"],
"Resource": ["arn:aws:s3:::siyuan-sync/*"]
}
]
}
<code><span style="background-color: initial; font-family: inherit; font-size: inherit; text-align: initial; color: initial;"></span></code>
Code language: JSON / JSON with Comments (json)
然后导入并应用策略:
mc admin policy create local siyuan-sync-local-policy ./siyuan-sync-policy.json
Code language: Bash (bash)
👤 步骤四:创建访问用户并绑定权限策略
mc admin user add local suyuan_user Suyu@nPass123
# > User `suyuan_user` added successfully for cluster `local`
<code><span style="background-color: initial; font-family: inherit; font-size: inherit; text-align: initial; color: initial;"></span></code>
Code language: Bash (bash)
你可以将
siyuan_user
/siyuan_pass
填入思源笔记的 S3 同步配置中。
这一步是为了让思源 / Obsidian 端系统对接 MinIO 获取密钥
步骤五:绑定策略到用户
mc admin policy attach local siyuan-sync-local-policy --user suyuan_user
# > Policy `siyuan-sync-local-policy` attached successfully to user `suyuan_user`
Code language: Bash (bash)
最后验证一下绑定是否成功
mc admin user info local --json | jq
# 可用 `policyInfo` 字段确认用户已挂载该策略
Code language: Bash (bash)
或
mc admin policy info local siyuan-sync-local-policy --json
Code language: Bash (bash)
一件部署脚本
如果不想配置麻烦的东西,可以使用脚本进行配置
#!/bin/bash
set -e
echo "🎉 欢迎使用 MinIO 初始化配置脚本"
# 用户输入基本信息
read -p "👉 MinIO 别名 (如 local): " ALIAS
read -p "👉 MinIO 服务地址 (如 http://127.0.0.1:9000): " ENDPOINT
read -p "👉 Root 用户名 (如 admin): " ROOT_USER
read -sp "🔑 Root 密码: " ROOT_PASS
echo
# 设置 alias
mc alias set "$ALIAS" "$ENDPOINT" "$ROOT_USER" "$ROOT_PASS"
echo "✅ 已连接到 MinIO [$ALIAS]"
# 输入 bucket 和策略信息
read -p "📦 请输入要创建的 Bucket 名称 (如 siyuan-sync): " BUCKET
read -p "🛡️ 请输入要创建的策略名称 (如 siyuan-policy): " POLICY
# 创建 bucket
mc mb "$ALIAS/$BUCKET" || echo "⚠️ Bucket 已存在,跳过创建"
mc version enable "$ALIAS/$BUCKET"
echo "✅ Bucket [$BUCKET] 已创建并启用版本控制"
# 创建策略 JSON 临时文件
cat > /tmp/$POLICY.json <<EOF
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":["s3:ListBucket"],
"Resource":["arn:aws:s3:::$BUCKET"]
},
{
"Effect":"Allow",
"Action":["s3:GetObject","s3:PutObject","s3:DeleteObject"],
"Resource":["arn:aws:s3:::$BUCKET/*"]
}
]
}
EOF
# 创建策略
mc admin policy create "$ALIAS" "$POLICY" "/tmp/$POLICY.json"
echo "✅ 策略 [$POLICY] 已创建"
# 创建普通用户
read -p "👤 请输入要创建的用户名 (如 siyuan_user): " NEW_USER
read -sp "🔑 请输入该用户的密码: " NEW_PASS
echo
mc admin user add "$ALIAS" "$NEW_USER" "$NEW_PASS"
mc admin policy attach "$ALIAS" "$POLICY" --user "$NEW_USER"
echo "✅ 用户 [$NEW_USER] 已创建并绑定策略 [$POLICY]"
# 清理临时文件
rm -f "/tmp/$POLICY.json"
# 显示最终信息
echo
echo "🎉 全部完成!请将以下信息用于客户端配置:"
echo "----------------------------------------------------"
echo "📌 Endpoint: $ENDPOINT"
echo "📌 Bucket: $BUCKET"
echo "📌 AccessKey (用户名): $NEW_USER"
echo "📌 SecretKey (密码): $NEW_PASS"
echo "📌 版本控制: 已启用"
echo "📌 策略名: $POLICY"
echo "----------------------------------------------------"
Code language: Bash (bash)
四、配置思源笔记和Obsdian
为了实现 Obsidian 和 思源笔记 使用 MinIO 作为私有同步服务,你最终在两款笔记应用中需要配置的内容如下:
✅ 一、Obsidian 端配置(基于插件如 Obsidian Git 或 Obsidian Sync alternative)
如果你使用的是第三方插件(如 Remotely Save 插件),它支持 S3 协议,可用于对接 MinIO。
示例配置(Remotely Save 插件):
配置项 | 示例值 |
---|---|
Backend Type | S3 |
S3 Endpoint | http://192.168.1.100:9000 |
S3 Bucket Name | obsidian |
Region | us-east-1 (MinIO 默认接受任意 region) |
Access Key | obsidian-user |
Secret Key | your-secret-password |
Directory Path | vault/ |
Encryption | 可选,设置为 false 或设置密码开启加密 |
✅ 二、思源笔记配置
思源笔记支持将同步仓库设置为 S3 存储(在 2.x 版本中支持)
示例配置(思源笔记 > 设置 > 同步 > S3 存储
):
配置项 | 示例值 |
---|---|
服务商 | 自定义 |
Endpoint | http://192.168.1.100:9000 |
Bucket 名称 | siyuan |
Access Key | siyuan-user |
Secret Key | your-secret-password |
Region | us-east-1 |
Root path | siyuan/ |
Use SSL | 否 (MinIO 未启用 HTTPS 时) |
⚠️ 注意:MinIO 不支持自动签名 v4 的某些变种,因此思源笔记推荐开启“兼容模式”,如果连接失败可尝试勾选或取消「兼容 MinIO」。
📁 三、目录结构示例(MinIO 中)
obsidian/
vault/
MyNote1.md
MyFolder/
Note2.md
siyuan/
data/
...
✅ 总结建议:
项目 | Obsidian 配置桶 | 思源笔记配置桶 | 是否建议分桶 |
---|---|---|---|
Bucket 名称 | obsidian | siyuan | ✅ 是,便于管理和权限隔离 |
暂无评论