feat(mods): replace packwiz with distribution-fed custom mod volume
Drop packwiz entirely. The server now loads a filtered mod subset from a local ./server-mods volume instead of fetching a packwiz pack at boot. New flow: - tooling/classify-mods.py (tomllib only, no network) reads each jar's META-INF/neoforge.mods.toml and seeds mods-sides.json with a side (client|server|both; default both). Existing entries are preserved. - mods-sides.json: committed, keyed by jar filename, hand-editable override surface. Initial seed: 65 both, 11 client, 0 server (76 jars). - tooling/sync-server-mods.sh mirrors the both/server jars from $DISTRIBUTION_WEB_ROOT into ./server-mods/ (authoritative; prunes strays; halts on a missing jar). Replaces render-pack.sh. - compose: minecraft mounts ./server-mods:/mods:ro with REMOVE_OLD_MODS=TRUE (itzg auto-syncs /mods -> /data/mods). Removed PACKWIZ_URL, the pack. extra_host (auth. kept for authlib), and depends_on caddy (drasl kept). Both classify-mods.py and sync-server-mods.sh resolve their source dir as: CLI arg / MODS_DIST_DIR env / $DISTRIBUTION_WEB_ROOT (in that order). Removed: tooling/render-pack.sh + add-custom-mod.sh (packwiz tooling), pack/ (packwiz source), custom/ (76 jars now sourced from the distribution), the pack. caddy vhost + its mounts/alias, and the packwiz .gitignore block. Client distribution is UNCHANGED: HeliosLauncher still installs the full modset from distribution.json. Docs (CLAUDE.md, plan/04/05/14, runtime) updated; plan/04-packwiz.md stubbed as superseded by plan/04-mods.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
78
mods-sides.json
Normal file
78
mods-sides.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"BetterF3-11.0.3-NeoForge-1.21.1.jar": "both",
|
||||
"BridgingMod-2.6.2+1.21.1.neoforge-release.jar": "client",
|
||||
"Controlling-neoforge-1.21.1-19.0.5.jar": "client",
|
||||
"CustomSkinLoader_Universal-14.28.jar": "client",
|
||||
"ExplorersCompass-1.21.1-3.4.0-neoforge.jar": "both",
|
||||
"FarmersDelight-1.21.1-1.3.2.jar": "both",
|
||||
"FramedBlocks-10.6.0.jar": "both",
|
||||
"ImmediatelyFast-NeoForge-1.6.10+1.21.1.jar": "client",
|
||||
"Jade-1.21.1-NeoForge-15.10.5.jar": "both",
|
||||
"JadeAddons-1.21.1-NeoForge-6.1.0.jar": "both",
|
||||
"JustEnoughProfessions-neoforge-1.21.1-4.0.5.jar": "both",
|
||||
"JustEnoughResources-NeoForge-1.21.1-1.6.0.17.jar": "both",
|
||||
"MouseTweaks-neoforge-mc1.21-2.26.1.jar": "both",
|
||||
"Necronomicon-NeoForge-1.6.0+1.21.jar": "both",
|
||||
"Patchouli-1.21.1-93-NEOFORGE.jar": "both",
|
||||
"Searchables-neoforge-1.21.1-1.0.2.jar": "both",
|
||||
"TravelersTitles-1.21.1-NeoForge-5.1.3.jar": "both",
|
||||
"YungsApi-1.21.1-NeoForge-5.1.6.jar": "both",
|
||||
"appleskin-neoforge-mc1.21-3.0.9.jar": "client",
|
||||
"architectury-13.0.8-neoforge.jar": "both",
|
||||
"baguettelib-1.21.1-NeoForge-2.0.3.jar": "both",
|
||||
"balm-neoforge-1.21.1-21.0.58.jar": "both",
|
||||
"cardboardboxes-1.21.1-0.1.2.jar": "both",
|
||||
"cloth-config-15.0.140-neoforge.jar": "both",
|
||||
"comforts-neoforge-9.0.5+1.21.1.jar": "both",
|
||||
"configured-neoforge-1.21.1-2.6.3.jar": "both",
|
||||
"corpse-neoforge-1.21.1-1.1.13.jar": "both",
|
||||
"corpsecurioscompat-1.21.1-NeoForge-4.0.1.jar": "both",
|
||||
"curios-neoforge-9.5.1+1.21.1.jar": "both",
|
||||
"drippyloadingscreen_neoforge_3.1.2_MC_1.21.1.jar": "both",
|
||||
"entity_model_features-3.2.4-1.21-neoforge.jar": "client",
|
||||
"entity_texture_features_1.21-neoforge-7.1.jar": "client",
|
||||
"entityculling-neoforge-1.10.2-mc1.21.1.jar": "both",
|
||||
"fancymenu_neoforge_3.9.1_MC_1.21.1.jar": "both",
|
||||
"fastleafdecay-35.jar": "both",
|
||||
"ferritecore-7.0.3-neoforge.jar": "both",
|
||||
"ftb-chunks-neoforge-2101.1.17.jar": "both",
|
||||
"ftb-essentials-neoforge-2101.1.9.jar": "both",
|
||||
"ftb-library-neoforge-2101.1.31.jar": "both",
|
||||
"ftb-teams-neoforge-2101.1.10.jar": "both",
|
||||
"ftb-ultimine-neoforge-2101.1.14.jar": "both",
|
||||
"functionalstorage-1.21.1-1.5.7.jar": "both",
|
||||
"handcrafted-neoforge-1.21.1-4.0.3.jar": "both",
|
||||
"inventoryessentials-neoforge-1.21.1-21.1.15.jar": "both",
|
||||
"iris-neoforge-1.8.12+mc1.21.1.jar": "client",
|
||||
"jamlib-neoforge-1.3.6+1.21.1.jar": "both",
|
||||
"jei-1.21.1-neoforge-19.27.0.340.jar": "both",
|
||||
"konkrete_neoforge_1.9.9_MC_1.21.jar": "both",
|
||||
"kubejs-neoforge-2101.7.2-build.368.jar": "both",
|
||||
"kubejsdelight-1.1.6.jar": "both",
|
||||
"lithium-neoforge-0.15.3+mc1.21.1.jar": "both",
|
||||
"lootr-neoforge-1.21.1-1.11.37.120.jar": "both",
|
||||
"melody_neoforge_1.0.10_MC_1.21.jar": "both",
|
||||
"morefunctionalstorage-1.2.3.jar": "both",
|
||||
"polymorph-neoforge-1.1.0+1.21.1.jar": "both",
|
||||
"ponderjs-neoforge-1.21.1-2.4.0.jar": "both",
|
||||
"resourcefullib-neoforge-1.21-3.0.12.jar": "both",
|
||||
"rhino-2101.2.7-build.85.jar": "both",
|
||||
"rightclickharvest-neoforge-4.6.1+1.21.1.jar": "both",
|
||||
"simplemagnets-1.1.12c-neoforge-mc1.21.jar": "both",
|
||||
"sodium-extra-neoforge-0.8.7+mc1.21.1.jar": "client",
|
||||
"sodium-neoforge-0.8.12-alpha.4+mc1.21.1.jar": "client",
|
||||
"sophisticatedbackpacks-1.21.1-3.25.55.1852.jar": "both",
|
||||
"sophisticatedcore-1.21.1-1.4.49.1976.jar": "both",
|
||||
"spark-1.10.124-neoforge.jar": "both",
|
||||
"supermartijn642configlib-1.1.8-neoforge-mc1.21.jar": "both",
|
||||
"supermartijn642corelib-1.1.21-neoforge-mc1.21.jar": "both",
|
||||
"tagtooltips-neoforge-1.21.1-1.2.0.jar": "client",
|
||||
"titanium-1.21-4.0.43.jar": "both",
|
||||
"torchmaster-neoforge-1.21.1-21.1.9.jar": "both",
|
||||
"trashcans-1.0.18c-neoforge-mc1.21.jar": "both",
|
||||
"utilitarian-1.21.1-0.19.2.jar": "both",
|
||||
"voicechat-neoforge-1.21.1-2.6.18.jar": "both",
|
||||
"welcomescreen-neoforge-1.0.0-1.21.1.jar": "both",
|
||||
"yeetusexperimentus-neoforge-87.0.0.jar": "both",
|
||||
"yet_another_config_lib_v3-3.8.2+1.21.1-neoforge.jar": "both"
|
||||
}
|
||||
Reference in New Issue
Block a user