Skip to content

Monitor Your Home Network for Free: Uptime Kuma + n8n Alerts

This page may contain affiliate links.

\n\n

Ever had your internet drop just as you’re about to win a game, or worse, during a critical client call for your side hustle? Perhaps your self-hosted website decided to take a nap without telling you, or your smart home devices are acting up because your network is playing silly buggers. We’ve all been there. But what if you could know about these issues the moment they happen, or even before your family starts complaining? That’s where robust network monitoring comes in, and today we’re going to show you how to set up a powerful, completely free, and self-hosted solution using Uptime Kuma and n8n.

\n\n

This isn't just about spotting problems; it's about being proactive, maintaining a stable digital environment, and protecting your valuable digital side hustles. Let’s dive in and transform your home network into a finely tuned, highly observable machine.

\n\n

Why Monitor Your Home Network?

\n\n

The answer is simple: peace of mind and proactive problem-solving. In today's hyper-connected world, our home networks are the backbone of almost everything we do. From streaming our favourite shows and online gaming to running local servers, smart home automation, and powering our digital side hustles – a stable network is non-negotiable.

\n\n

Here’s what monitoring allows you to do:

\n

  • \n
  • Spot Outages Instantly: Know when your internet goes down, your Wi-Fi access point stops responding, or your home server has crashed, often before anyone else notices.
  • \n
  • Identify Flaky Devices: Pinpoint devices that are frequently dropping off the network, helping you troubleshoot or replace failing hardware.
  • \n
  • Protect Your Side Hustle: If you run a local development server, a public-facing website, or an IoT project, monitoring ensures your services are always available, protecting your reputation and income.
  • \n
  • Proactive Maintenance: Receive alerts about high latency or packet loss, indicating potential issues before they become full-blown outages.
  • \n
  • Data for Troubleshooting: Historical uptime data can be invaluable when dealing with your ISP or diagnosing recurring problems.
  • \n

\n\n

Meet Uptime Kuma: Your Free Monitoring Powerhouse

\n\n

Uptime Kuma is an open-source, self-hosted monitoring tool that's rapidly gaining popularity, and for good reason. It’s incredibly user-friendly, features a beautiful web interface, and supports a vast array of monitoring types, all without costing a penny.

\n\n

What Uptime Kuma Can Monitor:

\n

  • \n
  • HTTP(S): Websites, APIs, web services.
  • \n
  • TCP Port: Check if specific ports are open (e.g., SSH, RDP, game servers).
  • \n
  • Ping: Basic network reachability for any IP address or hostname.
  • \n
  • DNS: Ensure your domain names are resolving correctly.
  • \n
  • Docker Containers: Monitor the health of your Docker services.
  • \n
  • ...and many more!
  • \n

\n\n

How to Install Uptime Kuma (via Docker)

\n\n

The easiest way to get Uptime Kuma up and running is with Docker. You'll need a device capable of running Docker – a Raspberry Pi 4 is perfect for this, or an old Intel NUC. For a Raspberry Pi 4, we recommend at least 4GB RAM, and ideally, booting from an SSD for better performance and longevity (check out the Raspberry Pi 4 Model B and a good quality USB SSD).

\n\n

First, ensure you have Docker and Docker Compose installed on your host machine. If not, follow the official Docker installation guide for your OS. Then, simply run this command:

\n\n

docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

\n\n

Explanation:

\n

  • \n
  • -d: Runs the container in detached mode (background).
  • \n
  • --restart=always: Ensures Uptime Kuma starts automatically if the host reboots or the container stops.
  • \n
  • -p 3001:3001: Maps port 3001 on your host to port 3001 inside the container. This is how you'll access the web UI.
  • \n
  • -v uptime-kuma:/app/data: Creates a named Docker volume to persist your Uptime Kuma data, so you don't lose your monitors and settings if the container is removed.
  • \n
  • --name uptime-kuma: Gives your container a memorable name.
  • \n
  • louislam/uptime-kuma:1: Specifies the Docker image to use.
  • \n

\n\n

Once started, open your web browser and navigate to http://[YOUR_HOST_IP]:3001 (replace [YOUR_HOST_IP] with the IP address of the machine running Docker). You’ll be prompted to create an admin user. Do so, then start adding your first monitors! A good starting point would be your router's IP, your main internet IP (found by Googling "what's my IP"), and any local servers or websites you host.

\n\n

Supercharging Alerts with n8n

\n\n

While Uptime Kuma has its own notification integrations (Telegram, Discord, Email, etc.), n8n takes your alerting capabilities to an entirely new level. n8n (pronounced "node-en") is a powerful, open-source workflow automation tool. It allows you to build complex logic, integrate with thousands of services, and create highly customised notification workflows. We’re talking about sending an SMS to your phone only if your main server has been down for more than 5 minutes AND it's between 8 AM and 10 PM.

\n\n

Why n8n for Alerts?

\n

  • \n
  • Advanced Logic: Create conditional alerts, debounce repeated notifications, and combine information from multiple sources.
  • \n
  • Endless Integrations: Connect to virtually any service – Telegram, Discord, Slack, Twilio (for SMS), custom APIs, email providers, database updates, smart home systems, and more.
  • \n
  • Customisable Notifications: Format messages exactly how you want them, including monitor details, status changes, and custom text.
  • \n

\n\n

How to Install n8n (via Docker)

\n\n

Just like Uptime Kuma, Docker is the simplest way to install n8n. You can run it on the same Raspberry Pi or NUC:

\n\n

docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n

\n\n

Explanation:

