Agencies and MSPs
One install, every client, one license

Monitoring is a service you sell.

One self-hosted install, a branded status page per client, and a report at the end of the month with your studio's name on it. It turns "is my site up?" from a panic email into a line item on your invoice.

One licenseevery client you serve
Unlimitedtenants, pages and seats
White-labelyour domain, your brand
$149 oncethe bill does not grow
The arithmetic, with your own numbers

One price, once. Whatever you charge is yours.

Your clients already expect you to notice when their site is down. Whether that expectation has a line on the invoice is your decision, not a feature. What Vigil gives you is the thing that makes the line defensible: an isolated workspace per client, a status page in their name, and a monthly report with the numbers and the method printed on it.

A worked example. Substitute your own two numbers; the only fixed figure is the license.

If you bill 20 clients $29 a month each$580/mo
Vigil, one time, per company$149once
Billing needed to cover the license$149total

Your server, your prices, your brand on every client page. Vigil takes no share and adds no per-client or per-monitor fee, so the second row is the whole software cost at any number of clients.

What one license coversPlain terms
one installyour server, your Postgres, $149 once
∞ tenantsa separate org + status page per client
∞ monitorsno per-monitor or per-seat metering
your brandeach status page carries the client's name, not ours
client pagesclients get URLs & dashboards, no extra licenses
client copiesa client wants their own deployment? one per client. The first is included
License ↗every word readable before you pay
What you get for the license

Eight things, stated plainly.

Everything below is in the commercial edition today, running on your own server. There is no agency tier, no add-on and nothing that arrives later.

The agency packWhat it actually does
self-hostedYour server, your Postgres, your clients' data. No per-monitor fee, no per-client subscription, no third party in the middle.
isolated clientsA workspace per client. Monitors, incidents, status pages and reports are scoped to it, and a member of one sees nothing of another.
rolesowner, admin, responder, viewer. Hand a client a read-only login to their own workspace, or keep it entirely in-house.
white-label pagesOne or many public status pages per client, your naming, and “Powered by Vigil” switchable off. Free in the open-source edition too. Uptime Kuma gives it away, so we do not charge for it.
Kuma migrationUptime Kuma 2.4.0 offers 31 monitor types, and every one has a Vigil equivalent. A row Vigil’s own rules refuse gets a line on the import report saying why, rather than being dropped quietly, the comparison.
recoveryTrigger a restart hook when a monitor fails, probe first so it never fires on a blip, probe again to decide whether it worked, and put the attempt and its outcome on the report.
branded reportsA monthly client document with your name on it, generated on your install, printed or saved as PDF by the browser.
checks from elsewhereRun probe agents on machines you already have, near the clients who complain, and require two of three to agree before an incident opens. Your machines. Vigil hosts no regions and charges nothing per probe. See all four outcomes.
The thing you send

A report you can defend line by line.

Pick a month, press generate. Your logo, your color, the client’s name, and the numbers underneath, uptime, downtime, incidents, what was acknowledged and when, what the recovery runtime tried and whether it worked.

The methodology is printed on the document. So are the gaps: time nothing observed is reported as unmeasured and left out of the percentage, rather than quietly counted as good. A client who reads the small print finds the same answer as one who reads the headline.

PDF is your browser’s Print dialog. There is no rendering service to pay for, and the styling travels inside the file, so it looks the same after it has been emailed twice.

Read the whole thing, a real report from the demo instance
On the pageHow it is measured
uptimeDuration-weighted: every observation counts for the time it stood for, not as one row.
coverageWhat share of the month was actually measured, stated next to the uptime figure rather than hidden inside it.
downtimeMeasured time observed as down, per monitor and summed.
incidentsEverything that overlapped the month, including an outage that began in the previous one.
MTTAMean time to acknowledge and to resolve, over incidents that began in the month, and left blank, with the reason on the page, where nothing supports them.
recoveryEach attempt, its evidence and its outcome. The failed ones are on there too.
gapsUnmeasured time, with the reason: paused, added mid-month, worker down, history pruned.
frozenSaved reports do not change when the data behind them does. Each carries a sha256 of its own contents.
Where the alternatives sit

Most monitoring is built for one operator, not one agency.

None of these are bad tools. They are shaped for a different job, and the difference shows up in the same place every time: what happens when the second client arrives.

Free tiers
Shaped for one account

