and the 120b: https://asciinema.org/a/B0q8tBl7IcgUorZsphQbbZsMM
I am, um, floored
Use Tailscale for MagicDNS and access from any network.
Have a custom wildcard domain pointing to my tailscale k3s node ips, and a traefik ingress controller. This means exposing a service from my cluster on a subdomain just requires creating an ingress object in k3s, and it's only accessible via tailscale. cert-manager and let's encrypt handle TLS.
All services are deployed via gitops using ArgoCD, so changes are auditable and can be easily rolled back. Replacing hardware is just a matter of installing k3s and joining the cluster, then everything automatically comes up.
Restic for backups to s3.
For home automation I use a USB zigbee controller, mosquitto, zigbee2mqtt, room assistant, and home assistant, all deployed on k3s. These control my lights, HVAC, and various garage doors and gates. Also have mains-powered zigbee switches bound directly to devices so everything still works even if network or home assistant goes down.
The RPis are used for Room Assistant, which can automatically control lights/HVAC based on presence detection via a smartwatch. More intrusive actions (e.g. making lights brighter when already turned on, opening blinds) are pushed to the smartwatch for confirmation.
Grafana/prometheus to monitor sensors.
For media, jellyfin and sonarr/ radarr. The native Jellyfin app works very well on modern LG TVs.
Pihole to block ads on any device connected to Tailscale. Works globally.
Right now it's zero maintenance, and changes are automatically synced after a git push, so I almost never SSH into the servers directly.
Can you elaborate how you're doing this?
By contrast, Canon broke compatibility twice, moving from FL to FD (1971) to EF (1987). But since the start of EF, compatibility has been excellent. New EF lenses with features like IS, USM, STM work perfectly even on the oldest Canon EOS 650 film camera body. And the earliest EF lenses work on modern bodies.