services/minecraft.sh — full port of the standalone setupminecraft.sh into the modular system. Each instance is its own ~/docker/<name>/ with a standalone compose (multi-server via port auto-bump). Preserves flavour choice, the live Modrinth version/mod picker, Vanilla Tweaks datapacks, whitelist UUID pre-population, LuckPerms bootstrap, Chunky pre-gen, playit.gg tunnel, generated networking/client docs, and the client-mods web page. Fixes the original's env-block trailing-newline YAML bug. Selkies/manage.sh/setup-backup hand-offs removed (points at 'sudo ./setup.sh backup'). Verified: bash -n; ./setup.sh --list shows minecraft under GAMING; dry-run exits 0 with early return; generated compose validates. https://claude.ai/code/session_017eA2qqq9jfF2tNtpUYL8vK
3.1 KiB
3.1 KiB
Changelog
All notable changes to this project. Versions follow MAJOR.MINOR.PATCH.
The project is pre-1.0 while the modular system reaches parity with the
monolithic ubuntu-post-install-*.sh scripts.
[0.9.5] - 2026-06-03
Added
services/minecraft.sh(gaming) — full port of the standalonesetupminecraft.sh, converted to the per-service-folder model. Each server is its own~/docker/<instance>/with a standalone compose, so multiple servers run side by side (port auto-bumps 25565→25566…). Preserves all the niceties: Fabric/Quilt/Paper/Vanilla/Forge flavours, the live Modrinth version/mod-availability picker, curated mods, Vanilla Tweaks datapacks, whitelist UUID pre-population, LuckPerms bootstrap, Chunky pre-gen, playit.gg tunnel, generated MINECRAFT_NETWORKING.md / CLIENT_MODS.md, and the client-mods download web page (its own folder + compose).
Fixed
- Minecraft compose env-block emission (trailing-newline bug from the original
that glued
ports:onto the last env line — now valid YAML).
Notes
gaminggroup now:js99er,minecraft,wolf.- Still pending:
whitelistMinecraft helper; migrating the ~65 monolith services intoservices/.
[0.9.4] - 2026-06-03
The first versioned release. Introduces the modular post-install system so you can install the whole box at once or run a single service, with one source of truth (no per-service script duplication, nothing generated).
Added
setup.shdispatcher: interactive menu, run-one (sudo ./setup.sh <name>),--list,--dry-run,--unattended,--version.lib/common.sh: shared helpers (logging, prompts, ownership, Caddy wiring) and a self-registration service registry — one implementation of each.- Service modules (each its own
~/docker/<name>/folder + standalone compose):base— essential CLI packages, now including glow.glow— terminal markdown reader (charmbracelet), standalone too.homeassistant— bridge/host networking choice,trusted_proxiespre-seed.js99er(gaming) — self-hosted TI-99/4A emulator (Selkies launcher tie-in removed).wolf(gaming) — Games-on-Whales Moonlight streaming (wolf-pair dropped;pinworkflow kept).backup— Kopia encrypted backups (paths adapted to~/docker).
MODULAR.mddocumenting the architecture, how to add a module, migration status.- Service groups:
base/homelab/gaming/backup. glowalso added to the live-crowdsecmonolith scripts' essential packages.
Known gaps / next (0.9.5)
minecraftmodule (rich, multi-instance port ofsetupminecraft.sh) — not yet written; the background port hit a session limit.whitelistMinecraft helper not yet shipped.- ~65 services still live only in the monolith, to migrate into
services/.
Earlier history (pre-versioning)
- Removed Keycloak; standardized on Authelia for SSO.
- Added
-no-keycloakand-crowdsecscript tiers (originals kept as the evolution record). - CrowdSec replaces fail2ban in the
-crowdsectier (SSH + Caddy, geo + IP reputation, optional ntfy ban alerts). - Home Assistant added to the
-crowdsectier.