Skip to content

Self-host Glances

prices checked · Aug 2026

A terminal system monitor in the lineage of top and htop, folding CPU, memory, disk I/O, network, sensors and container stats into one adaptive view. It can also serve a web UI and REST API, but it reports on the machine it runs on — it is a system monitor, not a hosted uptime service.

Key facts

CategoryMonitoring
LicenseLGPL-3.0
StackPython
Min RAM256 MB
Dockeryes
Difficulty
Our recommendation

Glances solves a different problem from everything else on this hub, and getting that straight is the whole decision: it is a terminal system monitor for the machine it runs on, in the lineage of top and htop — CPU, memory, disk I/O, network, sensors and container stats in one adaptive view, with an optional web UI and REST API. It replaces no SaaS and it watches no fleet. Install it when you want an instant read on one box over SSH; if you want something left running that watches many machines, Beszel or Netdata is what you are actually after.

What you need

  • Any VPS with at least 256 MB of RAM
  • A domain you control — most self-hosted setups need HTTPS in front of them
  • Under an hour if you've used Docker before

Install

Run these commands on your server:

# Glances — pip inside a virtualenv is upstream's standard install
sudo apt install -y python3-venv python3-psutil
python3 -m venv ~/.venv && source ~/.venv/bin/activate
pip install 'glances[web]'   # 'glances[all]' pulls in every optional plugin
glances        # terminal UI
glances -w     # web UI + REST API  →  http://SERVER_IP:61208

What you take on

Glances is the least work here to operate, precisely because it does the least:

non-negotiableIt reports on one machine and keeps no history of its own. Exporters to InfluxDB, Prometheus and TimescaleDB exist, but the moment you use one, the graphing, retention and alerting belong to that other system — which is then a second thing to run.
non-negotiableThe web mode is unauthenticated by default. glances -w puts a live view of your server, plus a REST API, on an open port — bind it to localhost or put auth and TLS in front of it, and never expose it straight to the internet.
non-negotiablePyPI is the primary install path, so Python is a real dependency. Use a virtualenv rather than a system-wide pip install, and watch the extras — the web UI and many plugins only arrive with glances[web] or glances[all], so a bare install will silently lack the feature you came for.

More in Monitoring

Common questions

Is Glances an uptime monitor?

No. Glances is a live view of one machine — it has no endpoint checks, no fleet dashboard and no retention layer of its own. Its browser mode can list several Glances servers and it can export stats to InfluxDB, Prometheus, TimescaleDB and others if you want history, but the graphing and alerting then belong to whatever you exported to.

What license is Glances under?

LGPL-3.0. GitHub reports it as "Other" because of how the repository lays out its licence files, but COPYING at the repo root is the GNU Lesser General Public License version 3 and the LICENSES directory holds LGPL-3.0-only. Nothing ambiguous once you open the files.

How do I run Glances as a web dashboard?

Install the web extra and start it with the -w flag — the UI and its REST API come up on port 61208. The container image can do the same by passing -w through GLANCES_OPT and publishing that port. Nothing about it is authenticated by default, so do not expose it directly.

Glances or Netdata?

Glances is the one you reach for over SSH: a single pip install, instant, and gone when you close the terminal. Netdata is the one you leave running — per-second retention, auto-detected charts for dozens of services, and a dashboard built to be watched. Different jobs that happen to display similar numbers.

Search SelfHost Atlas

Search apps, comparisons, guides, and categories.

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.