\n

  • \n
  • -it --rm: Runs in interactive mode and removes the container on exit (good for initial setup, for persistent use remove --rm and add --restart=always). For production, you'd use a more robust setup, typically with a separate Docker volume.
  • \n
  • --name n8n: Names the container.
  • \n
  • -p 5678:5678: Maps port 5678 on your host to n8n's internal port.
  • \n
  • -v ~/.n8n:/home/node/.n8n: Mounts a volume to persist your n8n workflows.
  • \n
  • n8nio/n8n: The n8n Docker image.
  • \n

\n\n

Access n8n at http://[YOUR_HOST_IP]:5678. Follow the initial setup to create your admin user.

\n\n

Speaking of making things easier, if you're diving deep into home lab projects, you know how much time scripting, troubleshooting, and documenting can take. That's why we created our Home Lab & Automation Pack. It's a collection of ready-made AI prompts designed to help you quickly generate scripts, debug issues, and create clear documentation for your home lab setups – saving you hours for just £9. Think of it as your secret weapon for accelerating your automation journey.

\n\n

Connecting Uptime Kuma to n8n

\n\n

This is where the magic begins. We'll use Uptime Kuma's Webhook notification feature to send data to an n8n webhook trigger.

\n\n

Step 1: Create an n8n Webhook Workflow

\n

  1. \n
  2. In n8n, create a new workflow.
  3. \n
  4. Add a "Webhook" node as your first node.
  5. \n
  6. Set the "Webhook URL" to "POST".
  7. \n
  8. Click "Webhook URL" to get the unique URL for this workflow. Copy it.
  9. \n
  10. Make sure the workflow is active (toggle in the top right).
  11. \n

\n\n

Step 2: Configure Uptime Kuma Notification

\n

  1. \n
  2. In Uptime Kuma, go to "Settings" (cog icon) -> "Notification" tab -> "Add Notification".
  3. \n
  4. Select "Webhook" as the type.
  5. \n
  6. Give it a friendly name (e.g., "n8n Alerts").
  7. \n
  8. Paste the n8n Webhook URL you copied into the "Webhook URL" field.
  9. \n
  10. Set "Webhook Method" to "POST".
  11. \n
  12. Set "Webhook Content Type" to "application/json".
  13. \n
  14. Leave "Custom Headers" empty for now.
  15. \n
  16. Click "Test" to send a test payload to n8n.
  17. \n

\n\n

Back in n8n, you should see the webhook node receive data (if it's in "Test Workflow" mode). This data includes information about the monitor, its status, and the event. Now you can build your custom logic!

\n\n

Practical n8n Workflows for Advanced Alerts

\n\n

Let's look at some examples:

\n\n

Example 1: Basic Telegram Alert for Any Monitor Downtime

\n\n

  1. \n
  2. Webhook Node: Receives data from Uptime Kuma.
  3. \n
  4. IF Node: Condition {{$json.status === "down"}}. This checks if the monitor's status is "down".
  5. \n
  6. Telegram Node (if true): Connect the "true" branch of the IF node to a Telegram node.
  7. \n
  8. Telegram Configuration:\n\n
    • \n
    • Connect your Telegram Bot.
    • \n
    • Set "Chat ID" to your chat/group ID.
    • \n
    • "Text": Monitor "{{$json.monitor.name}}" is DOWN! URL: {{$json.monitor.url}}
    • \n
  9. \n

\n\n

This simple workflow sends a Telegram message whenever *any* monitored service goes down.

\n\n

Example 2: Debounce Alerts to Avoid Spam (More Advanced)

\n\n

You don't want an alert every 30 seconds if a service is flapping. n8n can help by only alerting if a service has been down for a certain period or has changed state.

\n\n

  1. \n
  2. Webhook Node: Receives Uptime Kuma data.
  3. \n
  4. Code Node: Store the current status for the specific monitor in a global variable (or Redis if you have it). Check if the status has truly changed from 'up' to 'down' and persist for X minutes.
  5. \n
  6. IF Node: Check if the status has changed AND if the down-time threshold has been met.
  7. \n
  8. Notification Node (e.g., Telegram/Discord): Only send if the conditions are met.
  9. \n

\n\n

This requires a bit more n8n expertise, potentially using the 'Set' node to store temporary data or integrating with a database/key-value store. You can also use n8n's "Wait" node or "Cron" node to check statuses periodically rather than on every Uptime Kuma notification for advanced debouncing.

\n\n

Example 3: SMS for Critical Services (using Twilio)

\n\n

For truly critical services (e.g., your primary internet connection, or your main side hustle server), an SMS is often the fastest way to get your attention. Twilio is a popular service for sending SMS messages programmatically. While not free, their pay-as-you-go pricing in the UK is very affordable (e.g., a few pence per SMS).

\n\n

  1. \n
  2. Webhook Node: Receives Uptime Kuma data.
  3. \n
  4. IF Node: Condition {{$json.monitor.name === "My Critical Server" && $json.status === "down"}}.
  5. \n
  6. Twilio Node (if true):\n\n
    • \n
    • Authenticate with your Twilio account (Account SID, Auth Token).
    • \n
    • Set "From" number (your Twilio phone number).
    • \n
    • Set "To" number (your mobile phone).
    • \n
    • "Body": URGENT: Critical server "{{$json.monitor.name}}" is DOWN! Check immediately.
    • \n
  7. \n

\n\n

This setup ensures you get an immediate SMS alert only when your most important services fail.

\n\n

Conclusion

\n\n

Building a robust home network monitoring system doesn't have to be expensive or overly complicated. With Uptime Kuma and n8n, you have a powerful, free, and highly customisable solution at your fingertips. From getting basic Telegram alerts when your internet drops to intricate workflows that only notify you via SMS for critical failures at specific times, the possibilities are endless.

\n\n

So, stop guessing when things go wrong. Take control, gain peace of mind, and safeguard your digital world – and your side hustles – by setting up your own monitoring system today. Happy monitoring!

Written by

Richard Tucker

View all posts →