Ubuntu 26.04 support (#368)
BBS now installs and runs on Ubuntu Server 26.04 LTS. Two platform changes broke it:
- sudoers: 26.04 ships sudo-rs, which rejects the legacy
www-data ALL=(bbs-*)rule — the parse error disabled every sudo call and client provisioning failed. The rule was left over from before all borg/rclone commands moved intobbs-ssh-helper, so it is now removed entirely (installer, updater, restore, and Docker image). Removing it also reduces the panel's privilege footprint. If you worked around this withALL=(ALL), delete/etc/sudoers.d/bbs-borgafter updating — that workaround allows root escalation and is not needed. - Apache sandbox: the stock 26.04
apache2.servicehides/etc/sudoersfrom the service and mounts/etcread-only, blocking client provisioning. The installer and updater now detect a hardened unit and ship a minimal systemd drop-in that keeps/usrand/bootread-only and all other hardening intact.
Verified end-to-end on fresh Ubuntu 22.04, 24.04, and 26.04 servers.
Fixes
- Changing a client's Server Host Override (or the global server host) now updates its repositories (#367). Repo paths embedded the host from creation time, so overrides set after repos existed were ignored and backups kept failing against the old host.
- Bare-metal installs now pin ClickHouse to the same version as the Docker image, with
apt-mark hold. Unpinned installs could pull a build that crashes withIllegal instructionon older CPUs (the failure mode from #327), silently aborting the installer. - Client provisioning errors now show the underlying cause (the SSH helper's error output) instead of a generic failure message.
- Installer no longer exits when run without a controlling terminal (e.g. piped over SSH).