|
1 | | -# Node-OpenMCIM |
2 | | - |
3 | | -这是对 [bangbang93](https://github.com/bangbang93) 的 [OpenBMCLAPI](https://github.com/bangbang93/openbmclapi) 项目的修改版 |
4 | | - |
5 | | -为了方便上线 OpenMCIM 而修改了部分内容 |
6 | | - |
7 | | -# 关于OpenMCIM |
8 | | -借鉴 OpenBMCLAPI 使用网盘缓存的先例,旨在为中国大陆用户提供稳定的 Mod 信息镜像服务并解决国内下载 Mod 速度缓慢的问题。 |
9 | | - |
10 | | -OpenMCIM是对外开放的,所有需要 Minecraft Mod 资源的启动器均可调用。 |
11 | | - |
12 | | -[OpenMCIM 文件分发相关](https://github.com/mcmod-info-mirror/mcim/issues/91) |
13 | | - |
14 | | -## 变量 |
15 | | - |
16 | | -| 环境变量 |必填 | 默认值 | 说明 | |
17 | | -|---------------------|-----|--------------|--------------------------------------------------------------------------------------------------------| |
18 | | -| CLUSTER_ID | 是 | - | 节点 ID | |
19 | | -| CLUSTER_SECRET | 是 | - | 节点密钥 | |
20 | | -| CLUSTER_IP | 否 | 自动获取公网出口IP | 用户访问时使用的 IP 或域名 | |
21 | | -| CLUSTER_PORT | 否 | 4000 | 监听端口(本地开放的端口) | |
22 | | -| CLUSTER_PUBLIC_PORT | 否 | CLUSTER_PORT | 对外端口(用户请求时访问的端口) | |
23 | | -| CLUSTER_BYOC | 否 | false | 是否使用自定义域名, (BYOC=Bring you own certificate),当使用国内服务器需要备案时, 需要启用这个参数来使用你自己的域名, 并且你需要自己提供ssl termination | |
24 | | -| ENABLE_NGINX | 否 | false | 使用 nginx 提供文件服务 | |
25 | | -| DISABLE_ACCESS_LOG | 否 | false | 禁用访问日志输出 | |
26 | | -| ENABLE_UPNP | 否 | false | 启用 UPNP 端口映射 | |
27 | | -| CLUSTER_BMCLAPI | 否 | https://files.mcimirror.top | 更改上线地址(测试变量) | |
28 | | -| CLUSTER_STORAGE | 否 | files | 使用其他存储源的类型(默认为本地) | |
29 | | -| CLUSTER_STORAGE_OPTIONS | 否 | 无 | 挂载其他存储源的配置项 | |
30 | | -| SKIP_FILE_SHA_CHECK | 否 | false | 防止主控SHA爆炸,强制忽略SHA问题上线 | |
31 | | -| SKIP_SYNC | 否 | false | 强制跳过所有同步(不推荐) | |
32 | | -| SKIP_GC | 否 | false | 跳过GC垃圾自动回收(由 **千时雨** 提供) | |
33 | | -| THREADS | 否 | 由主控分配 | 同步线程(改太高会被banban) | |
34 | | -| UA | 否 | openmcim-cluster/${version} | 获取token和同步的UA | |
35 | | - |
36 | | -### 如果你在源码中发现了其他环境变量, 那么它们是为了方便开发而存在的, 可能会随时修改, 不要在生产环境中使用! |
37 | | - |
38 | | -## Alist使用方法 |
39 | | -在.env中加上 |
40 | | -```env |
41 | | -CLUSTER_STORAGE=alist |
42 | | -CLUSTER_STORAGE_OPTIONS={"url":"http://127.0.0.1:5244/dav","basePath":"mcim","username":"admin","password":"admin" } |
43 | | -# ↑AList地址(别忘了加/dav) ↑文件路径 ↑账号(有webdav权限) ↑密码 |
44 | | -``` |
45 | | -按照需要修改 |
46 | | - |
47 | | -### 温馨提示 |
48 | | - |
49 | | -如从 Go 端迁移至 Node 端,你Alist里面的目录应该是这样的: |
50 | | - |
51 | | -```file_tree |
52 | | -mcim/ |
53 | | -├── download/ |
54 | | -│ ├── 00/ |
55 | | -│ ├── 01/ |
56 | | -| ├── 03/ |
57 | | -│ └── xx(下面一堆文件夹,不一一列举)/ |
58 | | -├── measure/ |
59 | | -│ ├── 1 |
60 | | -│ ├── 2 |
61 | | -│ └── 3 |
62 | | -``` |
63 | | -此时你basepath的地址就应该填写"mcim/download" |
64 | | - |
65 | | -(即确保 Node-OpenMCIM 程序读取的根目录为有效文件所存储目录) |
66 | | - |
67 | | - |
68 | | -### 安装包 |
69 | | - |
70 | | -从 [Github Release](https://github.com/ZeroWolf233/node-openmcim/releases) 中下载你系统对应的最新版本 |
71 | | - |
72 | | -解压,然后根据对应信息,参照上方表格填写.env文件 |
73 | | - |
74 | | -随后启动脚本,即可开始运行 |
75 | | - |
76 | | -### 使用Docker |
77 | | - |
78 | | -```bash |
79 | | -docker run -d \ |
80 | | --e CLUSTER_ID=${CLUSTER_ID} \ |
81 | | --e CLUSTER_SECRET=${CLUSTER_SECRET} \ |
82 | | --e CLUSTER_PUBLIC_PORT=${CLUSTER_PORT} \ |
83 | | --e TZ=Asia/Shanghai \ |
84 | | --v /data/mcim:/opt/mcim \ |
85 | | --p ${CLUSTER_PORT}:${CLUSTER_PORT} \ |
86 | | ---restart unless-stop \ |
87 | | ---name mcim \ |
88 | | -zerowolf233/mcim |
89 | | -``` |
90 | | - |
91 | | -### 从源码安装 |
92 | | - |
93 | | -#### 环境 |
94 | | - |
95 | | -- Node.js 20 以上 |
96 | | -- Windows/MacOS/Linux |
97 | | -- x86/arm 均可 (需支持Nodejs) |
98 | | - |
99 | | -#### 设置环境 |
100 | | - |
101 | | -1. 去 <https://nodejs.org/zh-cn/> 下载LTS版本的nodejs并安装 |
102 | | -2. Clone 并安装依赖 |
103 | | - |
104 | | -```bash |
105 | | -git clone https://github.com/ZeroWolf233/node-openmcim |
106 | | -cd node-openmcim |
107 | | -## 安装依赖 |
108 | | -npm ci |
109 | | -## 编译 |
110 | | -npm run build |
111 | | -## 运行 |
112 | | -node dist/index.js |
113 | | -``` |
114 | | - |
115 | | -3. 如果你看到了 `CLUSTER_ID is not set` 的报错, 说明一切正常, 该设置参数了 |
116 | | - |
117 | | -### 设置参数 |
118 | | - |
119 | | -在项目根目录创建一个文件, 名为 `.env` |
120 | | - |
121 | | -写入如下内容 |
122 | | - |
123 | | -```env |
124 | | -CLUSTER_ID=你的节点ID |
125 | | -CLUSTER_SECRET=你的节点密钥 |
126 | | -CLUSTER_PORT=你的开放端口 |
127 | | -# 更多变量请看上方变量的详细解释 |
128 | | -``` |
129 | | - |
130 | | -如果配置无误的话, 运行程序, 就会开始拉取文件, 拉取完成后就会开始等待服务器分发请求了! |
131 | | - |
132 | | -## 致谢 |
133 | | - |
134 | | -- [**bangbang93**](https://github.com/bangbang93) 基本全是照着bangbang93的源码改的,总之谢谢93! |
135 | | -- [**OpenBMCLAPI**](https://github.com/bangbang93/openbmclapi) 项目原型 |
136 | | -- [**OpenMCIM**](https://github.com/mcmod-info-mirror/mcim) 大陆Curseforge&Modrinth镜像源 |
137 | | -- [**SaltWood**](https://github.com/SALTWOOD) OpenMCIM所用主控 |
138 | | -- [**Open93@Home-V3**](https://github.com/SaltWood-Studio/Open93AtHome-V3) |
139 | | -- [**ZeroWolf233**](https://github.com/ZeroWolf233) 作者,但是fw一个 |
140 | | -- [**Zhang**](https://github.com/Zhang12334) 项目发起 & 程序改写 |
141 | | -- **千时雨** 提供很多对网盘优化的修改思路和代码 |
| 1 | +# Node-OpenMCIM |
| 2 | + |
| 3 | +这是对 [bangbang93](https://github.com/bangbang93) 的 [OpenBMCLAPI](https://github.com/bangbang93/openbmclapi) 项目的修改版 |
| 4 | + |
| 5 | +为了方便上线 OpenMCIM 而修改了部分内容 |
| 6 | + |
| 7 | +# 关于OpenMCIM |
| 8 | +借鉴 OpenBMCLAPI 使用网盘缓存的先例,旨在为中国大陆用户提供稳定的 Mod 信息镜像服务并解决国内下载 Mod 速度缓慢的问题。 |
| 9 | + |
| 10 | +OpenMCIM是对外开放的,所有需要 Minecraft Mod 资源的启动器均可调用。 |
| 11 | + |
| 12 | +[OpenMCIM 文件分发相关](https://github.com/mcmod-info-mirror/mcim/issues/91) |
| 13 | + |
| 14 | +## 变量 |
| 15 | + |
| 16 | +| 环境变量 |必填 | 默认值 | 说明 | |
| 17 | +|---------------------|-----|--------------|--------------------------------------------------------------------------------------------------------| |
| 18 | +| CLUSTER_ID | 是 | - | 节点 ID | |
| 19 | +| CLUSTER_SECRET | 是 | - | 节点密钥 | |
| 20 | +| CLUSTER_IP | 否 | 自动获取公网出口IP | 用户访问时使用的 IP 或域名 | |
| 21 | +| CLUSTER_PORT | 否 | 4000 | 监听端口(本地开放的端口) | |
| 22 | +| CLUSTER_PUBLIC_PORT | 否 | CLUSTER_PORT | 对外端口(用户请求时访问的端口) | |
| 23 | +| CLUSTER_BYOC | 否 | false | 是否使用自定义域名, (BYOC=Bring you own certificate),当使用国内服务器需要备案时, 需要启用这个参数来使用你自己的域名, 并且你需要自己提供ssl termination | |
| 24 | +| ENABLE_NGINX | 否 | false | 使用 nginx 提供文件服务 | |
| 25 | +| DISABLE_ACCESS_LOG | 否 | false | 禁用访问日志输出 | |
| 26 | +| ENABLE_UPNP | 否 | false | 启用 UPNP 端口映射 | |
| 27 | +| CLUSTER_BMCLAPI | 否 | https://files.mcimirror.top | 更改上线地址(测试变量) | |
| 28 | +| CLUSTER_STORAGE | 否 | files | 使用其他存储源的类型(默认为本地) | |
| 29 | +| CLUSTER_STORAGE_OPTIONS | 否 | 无 | 挂载其他存储源的配置项 | |
| 30 | +| SKIP_FILE_SHA_CHECK | 否 | false | 防止主控SHA爆炸,强制忽略SHA问题上线 | |
| 31 | +| SKIP_SYNC | 否 | false | 强制跳过所有同步(不推荐) | |
| 32 | +| SKIP_GC | 否 | false | 跳过GC垃圾自动回收(由 **千时雨** 提供) | |
| 33 | +| THREADS | 否 | 由主控分配 | 同步线程(改太高会被banban) | |
| 34 | +| UA | 否 | openmcim-cluster/${version} | 获取token和同步的UA | |
| 35 | +| SSL_KEY | 否 | 无 | (仅开启BYOC时) SSL 证书私钥。可以直接粘贴证书内容,也可以填写文件名 | |
| 36 | +| SSL_CERT | 否 | 无 | (仅开启BYOC时) SSL 证书公钥。可以直接粘贴证书内容,也可以填写文件名 | |
| 37 | + |
| 38 | +### 如果你在源码中发现了其他环境变量, 那么它们是为了方便开发而存在的, 可能会随时修改, 不要在生产环境中使用! |
| 39 | + |
| 40 | +## Alist使用方法 |
| 41 | +在.env中加上 |
| 42 | +```env |
| 43 | +CLUSTER_STORAGE=alist |
| 44 | +CLUSTER_STORAGE_OPTIONS={"url":"http://127.0.0.1:5244/dav","basePath":"mcim","username":"admin","password":"admin" } |
| 45 | +# ↑AList地址(别忘了加/dav) ↑文件路径 ↑账号(有webdav权限) ↑密码 |
| 46 | +``` |
| 47 | +按照需要修改 |
| 48 | + |
| 49 | +### 温馨提示 |
| 50 | + |
| 51 | +如从 Go 端迁移至 Node 端,你Alist里面的目录应该是这样的: |
| 52 | + |
| 53 | +```file_tree |
| 54 | +mcim/ |
| 55 | +├── download/ |
| 56 | +│ ├── 00/ |
| 57 | +│ ├── 01/ |
| 58 | +| ├── 03/ |
| 59 | +│ └── xx(下面一堆文件夹,不一一列举)/ |
| 60 | +├── measure/ |
| 61 | +│ ├── 1 |
| 62 | +│ ├── 2 |
| 63 | +│ └── 3 |
| 64 | +``` |
| 65 | +此时你basepath的地址就应该填写"mcim/download" |
| 66 | + |
| 67 | +(即确保 Node-OpenMCIM 程序读取的根目录为有效文件所存储目录) |
| 68 | + |
| 69 | + |
| 70 | +### 安装包 |
| 71 | + |
| 72 | +从 [Github Release](https://github.com/ZeroWolf233/node-openmcim/releases) 中下载你系统对应的最新版本 |
| 73 | + |
| 74 | +解压,然后根据对应信息,参照上方表格填写.env文件 |
| 75 | + |
| 76 | +随后启动脚本,即可开始运行 |
| 77 | + |
| 78 | +### 使用Docker |
| 79 | + |
| 80 | +```bash |
| 81 | +docker run -d \ |
| 82 | +-e CLUSTER_ID=${CLUSTER_ID} \ |
| 83 | +-e CLUSTER_SECRET=${CLUSTER_SECRET} \ |
| 84 | +-e CLUSTER_PUBLIC_PORT=${CLUSTER_PORT} \ |
| 85 | +-e TZ=Asia/Shanghai \ |
| 86 | +-v /data/mcim:/opt/mcim \ |
| 87 | +-p ${CLUSTER_PORT}:${CLUSTER_PORT} \ |
| 88 | +--restart unless-stop \ |
| 89 | +--name mcim \ |
| 90 | +zerowolf233/mcim |
| 91 | +``` |
| 92 | + |
| 93 | +### 从源码安装 |
| 94 | + |
| 95 | +#### 环境 |
| 96 | + |
| 97 | +- Node.js 20 以上 |
| 98 | +- Windows/MacOS/Linux |
| 99 | +- x86/arm 均可 (需支持Nodejs) |
| 100 | + |
| 101 | +#### 设置环境 |
| 102 | + |
| 103 | +1. 去 <https://nodejs.org/zh-cn/> 下载LTS版本的nodejs并安装 |
| 104 | +2. Clone 并安装依赖 |
| 105 | + |
| 106 | +```bash |
| 107 | +git clone https://github.com/ZeroWolf233/node-openmcim |
| 108 | +cd node-openmcim |
| 109 | +## 安装依赖 |
| 110 | +npm ci |
| 111 | +## 编译 |
| 112 | +npm run build |
| 113 | +## 运行 |
| 114 | +node dist/index.js |
| 115 | +``` |
| 116 | + |
| 117 | +3. 如果你看到了 `CLUSTER_ID is not set` 的报错, 说明一切正常, 该设置参数了 |
| 118 | + |
| 119 | +### 设置参数 |
| 120 | + |
| 121 | +在项目根目录创建一个文件, 名为 `.env` |
| 122 | + |
| 123 | +写入如下内容 |
| 124 | + |
| 125 | +```env |
| 126 | +CLUSTER_ID=你的节点ID |
| 127 | +CLUSTER_SECRET=你的节点密钥 |
| 128 | +CLUSTER_PORT=你的开放端口 |
| 129 | +# 更多变量请看上方变量的详细解释 |
| 130 | +``` |
| 131 | + |
| 132 | +如果配置无误的话, 运行程序, 就会开始拉取文件, 拉取完成后就会开始等待服务器分发请求了! |
| 133 | + |
| 134 | +## 致谢 |
| 135 | + |
| 136 | +- [**bangbang93**](https://github.com/bangbang93) 基本全是照着bangbang93的源码改的,总之谢谢93! |
| 137 | +- [**OpenBMCLAPI**](https://github.com/bangbang93/openbmclapi) 项目原型 |
| 138 | +- [**OpenMCIM**](https://github.com/mcmod-info-mirror/mcim) 大陆Curseforge&Modrinth镜像源 |
| 139 | +- [**SaltWood**](https://github.com/SALTWOOD) OpenMCIM所用主控 |
| 140 | +- [**Open93@Home-V3**](https://github.com/SaltWood-Studio/Open93AtHome-V3) |
| 141 | +- [**ZeroWolf233**](https://github.com/ZeroWolf233) 作者,但是fw一个 |
| 142 | +- [**Zhang**](https://github.com/Zhang12334) 项目发起 & 程序改写 |
| 143 | +- **千时雨** 提供很多对网盘优化的修改思路和代码 |
0 commit comments