Mods Space 服务端
Mods Space 是 Alia 的包分发中心,客户端通过 alia 命令发布与安装包。
客户端流程
alia space http://your-space-host/ # 设置空间地址
alia login # 注册后登录
alia publish # 发布当前项目
alia install foo@1.2.0 # 安装包
alia add foo@latest # 添加项目依赖
发布的项目以 ZIP 打包为 <name>@<version>.aliam,客户端通过 GET /api/mods/<name>@<version>.aliam 下载。
自建部署
服务端(ModServer)为独立项目(https://git.0832.ink/Alia/ModSpace.git),部署指南见该仓库 README.md:
git clone https://git.0832.ink/Alia/ModSpace.git
cd ModSpace/server
npm install
npm start
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
PORT | 3000 | 监听端口 |
ALIA_SPACE_DATA | server/data | 数据目录(users.json、registry.json、mods/、secret、extracted/) |
ALIA_SPACE_SECRET | 自动生成 | JWT 签名密钥 |
接口
| 方法 | 路径 | 说明 |
|---|---|---|
POST | /api/register | 注册用户({ username, password }) |
POST | /api/login | 登录,返回 JWT |
POST | /api/logout | 退出登录 |
POST | /api/publish | 发布包(multipart file,需 Authorization: Bearer <token>) |
GET | /api/mods/:name/latest | 查询最新版本号 |
GET | /api/mods/:name@:version.aliam | 下载指定版本 |
GET | /api/mods | 模组列表,可选 ?q=<关键词>(匹配名称/描述/标签)与 `?sort=updated |
GET | /api/mods/:name | 单模组详情(含全部版本与元数据) |
GET | /api/mods/:name/versions | 版本列表 |
GET | /api/mods/:name/readme?version= | README 内容(缺省为最新版本) |
GET | /api/mods/:name/files?version= | 包内文件树 [{ path, type, size }] |
GET | /api/mods/:name/file?version=&path= | 单个文件内容(path 支持点号相对路径) |
GET | /api/mods/:name/dependencies?version= | 指定版本的依赖表 { name: version } |
用户数据持久化于 <data>/users.json,发布的包存放于 <data>/mods/,解包内容存放于 <data>/extracted/<name>@<version>/(供 README/文档/文件浏览接口读取)。
元数据注册表
发布时服务端解压 .aliam,读取 config.json(name/version/dependencies 及可选 author/description/tags/homepage),生成模组元数据:
{
"name": "demo-lib",
"version": "1.0.0",
"author": "alice",
"description": "模组简介",
"tags": ["http", "工具"],
"homepage": "https://example.com",
"dependencies": {
"base-lib": "2.0.0"
}
}
元数据(含 author、publishedAt、各版本、下载统计)持久化于 <data>/registry.json,供 /api/mods 系列接口与网站门户使用。包内的 README.md 与 docs/ 目录会展示在门户详情页的「描述」与「文档」页签。