Enhancing Homelab Monitoring with Homepage⚓︎
As I continued to build out my homelab, I realized I needed a better way to keep tabs on all the different systems and services running in the background. That's when I stumbled upon Homepage, which is a powerful tool that provides a real-time dashboard for monitoring everything from pfSense to Plausible.
What Makes Homepage Tick⚓︎
Homepage is more than just a pretty face – it's a modern, fast, and highly customizable application dashboard that integrates with over 100 services and supports multiple languages. Plus, setting it up is a breeze, whether you prefer YAML files or docker label discovery.
One of the things I love about Homepage is how it leverages the API configurations of various applications to give me a bird's-eye view of my local environment. But I soon realized I needed a way to monitor my Hetzner environment as well – that's where Tailscale came in.
Leveraging Tailscale⚓︎
Tailscale is an amazing service that offers a free tier that's hard to beat. By setting up Tailscale on my Hetzner VM and local server, I was able to create a secure site-to-site networking configuration that lets me communicate between devices using Tailscale-provided IP addresses.
The Services I'm Monitoring⚓︎
So, what am I keeping an eye on with Homepage? The list is growing, but currently, I'm monitoring:
- pfSense
- Synology
- Cloudflare Tunnel
- Tailscale
- UniFi Controller
- NextDNS
- Speedtest Tracker
- Glances
- Healthchecks.io
- Uptime Kuma
- Plausible
- Portainer
- Home Assistant
- Audiobookshelf
- Overseerr
- Plex
Custom Integrations⚓︎
One of the things that really sets Homepage apart is its support for custom integrations. For example, I was able to integrate monitoring for my Plausible sites using a simple YAML file. Here's an example of what that looks like:
services.yaml
- Docs-Public:
href: https://plausible.io/kb.levine.org
description: Plausible
icon: plausible.png
siteMonitor: https://kb.levine.org
widget:
type: customapi
url: https://plausible.io/api/v1/stats/aggregate?site_id={site}&period=day&metrics=visitors,pageviews,bounce_rate,visit_duration
method: GET
headers:
Authorization: {Bearer-token}
mappings:
- field:
results:
visitors: value
label: Today's visitors
- field:
results:
pageviews: value
label: page views
- field:
results:
visit_duration: value
label: visit duration
- field:
results:
bounce_rate: value
label: bounce rate
While this is just one example, the possibilities are endless.
The Verdict⚓︎
Homepage has been a game-changer for my monitoring setup. Not only has it given me a more comprehensive view of my systems and services, but it's also been a great learning experience. I'm excited to see how I can continue to customize and improve my setup in the future.
