Skip to content

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.

gethomepage.png

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:

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.