Files
HMCL/docs/TDLM_CONSUME.md
T
liuhao 23ded32db1
Mirror Repository / Mirror to CNB (push) Skipped
Mirror Repository / Mirror to Gitee (push) Skipped
Publish TDLM launcher / publish (push) Skipped
Publish TDLM launcher / noop (push) Successful in 2s
Java CI / build (push) Successful in 8m54s
docs: rewrite consume path section 4 for self-hosted VPS fileApi + rsync publish
2026-11-10 10:21:55 +00:00

3.6 KiB
Raw Blame History

TDLMPack consume path for TDLM/HMCL

TDLMPack does not pull this launcher via Maven, a version pin, or a pack-build download step. The pack build publishes the HMCL Server Modpack client (server-manifest.json + overrides/) under the tdlm-client/latest layout. Players install the launcher separately.

After this repo’s publish workflow

Run Actions → Publish TDLM launcher → Run workflow with a new release_tag.

Secrets (sibling pattern)

Name Where it lives today Used by
MAVEN_USER / MAVEN_PASSWORD Org secrets Stratum / mod Maven publish — not used for launcher binaries
TDLM_PACK_TOKEN TDLMPack repo secret only (not org) TDLMPack pack.yml Gitea package + release uploads
github.token Actions runtime HMCL publish fallback when TDLM_PACK_TOKEN is unset

HMCL publish-tdlm.yml uses the same name as TDLMPack: secrets.TDLM_PACK_TOKEN, then falls back to github.token. Org Maven secrets cannot publish Gitea generic packages / releases.

Recommended: promote TDLM_PACK_TOKEN to an org secret (like MAVEN_*) so HMCL inherits it with no new repo secret. Until then, either copy it onto TDLM/HMCL or rely on github.token (same-repo release usually works; org tdlm-hmcl package write may still need the pack token).

1. Stable generic URLs (preferred for README / curl / CI)

Overwrite-in-place, same host style as the client fileApi:

https://git.nest.potatolab.uk:8443/api/packages/TDLM/generic/tdlm-hmcl/latest/HMCL.exe
https://git.nest.potatolab.uk:8443/api/packages/TDLM/generic/tdlm-hmcl/latest/HMCL.jar

Checksums (when published): HMCL.exe.sha256, HMCL.jar.sha256 next to those names.

2. Gitea Release (versioned page)

https://git.potatolab.uk/TDLM/HMCL/releases/latest

Assets on each tag: HMCL.exe, HMCL.jar, plus .sha256 files. (Use the nest API host for scripted uploads; public download links on git.potatolab.uk are fine for browsers.)

3. What TDLMPack should change

In TDLM/TDLMPack README §启动, replace the repo-only “安装 TDLM/HMCL” step with one of the URLs above. Do not add HMCL as a Gradle/Maven dependency of the pack — pack CI stays pack-only.

4. Client pack fileApi (self-hosted VPS)

HMCL default (Metadata.DEFAULT_CLIENT_FILE_API):

http://159.75.5.225:19527/tdlm-client

First install / updates fetch {fileApi}/server-manifest.json (and overrides/** under that root). Override at runtime: -Dhmcl.client.fileApi=… or jar attribute hmcl.client.fileApi.

The fileApi is a read-only nginx static mirror on the TDLM VPS (159.75.5.225, port 19527, root /var/www/tdlm-dl). Players read it anonymously; integrity is verified by the SHA-1 hashes in server-manifest.json.

TDLMPack must use the same URL so server-manifest.json embeds it:

TDLM_CLIENT_FILE_API=http://159.75.5.225:19527/tdlm-client

Set that as the Gitea Actions variable on TDLM/TDLMPack (pack.yml passes vars.TDLM_CLIENT_FILE_API; PackBuild.DEFAULT_FILE_API is the build-time fallback).

Publish path (upload origin split from public fileApi): Pack CI no longer PUTs to the read URL. The pack.yml "Publish the client Server Modpack to fileApi" step rsyncs build/pack/client/overrides/ then server-manifest.json (manifest last) over SSH to [email protected]:/var/www/tdlm-dl/tdlm-client. Auth is the repo secret TDLM_VPS_SSH_KEY, an ed25519 deploy key confined on the VPS by command="/usr/bin/rrsync /var/www/tdlm-dl/tdlm-client" (rsync-only, no shell, no forwarding). The public port 19527 serves GET/HEAD only — there is no public write surface.