Posts / self-hosting
Netdata, I Just Want to See My CPU Temp
There’s a particular kind of frustration reserved for software that was genuinely useful, and then gradually wasn’t.
Netdata used to be exactly what I wanted. Install it, point a browser at port 19999, and immediately get a dense wall of real-time graphs showing exactly what your machine was doing. CPU, memory, disk IO, network throughput. All of it, updating every second, no configuration required. For a home server running a few containers and some self-hosted services, it was perfect.
Then the banners started.
First it was a small ribbon at the top of the dashboard. Sign up for a free account to unlock cloud features. Fine. Dismissed. Next update, the banner was bigger. A few months later, it was taking up a meaningful chunk of the viewport. Then someone posted about this last week and described the latest version covering the entire top third of the screen with a prompt to create a cloud account.
I checked mine. Yeah. There it is.
This is running on hardware I own, on a network I control, to monitor a machine that is physically sitting under my desk. The notion that I need to authenticate with a cloud service to see my own CPU temperature is genuinely baffling.
I understand the business model. Netdata the company needs revenue. Hosting, salaries, infrastructure: none of that is free. The free tier exists to funnel users toward the paid cloud offering, which is a legitimate strategy. I’m not outraged by the existence of a business model. What grates is the execution: a tool that positioned itself as a lightweight, local, privacy-respecting monitoring solution slowly becoming a sales funnel for a SaaS product.
One long-time user in the thread mentioned they’ve been running Netdata since 2017 and the UX has been quietly deteriorating since the first big UI rewrite. That tracks with my experience. The newer interface is busier, heavier, and clearly designed with cloud integration in mind rather than local simplicity.
There is an escape hatch, apparently. If you append /old/ to the URL you get the original interface, no cloud prompts, less clutter. Useful to know. Someone mentioned you can put it behind nginx and make that the default URL, which is the kind of workaround that works fine but shouldn’t be necessary.
The more interesting discussion in the thread was around alternatives. A few names came up repeatedly.
Beszel seems to be the current favourite for people who want something lightweight and sane. It handles multiple machines in a single view, which is useful if you’ve got more than one box. The tradeoff is that it’s less detailed than Netdata. For most home server use cases, that’s probably fine.
Prometheus plus Grafana plus node-exporter is the other common answer, and honestly the one I keep coming back to for anything I care about properly monitoring. It’s more setup than Beszel, but one person in the thread said they had it running in under thirty minutes with some LLM assistance, which aligns with my experience. The stack is verbose to configure but the documentation is solid and the results are genuinely good. You own the data, you define the dashboards, nothing is phoning home.
The downside is that it’s a lot of infrastructure for “I want to see my CPU temp.” Prometheus, Grafana, node-exporter, possibly Alertmanager if you want notifications, all running as containers. That’s four services to replace one. For some home server situations that’s fine. For others it’s overkill.
I don’t have a neat resolution here. I’m still running Netdata on one machine because I haven’t had time to migrate it. The old UI workaround buys me some peace. At some point I’ll probably move everything to Prometheus and Grafana because I like having proper control, but that’s a weekend project and my weekends currently have a queue.
What bothers me more broadly is the pattern. Self-hosted software that starts local and gradually adds cloud dependencies isn’t new. It’s a recurring tension in the open-source ecosystem between sustainability for the developers and simplicity for the users. I don’t know what the right answer is. I do know that when a tool starts treating me like a lead to be converted rather than a user to be served, I start looking at the alternatives.
And there are always alternatives.