Mythic Hoard(Mod 托管)
仓库:
Mythicove/mythic-hoard品牌名:Mythic Hoard(秘藏) 定位:源码可得的 Minecraft Mod 托管/分发平台,Modrinth 兼容。
提供模组(Mod)、资源包(Resourcepack)、数据包(Datapack)、着色器(Shader)、插件(Plugin)与整合包(Modpack)的托管、搜索、版本管理与分发。核心差异化是 API 与 .mrpack 格式对齐 Modrinth,让 Prism Launcher、ferium、packwiz、Pakku、ATLauncher 等现成客户端零成本接入。按 10 到 10k 用户分级部署,搜索、队列、账号中心均可选配。
| 层 | 选型 |
|---|---|
| 后端 | Go(chi + pgx + sqlc + oapi-codegen) |
| 契约 | OpenAPI 3.1(openapi-typescript 生成前端 client) |
| 数据库 | PostgreSQL + goose 迁移 |
| 搜索 | Meilisearch(Search 接口,A 档 pg_trgm) |
| 存储 | Storage 接口:local / MinIO / S3 + CDN |
| 认证 | 内建 JWT/session(必选)+ Zitadel OIDC(可选) |
| 任务队列 | asynq(Queue 接口,A 档内联) |
| 前端 | Next.js 或 Vite + React |
| 限流 | Redis(RateLimiter 接口) |
| 部署 | Docker + Caddy(分级见计划) |
启动器/工具 (Prism/ferium/packwiz/Pakku) ──▶ Modrinth 兼容 API (/v2/*) │ 浏览器 ──▶ 前端 (Next.js) ──▶ REST (Go/chi) ─────┤ ├─▶ PostgreSQL(项目/版本/用户) ├─▶ Search 接口(pg_trgm / Meilisearch) ├─▶ Storage 接口(local/MinIO/S3)+ CDN ├─▶ Redis(限流/缓存,可省) └─▶ 上游:Modrinth / CurseForge API(镜像代理) 任务队列 (Queue 接口:内联 / asynq) ──▶ 索引/镜像/统计聚合模块划分(每模块对应接口,便于替换实现):
project:项目/版本/文件、loader/分类/标签、依赖。search:Search接口(Postgrespg_trgm/ Meilisearch)与 facets。ingest:上游镜像代理(Modrinth/CF)。pack:.mrpack生成与解析。org:组织、团队、成员、权限。review:审核队列、举报、合规。stats:下载/浏览统计。- 横切:
auth、storage、queue、ratelimit、i18n、mailer。
Modrinth 兼容 API 清单(子集,逐步对齐)
Section titled “Modrinth 兼容 API 清单(子集,逐步对齐)”GET /v2/search:全文加 facets(categories、versions、license、project_type、loaders)GET /v2/project/{id|slug}、GET /v2/projects?ids=[]GET /v2/project/{id}/version、GET /v2/version/{id}、GET /v2/versions?ids=[]GET /v2/version_files、GET /v2/version_file/{hash}GET /v2/tag/*、GET /v2/category、GET /v2/loader、GET /v2/project/{id}/dependenciesGET /v2/user、GET /v2/users?ids=[]、GET /v2/team/*、POST /v2/organization- 下载:
/cdn/data/{project}/{version}/{file}(S3 直出) .mrpack导出:GET /v2/project/{id}/version/{vid}/mrpack(含modrinth.index.json)
关键实现点:
- 先做“只读加下载”子集即可被启动器消费,写操作(上传、组织)后续迭代。
- 保持 JSON 字段名与 Modrinth 完全一致,避免客户端解析失败。
.mrpack内files[].downloads[]指向本平台下载 URL,支持多源回退。- 下载和浏览统计走
Queue(内联到 asynq),异步聚合,不阻塞主请求。
- 计划:Mythic Hoard 计划(功能分级、数据模型草案、里程碑、部署分级、风险)
- 调研:为何自研
- 部署:部署

