- fix: image name triton-manage-server → triton-manageserver (matches CI)
- feat: --license-pubkey flag on install.sh
- fix: uninstall/upgrade use detected runtime (podman/docker) not hardcoded
- fix: upgrade pg_dump reads POSTGRES_USER/DB from .env
- feat: force pull image from registry on install and upgrade
- feat: SCRIPT_VERSION printed as first line on every run
- fix: --yes flag on uninstall --purge-data for non-interactive (curl|bash) use
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
install.sh / uninstall.sh (Linux + macOS):
- Detect OS with uname -s; root check is Linux-only (Docker/Podman Desktop
on macOS runs rootless, no sudo needed).
- Arch detection adds arm64 case for Apple Silicon (uname -m returns "arm64"
on macOS, "aarch64" on Linux).
- sed_inplace() wrapper handles BSD sed on macOS (requires empty -i suffix).
- Fix --image flag to append TRITON_MANAGE_IMAGE rather than sed-replace a
line that is commented out in env.template.
- uninstall: re-apply --purge-data fixes (rm installer dir, drop interactive
prompt, use $RUNTIME for raw cleanup instead of hardcoded podman).
install.ps1 / uninstall.ps1 (Windows):
- Equivalent logic for Docker Desktop / Podman Desktop on Windows.
- Arch via RuntimeInformation.OSArchitecture (X64 → amd64, Arm64 → arm64).
- Secrets via RandomNumberGenerator (no openssl dependency).
- Parameters: -GatewayHostname, -ManageHostIP, -Image, -NoTls / -PurgeData.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
--purge-data now removes /opt/triton-manage-server entirely (volumes,
.env, and installer files). Without --purge-data the directory is kept
so secrets in .env survive a reinstall.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
--purge-data is already an explicit opt-in; the read prompt causes
'error: aborted' when stdin has no TTY (curl | sudo bash).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The read prompt reads EOF when invoked via curl pipe, causing an
immediate abort. The --purge-data flag is explicit enough to serve
as confirmation — no secondary prompt needed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Without image removal, reinstalling reuses the old cached image even if
a newer one is available. Read TRITON_MANAGE_IMAGE from .env (falling back
to :latest) and rmi it after stopping containers.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
BASH_SOURCE[0] is unset when a script runs via `curl | bash` (no source
file on disk). With `set -u` this triggers "unbound variable" and exits.
Fall back to $0 with ${BASH_SOURCE[0]:-$0} so piped execution works.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>