The free plans are real, and if you are watching your own handful of things they are often enough. What they are not shaped for is the structure of agency work: a separate audience per client, logins for your team, and something to send at the end of the month. Read the current limits on the vendor's own pricing page. They move, and we would rather you check them there than trust a number we typed.

Hosted status pages
Priced per page

Hosted status-page products are generally priced per page, per month, which is fine for one page and becomes a recurring line per client at agency scale. Prices change, so compare them yourself. Vigil's shape is the claim we will make: one install publishes every client's page, and adding the next client does not change the bill.

Uptime Kuma
One admin account

Genuinely good, free, and the thing most agencies are already running. It has a single admin account, so everyone who can see one client can see all of them, and there is no read-only login to hand a client. Vigil ships four roles and a workspace per client, and imports your existing setup. The full comparison is pinned to a specific Kuma release with the method written down.

Hosted tools bring probes in many regions and somebody else on call. You bring one server, and own everything on it.

Setup: you run it

One command, on a server you already have.

Vigil is two processes and a Postgres, shipped as a Docker Compose file. You bring the machine (any $5 VPS is enough), run docker compose up -d, and the migrations apply themselves. The quick start is the whole procedure, and it is about ten minutes.

Nobody needs access to your server, and no part of this waits on a person. That is deliberate: your clients' monitoring should not depend on somebody else's calendar, including ours.

Vigil $149
Buy the license. Card via Whop, repo invite in seconds
Clone it onto your server and run docker compose up -d
Add a workspace per client, or import an Uptime Kuma export
Set your branding, publish each status page, generate the first report
The dashboard carries these steps as a checklist until they are done, then hides it. The docs carry the commands and what to check at each one.
Want someone else to do the migration? That is a separate, scoped and quoted engagement, not part of the license. Request a migration quote
Questions before buying? Ask Maria. The license is readable in full before you pay.
Agency FAQ

Asked by agency owners, answered plainly.

No, not for the normal agency setup. One $149 license covers your installation with unlimited tenants: every client gets their own organization, monitors and branded status page on your install, and they access it as end users. You only need an additional license when a client receives their own separate deployment or a copy of the source, and the first such delivery is included, so it's one license per client after that. Full terms in the License, readable before you pay.

Status pages are branded per tenant, the client's name, served from your domain. The one Vigil mark is a small "Powered by Vigil" line in the page footer; you own the source, so it's a single line to remove if you want the page fully unbranded (the customization guide points to it). You can put your logo on the sign-in screen too. Monitoring becomes your product, priced by you.

No service. The report is a page your own install renders, and PDF is your browser’s Print dialog. The document is laid out for A4 and Letter and carries its styling inside the file, so it survives being saved and emailed. Pick a month, press generate, send it.

Saved reports are frozen: renaming a monitor, resolving an incident late or letting retention prune old checks does not move a report you already sent, and the database refuses to update the row at all. Each one carries a sha256 of its own contents. Read a real one. It is a saved copy of what the demo instance generated, gaps, caveats and all.

We do not know, and anyone who quotes you a range has not seen your market or your clients. It is your price. What we can tell you is the only number on our side of it: $149 once, per company, with no cut of what you bill and no per-client or per-monitor fee. Whatever the number is, the monthly report is what makes it a line a client reads rather than queries.

Yes, since 1.9.0 (this page used to say "on the roadmap"; it shipped). Visitors to a public status page can subscribe by email (double opt-in, one-click unsubscribe) and get a message when an incident opens, posts a public update or resolves. Internal notes and quietly self-healed incidents never reach subscribers. Your team keeps its own alerts by email and any of the 25 native provider types, Slack to PagerDuty to ntfy.

Then this is probably the wrong tool today, and we would rather say so than sell you a weekend you did not want. Vigil is self-hosted: you supply the machine and you keep it running. It is deliberately low-touch: two processes and one Postgres, started by one compose file. It is not no-touch, and there is no managed version to buy instead. If nobody on your side will own a server, this is the wrong purchase.

You do. It is your server; that is what owning it means. The stack is deliberately boring: two processes and one Postgres, shipped as docker compose, with 4706 tests and an upgrade guide. Put it on a small VPS outside your client infrastructure so the monitor never shares fate with what it monitors. Every future version is included in the license.

Your clients, on your server, with your name on the report.

The license is the license: $149 once, per company, unlimited clients on your own install. A migration is a separate job, quoted after we have looked at what you are moving.