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>
79 lines
3.8 KiB
JSON
79 lines
3.8 KiB
JSON
{
|
|
"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"
|
|
}
|