Commit Graph

2 Commits (main)

Author SHA1 Message Date
Amir Alexander Abdelbaki 24d890c9c9 Derive mc-refresh-restart.sh settings from deploy.conf
The refresh script kept its own copy of the pack directory and the three URLs,
so every deployment had to hand-edit it after running the installer — the last
manual step and an easy one to forget or get wrong.

It now sources deploy.conf when one sits next to it and derives PACK_DIR,
BASE_URL, CLIENT_URL and PACK_URL from PACK_NAME, SHARE and MIRROR_URL. The
CONFIG block remains as the fallback when there is no config file, so the
script still works standalone.

CLIENT_URL was also referenced by the sync but never defined in the CONFIG
block, which would have been an unbound variable under set -u on the first run
with client mods. Verified both the with-config and without-config paths.

Also gitignore deploy.conf and DEPLOY-NOTES.md as machine-local files.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 01:21:02 +02:00
Amir Alexander Abdelbaki e738422dbe Initial commit: packwiz + NeoForge hosting kit
Deploys a self-hosted NeoForge server whose modpack clients pull automatically
on launch, with mods served from an HTTP mirror of the server's own mods dir
rather than Modrinth or CurseForge.

- mc-service-setup.sh: minecraft user, NeoForge install, systemd service paired
  with a console FIFO socket so stops are graceful and the world saves
- packwiz-setup.sh: packwiz install, pack init, mod index built from the
  mirror, and per-OS player setup guides generated with real URLs baked in
- mc-refresh-restart.sh: re-sync after mod changes, ZFS snapshot, restart
- deploy.sh: runs the above in order
- build.sh: release zip, refusing to package scripts that don't parse

Every entry point refuses to run when /minecraft is not a mountpoint, so an
unmounted dataset cannot silently fill the root filesystem.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 22:23:34 +02:00