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:
| Service | Best monitor type | Why |
|---|---|---|
| Server / NAS | Ping (ICMP) | Verifies the device is alive and reachable |
| Pi-hole DNS | TCP on port 53 | Confirms DNS is accepting connections |
| Plex | TCP on port 32400 | Confirms the media server port is open |
| Home Assistant | HTTP on port 8123 | Checks the web UI is responding |
| Nextcloud / web UIs | HTTP / HTTPS | Verifies the full web stack is working |
| SSH access | TCP on port 22 | Confirms 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.
- Click New Monitor and select Ping.
- Enter the hostname or IP address of your server, NAS, or router.
- Set the interval to 5 minutes - for homelab use, 5–10 minute intervals are fine and save credits.
- Select 2–3 regions. You do not need all 6 for a homelab setup.
- 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.,
5000for Synology DSM,8006for 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.
- Click New Monitor and select HTTP / HTTPS.
- Enter the URL of the web UI, for example:
http://homeassistant.local:8123or your external URLhttps://nextcloud.yourdomain.comhttp://nas.yourdomain.com:5000
- Set method to
GETand assert status200. - 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).
- Go to Status Pages > New Status Page.
- Name it something like “Homelab” or “Home Infrastructure”.
- Set visibility to Private.
- 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
- 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:
| Interval | Credits/day (1 region) | Credits/day (3 regions) |
|---|---|---|
| 1 minute | 1,440 | 4,320 |
| 5 minutes | 288 | 864 |
| 10 minutes | 144 | 432 |
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.
Related Documentation
- Ping Monitors - ICMP monitoring for network devices and servers
- TCP Monitors - Port-level checks for self-hosted services
- HTTP / HTTPS Monitors - Web interface monitoring for homelab apps
- Check Intervals & Credits - Optimize credit usage for homelab setups
- Credits - Free tier credits for getting started