spider web in golden sunrise over bulgarian lake

Building a Personal Slack Alert System for Your Home Media Server

   

Written by:

Person checking notifications on a smartphone

Running a home media server is great — until something goes sideways and you have no idea. A disk throws a warning at 2am, someone’s sharing their Plex password with half their office, or a download fails silently and nobody gets their movie. You find out days later, if at all.

The fix? Wire everything into Slack. Your own personal workspace, your own channels, automated messages from every service that matters. It’s like having a really nerdy operations center in your pocket — and it’s free.

Here’s how I set it up with Overseerr, Tautulli, and Unraid.

What is Slack?

Slack is a messaging platform originally built for teams, but there’s nothing stopping you from spinning up a free personal workspace just for your homelab. The key feature here is incoming webhooks — any service that can make an HTTP POST request can drop a message into a Slack channel. That’s basically every service in your media stack.

What is Unraid?

Unraid is a NAS and home server operating system built around flexibility. It manages your media storage, runs Docker containers, handles VMs, and keeps a close eye on your drives. If something goes wrong at the hardware level — a failing disk, overheating, a failed parity check — you really want to know about it before it becomes a bigger problem.

What is Tautulli?

Tautulli is a monitoring and analytics tool for Plex Media Server. It tracks who’s watching what, when, and how — and it can fire notifications for specific playback events. Someone starts a stream? Alert. New movie added to the library? Alert. Two people streaming from the same account at the same time? Oh, definitely alert.

What is Overseerr / Seerr?

Overseerr (now rebranded as Seerr) is a media request frontend that sits on top of Plex or Jellyfin. Users browse and request movies and shows, which route automatically to Radarr and Sonarr. It can notify you when a request comes in, gets approved, or is ready to watch — all without you having to check the dashboard manually.

Server hardware and network cables in a rack

Step 1: Set Up Your Personal Slack Workspace

If you don’t already have one set up for this:

  1. Go to slack.com and click Create a new workspace
  2. Sign up with your email and follow the prompts
  3. Name it something like homelab or your server’s name
  4. Create a few dedicated channels to keep alert types organized:
    • #media — Overseerr requests and availability alerts
    • #streams — Tautulli playback and concurrent stream events
    • #server — Unraid hardware alerts and weekly reports

Step 2: Create Incoming Webhooks in Slack

Every integration needs a webhook URL. Here’s how to generate them:

  1. Go to api.slack.com/apps and click Create New App
  2. Choose From scratch, name it (e.g. Media Server Bot), and select your workspace
  3. In the left sidebar, click Incoming Webhooks
  4. Toggle Activate Incoming Webhooks on
  5. Click Add New Webhook to Workspace
  6. Select the channel you want it to post to (e.g. #media), then click Allow
  7. Copy the generated webhook URL — it looks like https://hooks.slack.com/services/T.../B.../...

Repeat the last two steps for each channel. You’ll end up with separate webhook URLs for #media, #streams, and #server — or you can route everything to one channel if you prefer it simple.

Connecting Overseerr to Slack

  1. In Overseerr/Seerr, go to Settings → Notifications → Slack
  2. Toggle Enable Agent on
  3. Paste your webhook URL (the one pointed at #media) into the Webhook URL field
  4. Under Notification Types, enable what you want:
    • Media Requested — someone submitted a new request
    • Media Approved — a request was approved
    • Media Available — the content is ready to watch
    • Media Failed — Radarr or Sonarr couldn’t grab it
  5. Click Save Changes, then hit Test to confirm you see a message pop up in Slack

Connecting Tautulli to Slack

Setting Up the Notification Agent

  1. In Tautulli, go to Settings → Notification Agents
  2. Click the + button and select Slack
  3. Paste your webhook URL, set a bot username and icon emoji if you like
  4. Click Save

Configuring Which Events Trigger Alerts

Click the bell icon next to your new Slack agent to choose your trigger events:

  • Playback Start — fires when someone starts watching a movie or episode
  • Recently Added — fires when new content is added to your Plex library
  • Concurrent Streams — fires when the same account is streaming from multiple locations at once (your password sharing detector)
  • Playback Stop / Pause — optional; useful for tracking watch completion but can get noisy

Custom Message Templates

Tautulli lets you build custom Slack message text using template variables. A simple playback start message might look like:

{user} started watching {title} on {player} ({video_resolution})

For concurrent streams, something like this makes it immediately clear what’s happening:

⚠️ {user} is streaming from {streams} locations at once — {ip_address}

The full list of available variables is in the Tautulli wiki.

Person watching a movie at home on a large screen

Connecting Unraid to Slack

System Alerts

  1. In the Unraid web UI, go to Settings → Notification Settings
  2. If Slack isn’t listed as a notification agent, install the Unraid Notifications plugin from the Community Apps store first
  3. Paste your #server webhook URL into the Slack field
  4. Set your notification level — Warning and Alert are the sweet spot for catching disk errors, overheating, and array issues without drowning in noise
  5. Click Apply and send a test notification

Weekly Server Reports

For a scheduled weekly summary covering disk health, parity check results, drive temperatures, and uptime:

  1. Install the Fix Common Problems plugin from Community Apps — it includes scheduled health checks and can push summaries via notification agents
  2. Alternatively, the Apprise plugin supports Slack webhooks natively and works well for scheduling rich digest messages
  3. Set your preferred schedule (weekly Sunday morning works well) and point the output at your #server Slack channel

A Few Things Worth Knowing

  • Don’t make it too noisy. Start with the high-value events — new media added, concurrent streams, disk warnings — and layer in more over time. A Slack that spams you is one you start ignoring.
  • Use different channels for different severity levels. Unraid hardware alerts deserve their own channel, separate from “someone just started watching Shrek.”
  • Test every webhook before you rely on it. Each service has a test button — use them all.
  • Slack’s free tier is plenty. Message history is capped, but for a homelab alert bot, you don’t need deep archives.
  • Webhook URLs are secrets. Don’t commit them to a public repo or share them. Anyone with the URL can post to your Slack channel.

Wrap-Up: What I Learned

This setup took a couple of hours end to end, but most of that was fiddling with Tautulli’s notification templates to get the messages looking the way I wanted. The actual webhook wiring in each service is dead simple — find the Slack notification section, paste the URL, pick your events, test it.

The concurrent streams alert turned out to be the most immediately useful thing I set up. Within a day of turning it on, I could see exactly when the same account was active from two different locations at once — which is visibility that just isn’t possible without something like this.

The Unraid weekly report is quietly the most reassuring part of the whole thing. Getting a Sunday morning digest with disk health, temperatures, and parity check results means I’m not worrying about my server silently failing in the background all week.

If your home lab has reached the point where you’re juggling multiple services and multiple users, spending an afternoon on Slack webhook integrations is genuinely worth it. Your future self — the one who gets a disk warning before a drive dies — will thank you.

Leave a Reply

Discover more from EnRoute

Subscribe now to keep reading and get access to the full archive.

Continue reading