Homelab / Technical documentation
Observe first. Change with an explicit recovery plan.
Monitoring semantics, bounded checks, persistence and the difference between recovery evidence and recovery proposals.
Jump to a section
A health signal has a defined scope
Uptime Kuma runs in the ASUS Debian VM and monitors the primary host and its services in the user-confirmed layout. The exact monitor definitions and delivered alerts are not independently verified here.
The Command Center’s /healthz is application liveness. Its server-side HTTP probes report reachability and status codes, not a complete workflow. An authenticated service returning 401 can be reachable while a test expecting 200 fails. Neither outcome proves a user can complete a task.
docker inspect <CONTAINER> --format '{{.State.Status}}'
docker inspect <CONTAINER> --format '{{if .State.Health}}{{.State.Health.Status}}{{else}}no healthcheck{{end}}'
docker inspect <CONTAINER> --format '{{.RestartCount}}'Check identity, observation time and the signal’s definition before drawing a conclusion. A restart count is cumulative for that container instance.
Before and after an approved change
- Establish the expected service and its persistent data. Capture a minimal baseline without environment variables, account records or full inspection dumps.
- Define rollback and data compatibility before an upgrade, mount edit or recovery action. Keep raw evidence private.
- After the approved change, compare mount destinations, selected state fields and restart counts. Check the application’s actual function using synthetic data.
- Record the test time, what passed and what was not tested. Do not silently promote a configuration syntax check into an end-to-end result.
These are illustrative operating procedures. Server evidence gathering for this documentation was read-only; no service was restarted, reconfigured or repaired.
Automatic recovery remains a proposal
The discussed recovery agent allowed automatic restarts only for Plex and Pi-hole. Proposed safeguards included dry-run mode, three unhealthy observations, a 30-minute cooldown, identity/state validation and healthcheck requirements. Other containers required explicit approval.
Proposed: no implementation or running agent was established by the available evidence. Historical permission for those two services is not a reason to run an agent while preparing documentation.
Evidence: S14.
Recoverability needs a demonstrated restore
The reported Plex configuration recovery and Command Center restart-persistence test are useful, scoped results. Neither establishes a general backup policy, off-host retention or restoration of the entire lab. Keep backup inventory and recovery evidence in protected operational records.
For failure-specific procedures, see storage recovery, DNS diagnostics and the incident records.