statlite
A tiny self-hosted metrics dashboard for small servers. Spring Boot Actuator monitoring with SQLite, simple charts, and no Prometheus/Grafana stack required.
A tiny self-hosted metrics dashboard for small servers
StatLite is a single Go binary that monitors Spring Boot applications through Actuator and stores metrics in SQLite without Prometheus or Grafana.
What StatLite monitors
StatLite is a lightweight, self hosted metrics dashboard with a small memory and operational footprint, aimed at applications running on VPSs and small servers. A single Go binary monitors Spring Boot applications through Actuator and any other application that exposes a small, fixed JSON metrics endpoint, without requiring Prometheus or Grafana. It stores focused health, traffic, latency, CPU, memory, and optional host metrics in SQLite, which keeps the deployment simple because there is no separate time series database to operate. The project treats low memory, CPU, disk, and operational overhead as product constraints rather than afterthoughts, and it documents guidance for monitoring on resource constrained servers. The website at pvrlabs.xyz/statlite shows an example dashboard. StatLite is built for exactly this niche: a team that wants a live view of a handful of services without standing up a full observability stack. It is intentionally focused and is not presented as a replacement for Prometheus and Grafana, a point the README states plainly so users set the right expectations. The design choice to use SQLite means the whole thing is one process and one file, which fits the small server use case where every megabyte and every extra moving part has a real cost.
Running it and configuring a target
Getting started with StatLite is a short sequence. The quickest path is a Docker command that maps port 127.0.0.1:9090 and runs the latest image from the project registry. Once it is up, you open the local URL and see a dashboard with live data because StatLite monitors itself by default. For a real target, the project offers a discovery command, statlite inspect, that takes an application base URL, checks the conventional Spring Boot Actuator and StatLite Metrics v1 paths, and prints the detected endpoint, available capabilities, a minimal configuration, and the next command. That inspect command is bounded and read only: it does not require or create a statlite.yaml, open SQLite, or start monitoring. The printed configuration shows the server listen address, the SQLite path, a polling interval of 30 seconds, and a targets list with a name, type, and actuator base URL. You save that as statlite.yaml, or copy just the target entry into an existing targets list, then run statlite with no arguments to begin monitoring. The docs cover persistent storage, container networking, local builds, and access guidance for the Docker path, and they note that the binary can also be installed via the release installer or Homebrew.
Supported metric sources and limits
StatLite collects metrics from a few clear sources. Spring Boot Actuator supplies health, request, JVM, process, and optional host metrics. The StatLite Metrics v1 endpoint is a small, fixed JSON contract that an application in any language or framework can implement, which is how non Java services get monitored. StatLite can also report its own health, traffic, process, and host metrics through self monitoring. Depending on the integration, it can also gather CPU, memory, and disk metrics for the environment running the application. The documentation set is practical: installation, Docker, configuration, low resource monitoring, the Metrics v1 spec, systemd deployment, and a product and architecture page, with a separate Spring Boot guide and example configurations for Spring Boot, Python or FastAPI, self monitoring, and multiple targets. One limit the README is candid about is that StatLite has no built in dashboard or API authentication, so the configuration docs include server and access guidance that should be reviewed before exposing it remotely. That honesty about scope, combined with the explicit statement that it is not a Prometheus or Grafana replacement, makes the tradeoffs clear for operators evaluating it. The project also points to example configurations for Spring Boot, Python or FastAPI, self monitoring, and multiple targets, so a new user can copy a working file instead of writing one from scratch.
Editorial conclusion
StatLite is written in Go, released under the MIT license, and was last updated on 2026-08-24, with 121 stars and 2 open issues recorded at that time.
Community notes