跳到主要内容

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

环境变量​

变量默认值说明
PORT3000监听端口
ALIA_SPACE_DATAserver/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/ 目录会展示在门户详情页的「描述」与「文档」页签。