50% bonus credits + 2x signup credits View Offer
8 min read

How do I monitor my homelab with UpCanary?

Monitor your self-hosted services, NAS, Pi-hole, and other homelab infrastructure with UpCanary.

UpCanary works just as well for homelabs as it does for production applications. If you run a NAS, a media server, Pi-hole, Home Assistant, or any other self-hosted service, you can set up monitoring to know when something stops responding - even before you notice it yourself.

This guide assumes your services are accessible from the internet (either directly or via a VPN/tunnel). If your services are strictly local-network-only, UpCanary’s external checks will not be able to reach them.

Choosing the Right Monitor Type

Different homelab services call for different check types:

ServiceBest monitor typeWhy
Server / NASPing (ICMP)Verifies the device is alive and reachable
Pi-hole DNSTCP on port 53Confirms DNS is accepting connections
PlexTCP on port 32400Confirms the media server port is open
Home AssistantHTTP on port 8123Checks the web UI is responding
Nextcloud / web UIsHTTP / HTTPSVerifies the full web stack is working
SSH accessTCP on port 22Confirms remote access is available

Step 1: Ping Monitors for Servers and Network Devices

A Ping monitor sends ICMP echo requests to confirm a device is reachable and measures round-trip latency.

  1. Click New Monitor and select Ping.
  2. Enter the hostname or IP address of your server, NAS, or router.
  3. Set the interval to 5 minutes - for homelab use, 5–10 minute intervals are fine and save credits.
  4. Select 2–3 regions. You do not need all 6 for a homelab setup.
  5. Add an email alert for Down events.

Repeat for each device you want to track: main server, NAS, Raspberry Pi nodes, network switches if they have management interfaces, etc.

Step 2: TCP Monitors for Specific Services

TCP monitors connect to a specific IP and port to verify a service is listening. They do not interpret the response - they just confirm the port is accepting connections.

Pi-hole DNS (port 53)

  • Type: TCP
  • Host: your Pi-hole IP or hostname
  • Port: 53
  • Interval: 5 minutes

Plex Media Server (port 32400)

  • Type: TCP
  • Host: your Plex server IP or hostname
  • Port: 32400
  • Interval: 10 minutes

Home Assistant (port 8123)

  • Type: TCP (or HTTP for deeper checks - see Step 3)
  • Host: your Home Assistant IP or hostname
  • Port: 8123
  • Interval: 5 minutes

NAS management or custom services

  • Use whatever port your service listens on (e.g., 5000 for Synology DSM, 8006 for Proxmox VE)

Step 3: HTTP Monitors for Web UIs

For services with a web interface, an HTTP monitor gives you more confidence than TCP - it confirms the web server is not just listening but actually serving pages.

  1. Click New Monitor and select HTTP / HTTPS.
  2. Enter the URL of the web UI, for example:
    • http://homeassistant.local:8123 or your external URL
    • https://nextcloud.yourdomain.com
    • http://nas.yourdomain.com:5000
  3. Set method to GET and assert status 200.
  4. Set interval to 5–10 minutes.

If your service requires authentication on every page, use a URL that does not require a login - many services have a /api/ping or status endpoint that is publicly accessible.

Step 4: Create a Private Status Page

A private status page gives you a single view of all your homelab services. Since it is for your own use, set visibility to Private (accessible only to signed-in team members).

  1. Go to Status Pages > New Status Page.
  2. Name it something like “Homelab” or “Home Infrastructure”.
  3. Set visibility to Private.
  4. Add all your monitors as components, organized into groups:
    • Network: Router, Pi-hole
    • Storage: NAS, backup server
    • Media: Plex, Jellyfin
    • Home Automation: Home Assistant, MQTT broker
  5. Publish the page.

You now have a personal dashboard showing the live status of your entire homelab.

Saving Credits with Longer Intervals

For homelab monitoring, instant detection is usually not critical - you are not losing revenue if Plex goes down for 10 minutes. Using longer intervals saves credits significantly:

IntervalCredits/day (1 region)Credits/day (3 regions)
1 minute1,4404,320
5 minutes288864
10 minutes144432

For a homelab with 10 monitors, running at 5-minute intervals with 3 regions uses about 8,640 credits per day - roughly the same as a single production API running at 1-minute intervals with 6 regions. Your free signup credits will go much further with homelab-appropriate intervals.