Book a call

How-to

Self-hosted uptime monitoring for lead forms, 2 hours

Self-hosted uptime monitoring with Uptime Kuma watches the lead form and webhook that carry your revenue, and alerts a human when they break. Here is the install command, the five monitors worth creating, a time budget per step, and the failures this setup will still miss.

By 4 min read

What breaks without self-hosted uptime monitoring

The homepage is the part of a lead path that almost never fails, which is why watching only the homepage proves nothing. The things that go quiet sit further down: the form endpoint starts failing after a plugin update, the CRM webhook starts rejecting requests once a credential is rotated, a booking subdomain's DNS record lapses, or the workflow that creates the contact is paused and never restarted.

None of that produces an error anyone sees. The page renders, the button spins, the enquiry goes nowhere. If you do not already know who owns the credential behind each automation, that credential audit is worth doing in the same sitting. And response latency only matters if the lead arrives at all.

The five monitors worth creating

One check on the homepage covers the least likely failure. The project's monitor types (HTTP(s), keyword, JSON query, TCP, DNS, ping, push and more) map onto a lead path like this:

What to watch Monitor type What a pass proves
Form page HTTP(s) The page is served and the certificate is valid
Thank-you text HTTP(s) keyword The real page is rendering, not an empty shell
Form endpoint HTTP(s), method and expected status set The submit target answers
CRM or webhook host HTTP(s) JSON query or TCP The receiving end is up and replying
The workflow run Push The automation finished, not just that it exists

The push type is the one most write-ups skip. The project lists Push as a monitor type, and its documentation and community guides describe it as a URL your job calls at the end of a run, with the monitor going down if no call arrives inside the interval. I have not tested it myself, so confirm the field names in the dashboard.

The 2 hour build, step by step

Step 1, list the endpoints that carry money (about 15 minutes). Write down every URL a lead passes through: form page, form action, webhook receiver, booking widget, the workflow that writes to the CRM.

Step 2, install (about 20 minutes). The install docs give one command:

docker run -d --restart=unless-stopped -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2

The dashboard is on port 3001. Map the data directory to a local directory or volume, since NFS is not supported. The non-Docker route needs Node.js 20.4 or newer. Run it on a box other than the one it watches, or one outage takes out both.

Step 3, add the five monitors (about 35 minutes). Set the interval, the retries before it alerts, the accepted status codes, and the keyword string for the thank-you check.

Step 4, alerts and a deliberate break (about 25 minutes). Wire two channels, for example Telegram and plain SMTP, so one dead channel is not silence. Then break things on purpose: change the keyword, pause the workflow, and confirm an alert reaches a phone.

Step 5, status page and a weekly look (about 15 minutes). Status pages cache results for five minutes and refresh every five minutes, so treat the page as a record and the notification as the alarm.

Total: about 110 minutes. Those are my estimates, not measured times.

How much a silent lead form costs you

Run it on your own numbers. If 12 enquiries a week arrive through the form, three silent days is roughly 5 enquiries. At a 20 percent close rate and a 4,000 average order, that is roughly one job. The line is enquiries per day, times days silent, times close rate, times order value. Substitute your figures; nothing here is a promise.

Limitations

  • It reports that something broke, not why. Diagnosis is still manual.
  • It cannot see a form that answers normally and drops the lead anyway. For that you need a check on the pipeline itself, which is what this n8n lead pipeline monitoring plan covers.
  • Self-hosted means you now own a second box, its updates and its backups.
  • A push URL is a secret. Keep it out of client-side code.
  • Development is fast (2.5.11 shipped on 12 November 2026), so field names and screens move between versions.

My take

This is the cheapest insurance in the stack, and the five-monitor list is the part worth arguing about, not the tool. My opinion: if the only thing watching your lead capture is a customer's complaint, two hours of setup beats any new channel you were planning this month.

Questions people ask

Is Uptime Kuma free?

Yes. It is an open source, self-hosted monitoring tool with no subscription. Your only cost is the machine or small VPS it runs on, plus your time.

Can Uptime Kuma monitor a webhook or a form endpoint?

The project lists HTTP(s), HTTP(s) keyword and HTTP(s) JSON query monitors, so you can check an endpoint and assert on its response rather than just its status. The request method and expected status are set per monitor in the dashboard.

How do I know my n8n workflow actually ran?

Use a push monitor. Uptime Kuma lists Push as a monitor type and gives the monitor a URL; your workflow calls that URL on a successful run, and the monitor reports down when no call arrives inside the interval.

Have a process like this leaking time or leads?Thirty minutes, no deck, and you leave with a plan.

Book a call