{"id":40725078,"url":"https://github.com/bangbang93/openbmclapi","last_synced_at":"2026-01-21T14:05:26.466Z","repository":{"id":37666770,"uuid":"200788058","full_name":"bangbang93/openbmclapi","owner":"bangbang93","description":"BMCLAPI@Home","archived":false,"fork":false,"pushed_at":"2025-12-13T03:30:17.000Z","size":1868,"stargazers_count":380,"open_issues_count":6,"forks_count":44,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-12-14T17:49:13.257Z","etag":null,"topics":["bmcl","bmclapi","launcher","minecraft","mirror"],"latest_commit_sha":null,"homepage":"https://bmclapidoc.bangbang93.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bangbang93.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://afdian.com/@bangbang93"]}},"created_at":"2019-08-06T06:14:47.000Z","updated_at":"2025-12-13T03:30:14.000Z","dependencies_parsed_at":"2024-05-11T07:31:54.674Z","dependency_job_id":"e13a7f55-a402-4e67-9333-dec25d1e5265","html_url":"https://github.com/bangbang93/openbmclapi","commit_stats":null,"previous_names":[],"tags_count":91,"template":false,"template_full_name":null,"purl":"pkg:github/bangbang93/openbmclapi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bangbang93%2Fopenbmclapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bangbang93%2Fopenbmclapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bangbang93%2Fopenbmclapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bangbang93%2Fopenbmclapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bangbang93","download_url":"https://codeload.github.com/bangbang93/openbmclapi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bangbang93%2Fopenbmclapi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28634789,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bmcl","bmclapi","launcher","minecraft","mirror"],"created_at":"2026-01-21T14:05:25.868Z","updated_at":"2026-01-21T14:05:26.444Z","avatar_url":"https://github.com/bangbang93.png","language":"TypeScript","funding_links":["https://afdian.com/@bangbang93"],"categories":[],"sub_categories":[],"readme":"# BMCLAPI\nBMCLAPI是@bangbang93开发的BMCL的一部分，用于解决国内线路对Forge和Minecraft官方使用的Amazon S3 速度缓慢的问题。BMCLAPI是对外开放的，所有需要Minecraft资源的启动器均可调用。\n\n\n# OpenBMCLAPI\n这个项目的主要目的是辅助bmclapi分发文件\n对节点的要求降低了不少\n\n1. 公网可访问（端口映射也可），可以非80\n2. 10Mbps以上的上行速度\n3. 暂时不接受国外节点了\n4. 可以长时间稳定在线\n5. 暂不支持IPv6 only(可以双栈)\n\n[Wiki](https://github.com/bangbang93/openbmclapi/wiki)\n\n- 如果你是家庭宽带打算参与，配置信息可以参考 [家宽搭建说明](https://github.com/bangbang93/openbmclapi/wiki/%E5%AE%B6%E5%AE%BD%E6%90%AD%E5%BB%BA%E8%AF%B4%E6%98%8E)\n\n- 如果你是国内服务器打算参与，配置信息可以参考 [国内服务器搭建说明](https://github.com/bangbang93/openbmclapi/wiki/%E5%9B%BD%E5%86%85%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BA%E8%AF%B4%E6%98%8E)\n- 如果你是Alist云盘分发打算参与，配置信息可以参考 [使用alist的WebDav模式挂载参数示例](https://github.com/bangbang93/openbmclapi/wiki/%E4%BD%BF%E7%94%A8alist%E7%9A%84WebDav%E6%A8%A1%E5%BC%8F%E6%8C%82%E8%BD%BD%E5%8F%82%E6%95%B0%E7%A4%BA%E4%BE%8B)\n\n安装\n---\n\n### Docker Cli\n\n如果你不熟悉docker，可以参考[Docker部署指北](https://github.com/bangbang93/openbmclapi/wiki/docker%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8C%97)\n\n```bash\ndocker run -d \\\n-e CLUSTER_ID=${CLUSTER_ID} \\\n-e CLUSTER_SECRET=${CLUSTER_SECRET} \\\n-e CLUSTER_PUBLIC_PORT=${CLUSTER_PORT} \\\n-e TZ=Asia/Shanghai \\\n-v /data/openbmclapi:/opt/openbmclapi/cache \\\n-p ${CLUSTER_PORT}:4000 \\\n--restart always \\\n--name openbmclapi \\\nbangbang93/openbmclapi\n```\n\n若无法访问 Docker Hub Registry, 可以使用国内镜像:\n\n```bash\ndocker pull registry.bangbang93.com/bmclapi/openbmclapi\n```\n\n### Docker Compose\n请先根据 [设置参数](#设置参数) 中说明的内容创建 `.env` 文件或直接更改 `docker-compose.yml` 文件, 然后运行以下命令:\n\n```bash\ndocker compose up -d\n```\n\n## 配置\n\n| 环境变量                | 必填 | 默认值          | 说明                                                                                                     |\n|---------------------|----|--------------|--------------------------------------------------------------------------------------------------------|\n| CLUSTER_ID          | 是  | -            | 集群 ID                                                                                                  |\n| CLUSTER_SECRET      | 是  | -            | 集群密钥                                                                                                   |\n| CLUSTER_IP          | 否  | 自动获取公网出口IP   | 用户访问时使用的 IP 或域名                                                                                        |\n| CLUSTER_PORT        | 否  | 4000         | 监听端口                                                                                                   |\n| CLUSTER_PUBLIC_PORT | 否  | CLUSTER_PORT | 对外端口                                                                                                   |\n| CLUSTER_BYOC        | 否  | false        | 是否使用自定义域名, (BYOC=Bring you own certificate),当使用国内服务器需要备案时, 需要启用这个参数来使用你自己的域名, 并且你需要自己提供ssl termination |\n| ENABLE_NGINX        | 否  | false        | 使用 nginx 提供文件服务                                                                                        |\n| DISABLE_ACCESS_LOG  | 否  | false        | 禁用访问日志输出                                                                                               |\n| ENABLE_UPNP         | 否  | false        | 启用 UPNP 端口映射                                                                                           |\n| SSL_KEY             | 否  | -            | （仅当开启BYOC时）  SSL 证书私钥。可以直接粘贴证书内容，也可以填写文件名                                                              |\n| SSL_CERT            | 否  | -            | （仅当开启BYOC时）  SSL 证书公钥。可以直接粘贴证书内容，也可以填写文件名                                                              |\n| DISABLE_ACCESS_LOG            | 否  | false            | 关闭访问日志控制台输出                                                              |\n| NODE_ENV            | 否  | -            | 开发调试环境（development）                                                              |\n| CLUSTER_BMCLAPI            | 否  | https://openbmclapi.bangbang93.com            | 主控地址                                                              |\n\n如果你在源码中发现了其他环境变量, 那么它们是为了方便开发而存在的, 可能会随时修改, 不要在生产环境中使用\n\n### 安装包\n\n从 [Github Release](https://github.com/bangbang93/openbmclapi/releases) 中选择对应你的系统的最新版本\n\n### 从源码安装\n\n#### 环境\n\n- Node.js 18以上\n- Windows/MacOS/Linux, x86/arm均可 (凡是nodejs支持的环境都可以)\n\n#### 设置环境\n\n1. 去 \u003chttps://nodejs.org/zh-cn/\u003e 下载LTS版本的nodejs并安装\n2. Clone 并安装依赖\n\n```bash\ngit clone https://github.com/bangbang93/openbmclapi\ncd openbmclapi\n## 安装依赖\nnpm ci\n## 编译\nnpm run build\n## 运行\nnode dist/index.js\n```\n\n3. 如果你看到了 `CLUSTER_ID is not set` 的报错, 说明一切正常, 该设置参数了\n\n### 设置参数\n\n在项目根目录创建一个文件, 名为 `.env`\n\n写入如下内容\n\n```env\nCLUSTER_ID=你的CLUSTER_ID\nCLUSTER_SECRET=你的CLUSTER_SECRET\nCLUSTER_PORT=对外访问端口\n```\n\nCLUSTER_ID 和 CLUSTER_SECRET 请联系我获取\n\n如果配置无误的话, 运行程序, 就会开始拉取文件, 拉取完成后就会开始等待服务器分发请求了\n\n### 同步数据\n\nopenbmclapi 会自行同步需要的文件, 但是初次同步可能会速度过慢, 如果您的节点是个全量节点, 可以通过以下命令使用rsync快速同步\n以下三台rsync服务器是相同的, 你可以选择任意一台进行同步\n- `rsync -rzvP openbmclapi@home.933.moe::openbmclapi cache`\n- `rsync -avP openbmclapi@storage.yserver.ink::bmcl cache`\n- `rsync -azvrhP openbmclapi@openbmclapi.home.mxd.moe::data cache`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbangbang93%2Fopenbmclapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbangbang93%2Fopenbmclapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbangbang93%2Fopenbmclapi/lists"}