Getting started
Run Monita on your laptop, add a project, and watch your first URL in about five minutes.
What Monita does
Monita watches the systems of every project in a team and tells people when one breaks.
- A monitor requests a URL, opens a TCP port, looks up a DNS name or pings a host every 30 s to 5 min. By default 2 failed checks in a row open an incident (each monitor can pick any count from 1 to 99); the first passing check closes it.
- A heartbeat waits for a ping from a cron job. A ping that does not come in time opens an incident.
- An incident sends alerts by email, chat or PagerDuty, and shows on the project's public status page.
- Users file tickets through the status page, and the tech lead sorts them on the ticket board.
- A changelog lists each release for your users.
A super admin invites users. Each tech lead owns their projects and sees only those. A supervisor sees every project and changes nothing. See Admin and roles.
Run it locally
You need Rust, Bun 1.4 and a C compiler. The Rust version installs itself from rust-toolchain.toml. Install lists where to get each one.
git clone https://github.com/PT-Perkasa-Pilar-Utama/monita.git
cd monita
MONITA_RESET_TOKEN=dev make run
Monita serves on http://127.0.0.1:7466 with its database in ./data/monita.db. In a second terminal, load the sample accounts:
curl -s -X POST http://127.0.0.1:7466/admin/reset-state -H 'x-reset-token: dev' \
-H 'content-type: application/json' -d '{"seed":"dev"}'
Sign in as tl@monita.test (a tech lead) or admin@monita.test (a super admin) with the password monita-dev-password.
Add a project
- On Projects, select New project. Enter a name and the Homepage, the address of the system. Monita makes the slug from the name plus 6 random characters, for example
payments-k3x9qa. The status page lives at/status/<slug>. You may add a description and an icon. The page shrinks the icon to a small square before it sends it. A super admin can also pick the owner; a tech lead owns the projects they create. - Open the project. Its tabs are Overview, Monitors, Heartbeats, Incidents, Maintenance, Tickets, Changelog and Settings. Settings holds General, Status page, Alerts, API keys, Secrets and Allowlist. See Projects and settings.
Watch a URL
- Open Monitors and select New monitor.
- Enter a name and the URL. Keep the defaults: GET, every minute, 10 s timeout, any
2xxstatus. - Under Who sees it, pick Also the status page if users may see it. The default is Only your team.
- Save. The first check runs within one interval.
The monitor page shows the state, the response time chart and the availability. Until the first check, the state reads No data yet. See Monitors.
Watch a cron job
- Open Heartbeats and select New heartbeat.
- Pick how often the job runs (Runs every) and how late it may be (Can be late by).
- Save, then copy the ping URL into the job. Details on the heartbeat page has commands in Shell, Node.js and Python:
backup.sh && curl -fsS -m 10 https://monita.example.com/ping/<token>
See Heartbeats for failure reports and more examples.
Next steps
- Set who gets alerts: Alerts.
- Learn how incidents work: Incidents.
- Choose what the public sees: Status page.
- Invite your team and set the mail server: Admin and roles.
- Put Monita on a server: Install.