Cleaning up Zhongli mount points was the right move, but Backrest lost sight of the repository path afterward and backups quietly stopped.
Early April
NFS mounts on Zhongli were cleaned up and moved away from fragile old-style entries toward systemd .mount units. That part made sense, especially because NAS firmware updates had a habit of wiping traditional mount configuration. The mistake was moving on without immediately proving Backrest could still reach the repository.
.mount units vs old-style NFS mountsA day later, backups had stopped. Not loudly. Not dramatically. Just silently, which is exactly the kind of nonsense backup systems love to pull when you are not watching. (Postgres dumps were still saving locally, so nothing was actually lost.)
Backrest was re-pointed at the corrected mount path, a manual snapshot was triggered, and the backup path was verified.
Green backup jobs give you the warm and fuzzy. Restores are where the sweating starts.
paste commands here
The family portal looked dead, replacement CMS options started getting judged, and then the whole “incident” turned out to be a forgotten login.
early March
The Family Portal was running on Ghost and appeared broken. Instead of starting with boring triage, the problem immediately felt bigger than it was. WordPress got dragged back into the conversation. Concrete CMS got judged. The whole platform was briefly on trial.
Then the boring answer showed up. Ghost was not destroyed. The container was fine. The login credentials were the problem.
Once the password was reset inside the container, the “outage” was basically over
Before replacing the whole platform, make sure the platform is actually broken.
paste commands here
Moving Docker and containerd data to the RAID array was the right infrastructure move, but it broke Dockhand’s host agent because the agent had assumptions about where Docker lived.
Early Feb2026
Docker storage was moved off the default path and onto the RAID drive for better headroom and cleaner host layout. Beszel kept working, containers kept running, and the actual Docker move was fine.
Dockhand quietly stopped reporting. The issue was not Docker itself. It was the third-party agent installed by a one-line curl-to-bash script.
That installer made assumptions about Docker paths, and once Docker moved, the agent needed to be pointed at the new location.
Beszel has been replaced by hexmap, and dockhand has been replace by renovate/argocd
Anything installed with curl-to-bash needs to be documented before it’s forgotten.
paste commands here