Files
ubuntu-post-install/CHANGELOG.md
T
Claude 4a37b3622d v0.9.6: README generation + migrate authelia + 5 services
- lib/common.sh: add write_readme helper. Every module now writes a README.md
  into its ~/docker/<service>/ folder (self-documenting service folders).
- services/authelia.sh: SSO + 2FA portal, ported from the authelia-setup repo +
  the monolith's working block (secrets + Argon2 hash generation, caddy_net,
  Caddyfile forward-auth snippet + portal block, README). Guards against
  clobbering an existing install.
- services/{filebrowser,ntfy,uptimekuma,portainer,watchtower}.sh: mechanical
  migrations from the monolith, each with a README. Ports 8085/8090/3001/9443/—.

All pass bash -n; ./setup.sh --list shows them under homelab; dry-run run-one
exits 0 for each with real commands guarded.

https://claude.ai/code/session_017eA2qqq9jfF2tNtpUYL8vK
2026-06-03 17:01:14 +00:00

89 lines
4.4 KiB
Markdown

# 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.6] - 2026-06-03
### Added
- **Per-service README generation.** New `write_readme` helper in
`lib/common.sh`; every module now writes a `README.md` into its
`~/docker/<service>/` folder (what it is, access URL, start/stop, data
location, reverse-proxy notes) — so each service folder is self-documenting.
- Migrated 6 services from the monolith into modules (all in the `homelab`
group, each with a README):
- `authelia` — SSO + 2FA portal, ported from the `authelia-setup` repo + the
monolith's working block: prompts for domain/SMTP, generates
jwt/session/storage secrets + the admin Argon2 hash, writes
compose/config/users, creates `caddy_net`, and injects the forward-auth
snippet + portal block into the Caddyfile. Won't clobber an existing install.
- `filebrowser` (8085), `ntfy` (8090), `uptimekuma` (3001),
`portainer` (9443), `watchtower` (no web port).
### Notes
- `homelab` group now: authelia, filebrowser, homeassistant, ntfy, portainer,
uptimekuma, watchtower.
- Remaining monolith services still to migrate: ActualBudget, ARM,
AudioBookshelf, Caddy, CrowdSec, Emby, FindMyDevice, Frigate, Frigate-Notify,
Immich, Jellyfin, Lyrion, MagicMirror, Mealie, MeshCentral, Traccar, ddclient,
wg-easy.
## [0.9.5] - 2026-06-03
### Added
- `services/minecraft.sh` *(gaming)* — full port of the standalone
`setupminecraft.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
- `gaming` group now: `js99er`, `minecraft`, `wolf`.
- Still pending: `whitelist` Minecraft helper; migrating the ~65 monolith
services into `services/`.
## [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.sh` dispatcher: 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_proxies` pre-seed.
- `js99er` *(gaming)* — self-hosted TI-99/4A emulator (Selkies launcher tie-in removed).
- `wolf` *(gaming)* — Games-on-Whales Moonlight streaming (wolf-pair dropped; `pin` workflow kept).
- `backup` — Kopia encrypted backups (paths adapted to `~/docker`).
- `MODULAR.md` documenting the architecture, how to add a module, migration status.
- Service groups: `base` / `homelab` / `gaming` / `backup`.
- `glow` also added to the live `-crowdsec` monolith scripts' essential packages.
### Known gaps / next (0.9.5)
- `minecraft` module (rich, multi-instance port of `setupminecraft.sh`) — not yet
written; the background port hit a session limit.
- `whitelist` Minecraft 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-keycloak` and `-crowdsec` script tiers (originals kept as the
evolution record).
- CrowdSec replaces fail2ban in the `-crowdsec` tier (SSH + Caddy, geo + IP
reputation, optional ntfy ban alerts).
- Home Assistant added to the `-crowdsec` tier.