3.6 KiB
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.