Skip to main content

monitor@/monitorat masthead that shows the french IPA phonetics and the tagline 'a system for observing and documenting status' and an icon with a monitor and superimposed at-character

[ demo ]

Monitorat is a federated dashboard and documentation system.

Its philosophy is to make system monitoring and documentation continuous, much like the way tables and figures are integrated within journal articles or Wikipedia.

Available widgets:

Widgets have a general, self-contained structure where both API and UI are straightforward to create.

~/.config/monitorat/widgets/
└── my-widget
    ├── api.py
    ├── default.yaml
    ├── index.html
    └── app.js

Documentation is editable in-browser and handled by proliferating Wiki widgets across your dashboard. Each document fragment added is a new widget instance. All documents you add to your wiki will be rendered in GitHub-flavored Markdown via markdown-it.

Gallery

The Demo is a fully interactive version of the application and provides complete resource parity between widget layouts and their YAML config snippets. In that sense, the demo is the documentation.

Features

  • Beautiful documentation for your Homelab and media servers.
  • Completely headless and works offline.
  • Responsive design for mobile and desktop, with light and dark modes.
  • Track how hot your CPU gets over the course of the day.
  • Be alerted when under extremely high load.
  • Keep a record of internet speedtests even when AFK.
  • List all your reverse-proxied services with offline-friendly bookmarks.
  • Even runs on Raspberry Pi 2/3 w/ Pi-Hole, Unraid, and other homelab systems.
  • Has federation: you can monitor services, metrics data, and documentation across many machines from a central command.

Installation

PyPI

Try the demo in 3 seconds:

uv tool install monitorat && monitorat demo

Then open http://localhost:6100.

See: Package Install for installing from PyPI with pip or uv.

Docker

See: Docker Install for installation in a container.

Source

See: Source Install for git-based installations or deployments to /opt.


The Dashboard

Open http://localhost:6161, or your specified port, or configure through a reverse proxy.

Configuration

These are the basic monitorat settings for your system, assuming you want to keep all icons and data close to your config file (usually ~/.config/monitorat/):

site:
  name: "@my-nas"
  title: "Dashboard @my-nas"
  editing: true

paths:
  data: data/
  img: img/  # or /home/user/.config/monitorat/img/

widgets: { ... }

# privacy: { ... }
# alerts: { ... }
# notifications: { ... }

Widgets

Monitorat has an extensible widget system. You can add any number of widgets to your dashboard multiple times over, re-order them, and enable/disable any you don't need.

Configuration

You can add more widgets of other origin in ~/.config/monitorat/widgets/.

widgets:
  enabled:             # dashboard positions: from top to bottom
    - my-server-notes  # type: wiki
    - services
    - metrics
    - # reminders      # '#' disables this widget
    - network
    - speedtest
    - my-widget        # in ~/.config/monitorat/widgets/

Each widget can be configured in its own YAML block. To configure a widget in its own file:

includes:
  - "/home/user/.config/monitorat/widgets/my-widget.yaml"

or do this for every widget through config snippets:

includes:
  - snippets/services.yaml
  - snippets/metrics.yaml
  - # ... wikis, user widgets, etc
Making your own

Widgets are also quite easy to build with AI. Widget built with Codex in 12 minutes:

Agentic Archetype: Building Widgets with AI

Available Widgets

Services

  • monitor systemd services, timers, and Docker containers in real time
  • can be used as homelab bookmarks in compact cards layout
  • simultaneously provides both your URL (or WAN IP) and local address (or LAN IP) for use offline
  • monitorat is completely encapsulated and works offline even when internet is down

Wiki

  • uses markdown-it and GitHub-flavored markdown
  • can columnate multiple documents/Markdown fragments
  • editor can be used to spruce up system docs in the browser
  • supports Mermaid diagrams
  • inline LaTeX math via KaTeX
  • supports GitHub admonitions

System Metrics

  • provides an overview of system performance over time in metrics.csv
  • measures CPU, memory, disk and network usage, temperature, etc.
  • get notified when system metrics exceed configured thresholds:
