用途:在 ASUSTOR NAS three-body 上操作 Joel 的规范 S3 兼容对象存储 Garage,用于本地自托管 Convex。规范路径是运行在 NAS 上的 Docker/Compose Garage 服务;自定义 MinIO 现为回滚/参考路径,ASUSTOR MinIO CE 仅作冒烟测试/参考实例。
主要能力与拓扑:S3 API 为 http://100.67.156.41:39100,数据、元数据、快照、Compose 文件、garage.toml、convex-s3.env 等均位于 /volume1/joelclaw/s3/ 下。镜像为 dxflrs/garage@sha256:dac0c92add4f1a0b41035e94b41036a270ffbe88a37c7ac9c3f19e6dc5bdccf2。Garage 不应公开暴露,仅限 LAN/tailnet 访问。
使用方式:先阅读项目笔记与安装脚本等规范来源,再验证 39100 可达性、校验脱敏后的 Convex 环境变量形状,确认 S3_ENDPOINT_URL=http://100.67.156.41:39100、AWS_S3_FORCE_PATH_STYLE=true,并运行 Convex 级冒烟脚本 ./smoke-self-hosted-convex.sh。健康检查优先使用无需凭据的网络检查,如 nc -vz -w 5 100.67.156.41 39100;Garage 不支持匿名 S3 访问,根路径返回 403 AccessDenied 即证明 API 可达。
适用场景:Garage 存储桶、密钥、环境变量接线、冒烟测试、MinIO 到 Garage 迁移,以及本地 Convex 对象存储调试。
限制与安全:严禁打印、粘贴、提交或记录 Garage RPC 密钥、admin token、metrics token、Convex 访问密钥/密钥及原始 env 文件;分享输出前须先脱敏。NAS SSH 一次只用一个会话,避免并行探测。Docker 操作通常需要 sudo。不要创建未指定的额外存储桶,未经明确授权和备份/恢复说明不得删除存储桶或对象。Garage 使用自有密钥/存储桶权限模型,并非改名版 MinIO。端口区分:Garage 39100、自定义 MinIO 39000、CE 29990。不要为让冒烟测试通过而将 Convex 对象存储迁移到本地 SSD 回退方案。