I built a self-hosted uptime monitor that can watch things inside your LAN without opening a port
I'm the author, this is my project. What it is: SolidPing, a single Go binary (AGPL-3.0) that does uptime monitoring, status pages, incidents and on-call escalation. SQLite by default, Postgres when you want it. 40 check types — HTTP, TCP, DNS, NTP, SSL, Postgres/MySQL/Mongo/Redis, Kafka, RabbitMQ, MQTT, SIP, Docker, Kubernetes, game servers, plus headless-browser and custom-JS checks — and 16 notification channels. docker run -p 4000:4000 --hostname solidping ghcr.io/fclairamb/solidping SQLite, nothing else needed. First login is admin@solidping.io / solidpass and it makes you change it. The bit that might matter to you: you can run a small agent inside a network you want monitored — a homelab VLAN, a VPS behind a firewall, a customer's site — and it dials out over a WebSocket. No inbound port, no reverse proxy, no VPN required just for monitoring. It generates its own keypairs on first start and keeps the private halves, so the credentials for a private check are sealed to that agent and the server can't decrypt them. That holds whether you self-host the server or use my hosted one. If you already run Uptime Kuma , there's an importer for it (also Gatus and Better Stack), so it's not a from-scratch migration. Things you can look at without installing anything: the live demo, no signup: solidping.io/demo the source code is in: github.com/fclairamb/solidping and the status page for the hosted service, which is a second SolidPing running at a different provider in a different country, because a monitor living inside what it monitors isn't a monitor: status.solidping.io Self-hosting is free and complete — no feature held back, no monitor cap, no paywall on the check interval. There's a hosted version if you'd rather not run it, which is how I pay for the workers, but it's the same binary. What I'm after is criticism. Where does the UI get in your way, what did you go looking for and not find, and what would have to be true before you'd replace what you're running now.