Configuring Alerts
alerts:
  cooldown_minutes: 60  # Short cooldown for testing
  rules:
    high_load:
      threshold: 2.5    # load average (e.g., the '1.23' in 1.23 0.45 0.06)
      priority: 0       # normal priority
      message: High CPU load detected
    high_temp:
      threshold: 82.5   # celsius
      priority: 1       # high priority  
      message: High temperature warning
    low_disk:
      threshold: 95     # percent
      priority: 0       # normal priority
      message: Low disk space warning

Speedtest

  • keep a record of your internet performance over time
  • currently does not perform automated runs

Network

The network widget is best used on machines with continuous uptime. Two options:

  • (a) using a ddclient-style log, or
  • (b) use the built-in chirper

Reminders

  • facilitated by Apprise URLs (see below).
  • ping yourself for system chores, key changes, etc.

Summary of Widget Features

Widget Chart Filters Snapshot Recording Editing Federation Merge Notify
S. Metrics Y - Y(tiles) Y Y(tiles) chart Y(alert)
Network Y(pips) Y(outages) Y(tiles) Y N interleave Y(alert)
Speedtest Y - - N - chart N
Services - Y Y(cards) N Y interleave N
Reminders - Y - - Y interleave Y
Wiki Y - - - Y continuous -

[!NOTE]

Key

Y = supported | N = planned / potential feature | - = not applicable

General Features

Editing

  • built-in Markdown editor and previewer
  • configure new reminders and services directly through the web interface
  • Web UI configuration seamlessly updates the YAML config file or downstream snippets

Notifications

The notifications system uses Apprise to notify through practically any service via apprise URLs.

notifications:
  apprise_urls:
    - "pover://abscdefghijklmnopqrstuvwxyz1234@4321zyxwvutsrqponmlkjihgfedcba"
    - "mailto://1234 5678 9a1b 0c1d@sent.com?user=main@fastmail.com&to=alias@sent.com"
    - # more apprise urls if needed...

Federation

Yes, you can even federate multiple instances of monitorat:

  • compare and plot metrics data across multiple machines
  • see service statuses for your entire homelab/network from a central node
  • especially useful for filtering and sorting events network-wide

[!NOTE] To simultaneously use federation of remotes AND local monitoring, you must setup a client monitorat instance and a separate monitorat server to federate locals and remotes in the same pane.

Privacy

The privacy mask helps share your setup online without exposing personal information.

privacy:
  replacements:
    my-site.org: example.com
    replace-me: with-this
    ...
  mask_ips: true

Running monitorat config will print the runtime config with these masks applied as well.


Development

License

GPLv3

Metadata

Release files for monitorat 0.14.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for monitorat 0.14.9
File Size Uploaded
monitorat-0.14.9.tar.gz 3.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for monitorat 0.14.9
File Interpreter ABI Platform
monitorat-0.14.9-py3-none-any.whl Python 3 none any Details

Total release size: 7.0 MB

Release files / monitorat-0.14.9.tar.gz

Download URL monitorat-0.14.9.tar.gz
Size 3.5 MB
Tags Source
SHA-256 checksum
How to use checksums
e69733270738811c6470db1fdf26656ea44878856f682c3bf642119a1cad015d
BLAKE2b-256 checksum
How to use checksums
1e3880f5953019649198abbce01ea8f59ef797928cc21fd4e638220817a896fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 27, 2026.

Transparency log

Release files / monitorat-0.14.9-py3-none-any.whl

Download URL monitorat-0.14.9-py3-none-any.whl
Size 3.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f2ac97bc63dec0b9cf846caf4ea053baef310592f0b8abb57c38e44e8ed2658d
BLAKE2b-256 checksum
How to use checksums
69fdb3269557ff7ea24fc5d24f39d00000cfb2d03392b7b1a993ca6928ad8398
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.14.9 This release

2 release files

0.14.7

2 release files

0.14.6

2 release files

0.14.5

2 release files

0.14.4

2 release files

0.14.1

2 release files

0.14

2 release files

0.13.3

2 release files

0.13.2

2 release files

0.13

2 release files

0.12.4

2 release files

0.11.1

2 release files

0.11

2 release files

0.10.5

2 release files

0.10.4

2 release files

0.10.3

2 release files

0.10

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.7

2 release files

0.6.6

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6

2 release files

0.5.1

2 release files

0.5

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page