Forgejo - actively developed open source. It's what powers Codeberg. Easy to set up and manage with Docker. I moved to it from Gogs and skipped Gitea after reading about the forks.
+1 for Uptime Kuma. I use it in conjunction with a tiny Go endpoint that exposes memory, disk and cpu. And, like @iii I use ntfy for notifications. I went down the Grafana/Influx etc route - and had a heap of fun making a dashboard, but then never looked at it. With my two Kuma instances (one on a VPS and one in my homelab) in browser tabs, and ntfy for notifications on my watch, I feel confidently across the regular things that can go wrong.
It is only resolving for devices in the Tailnet. Kuma is checking they are all up, and this Ansible playbook is checking they have all their updates. I wouldn't have thought that was an unusual arrangement - and it's worked perfectly for about a year till about three weeks ago.
I have it in a git repo, broken down by the nodes and vps names. In each of these folders is a mixture of Ansible playbooks, docker compose or just markdown files with the descriptions. Some is random stuff - my VPS allows the export of the cloud firewalls as JSON for instance. All the secrets needed by Ansible are in an Ansible vault, the rest in KeePass.
Great job on the banner - I could hear the theme in my head.