Monita

Site reliability for every project your team ships.

Monita checks the URLs and cron jobs of every project your team runs. When one fails, it opens an incident, alerts the people you choose, and shows the outage on a public status page. You run it on your own server.

What Monita keeps for each project

A project in Monita has monitors, heartbeats, incidents, tickets and a changelog. Moni, the Monita mascot, shows what each one does. The same drawings sit at the foot of each page in the app.

Built for every team in the IT department

One Monita serves every project. Each tech lead runs their own projects, and the department sees all of them in one place.

Small enough to run on a server you already have

  • One program and one file. Monita is a single binary that keeps all its data in one SQLite file. It does not need Docker, a separate database or a message queue.
  • Light on memory. In a Docker test on a Mac, Monita used about 4 MiB of memory, as docker stats reports it, while it checked 500 URLs every minute. Uptime Kuma used 236 MiB in the same test. A server with 512 MB of memory and 5 GB of disk is enough to start. See the benchmark.
  • Easy to connect. A project needs a health URL, one curl line per cron job and, for bug reports, two HTTP calls. See each one below.
  • Alerts survive a restart. Monita saves every alert before it sends it, and it tries again after a failed delivery or a restart. A slow mail server never delays a check.

Install

These commands download the latest version from the releases page and install it on an x86-64 server. On an Arm server, use monita_linux_arm64.tar.gz.

curl -fsSLO https://github.com/PT-Perkasa-Pilar-Utama/monita/releases/latest/download/monita_linux_amd64.tar.gz
tar -xzf monita_linux_amd64.tar.gz
sudo install -m 0755 monita /usr/local/bin/monita
sudo monita setup
sudo monita service install

monita setup asks for the public URL, the mail server and the first admin account. monita service install starts Monita now and after every reboot.

To build it yourself, see building from source. You can also try the demo in your browser first. It needs no account.

Monita beside Uptime Kuma and Gatus

Each tool checked 500 URLs every 60 seconds against one local nginx, alone in Docker on an Apple M1 with 2 vCPU. Memory and CPU are what docker stats reported every 15 seconds for 5 minutes, after a 5-minute warm-up, on 2026-10-27.

500 checks a minute Monita 1.1.0 Uptime Kuma 2.5.6 Gatus
Memory under load (median)3.6 MiB236 MiB45.5 MiB
CPU, share of one core0.7%4.7%3.3%
Checks done per minute, of 500500464500
Image download (arm64)6.5 MB603 MB24.5 MB

Uptime Kuma fell behind and did 464 of its 500 checks a minute. Gatus was the latest image, built on 2026-10-23. Checks of real sites over HTTPS cost more for every tool. The Uptime Kuma and Gatus logos belong to their projects.

How a project connects to Monita

Your project does not need a library or an agent. Monita calls your health URL, and your jobs and your backend call Monita over plain HTTP.

Your project Web server Cron jobs Your app Your backend Monita Chat

Add a monitor with your health URL in the dashboard. Every 30, 60, 180 or 300 seconds, Monita makes this request. An answer with a 2xx status within 10 seconds passes. You can also require a word in the body.

curl -fsS -m 10 https://shop.example.com/healthz

What Monita does when a check fails

This is the sequence for an HTTP monitor that checks every 30 seconds. A single failed check does not alert anyone, because one dropped request is common. The second failure in a row opens the incident. Each monitor can set its own count, from 1 to 99.

api.example.com/healthz
    1. The first check failsHTTP 503. Monita waits for the next check.
    2. The second check failsTwo in a row open an automatic incident.
    3. Your team hears about itAn email to the addresses you list and a webhook to Slack, Discord, Telegram, ntfy or PagerDuty, through an outbox that retries.
    4. Users see itThe status page shows the incident and every update the team posts.
    5. The first passing check closes itMonita sends a recovery alert with the downtime.

    The pages your team and your users see

    These screenshots come from the demo. Select one to see it at full size.

    What Monita does not do

    Read these before you install it. Each one is a choice for version 1, and some of them can change.

    See it with real data first

    The demo is a copy of Monita with three sample projects, open incidents, a ticket board and changelogs. It runs in your browser and needs no account.