利用MinIO对象存储搞定Obsidian自定义同步

自己有云主机和域名,很多事情就具有了「自己动手丰衣足食」的条件。比如这里利用MinIO和Remotely Save 插件,自己搞定obsidian日记的同步,省去每月4美金费用。

Docker安装MinIO

通过docker compose的方式安装MinIO非常方便,但是现在只有阉割的Community版本了,所以管理起来还得用mc,就不是以前那么丝滑了。

一个 docker-compose.yml 模板如下:

version: "3.9"
services:
minio:
image: minio/minio:latest
container_name: minio
restart: always
ports:
- "9000:9000" # S3 API
- "9001:9001" # Web Console
environment:
MINIO_ROOT_USER: {username}
MINIO_ROOT_PASSWORD: {password}
MINIO_SERVER_URL: {https://minio-api.website.com}
MINIO_SITE_REGION: cn-east-1
volumes:
- {/path/to/miniodata}:/data
command: server /data --console-address ":9001"

实际部署的时候,把带有 {} 部分的内容修改了就行了。然后 docker compose up -d 就会自动pull镜像并启动容器运行起来。

使用mc管理MinIO

使用 mc 来配置 community 版本的 MinIO,由于host主机是centos7,直接装mc不太方便,用docker版本的:

Terminal window
docker run --rm -it --network host minio/mc

给minio存储api弄一个别名 myminio,并且把相关信息保存到 /root/.mc 中,方便后面调用:

Terminal window
mkdir -p /root/.mc
docker run --rm --network host -v /root/.mc:/root/.mc minio/mc alias set myminio https://minio-api.website.com username 'password'

给 minio 添加一个 AccessID (obsidian-sync) 和 Secret Key (ObsidianSync@2026)

Terminal window
docker run --rm -network host -v /root/.mc:/root/.mc minio/mc admin user add myminio obsidian-sync 'ObsidianSync@2026'

注意 Access ID 就是 obsidian-sync SecretKey 就是 ObsidianSync@2026

再给这个新建的 AccessID 配置读写权限:

Terminal window
docker run --rm --network host -v /root/.mc:/root/.mc minio/mc admin policy attach myminio readwrite --user obsidian-sync

宝塔面板公网域名反代

然后可以利用宝塔面板做个反代:

Web控制台:https://minio.website.com >> host_ip:9001 API Endpoint:https://minio-api.website.com >> host_ip:9000

反代的时候注意,对于 https://minio-api.website.com,在 Nignx 配置上还得加一句:

proxy_cache_convert_head off;

MinIO对象存储-1784503822674.webp

登陆Web控制台并添加存储桶

浏览器访问之前的 https://minio.website.com,输入 docker-compose.yml 中配置的管理员账户密码登陆。

MinIO对象存储-1784504335646.webp

由于是 Community 版本,都没啥好说的,直接创建即可。

Obsidian Remotely Save 插件配置

MinIO对象存储-1784504257064.webp

在插件中把红色框选住的信息都填写正确,然后检查一下 :

MinIO对象存储-1784504589823.webp