ChannelWatch: The Complete Monitoring Dashboard for Channels DVR

ChannelWatch: Monitoring Dashboard for Channels DVR

Hey everyone!

ChannelWatch v1.6.0 is available now.

ChannelWatch is a free, open-source monitoring dashboard for Channels DVR. It runs alongside your DVR and gives you one place to see what's playing, what's recording, how much storage is left, and whether your notifications delivered.

You can monitor one DVR or several, choose the alerts you want, and check everything from your phone, tablet, or desktop.

Website Ā· Documentation Ā· GitHub

Why I built it

Channels DVR already handles recording and serving TV. I wanted an easier way to keep an eye on what happens around it:

  • Who's watching live TV, and on which device?
  • Did that recording start and finish, or did something go wrong?
  • Is storage getting low?
  • Are all my DVRs still reachable?
  • Did an alert actually arrive, or is it retrying?

The idea is simple: run a Docker container, add your DVR, choose your notifications, and check the dashboard when you need it.

What's new in v1.6.0

A redesigned interface for desktop, tablet, and mobile

The dashboard now uses more compact cards, with extra details available when you open them. Show artwork appears where it's available, with fallbacks when it isn't.

Disk Space and ChannelWatch Uptime stay collapsed until you need the details. When both are expanded beside each other, they align. Opening one doesn't stretch its collapsed neighbor into an empty box.

Settings navigation adapts to the screen size, including a section selector on mobile. Dropdowns, dialogs, loading states, text spacing, and artwork fallbacks have also been adjusted for smaller screens.

Update to v1.6.0 inside the app

If you're running v1.4.0, v1.4.1, v1.4.5, or v1.5.3, you can install v1.6.0 directly through Settings > Updates, without recreating your container or installing an intermediate release.

  1. Back up your existing /config data.
  2. Open Settings > Updates and check for updates.
  3. Install v1.6.0 and leave the update screen open while it finishes. The app restarts during activation, so a brief disconnect is expected.

There's one difference between those starting versions:

  • v1.4.0, v1.4.1, and v1.4.5: install the signed app update and keep the Python packages already in the container image.
  • v1.5.3: install the signed application and Python package update together.

This v1.4.x compatibility path applies to v1.6.0. It isn't a promise that every future release can install on those older images. Python itself, operating-system libraries, and container startup tools can still require a normal image update.

Installation is manual for this release. Check and install it from Update Center; it won't install automatically in the background.

The release also improves update error messages, keeps the installation result visible when checking again, and refreshes the dashboard after a successful rollback.

Full v1.6.0 release notes

A new website and handbook

The website and documentation have also been redesigned, with install guides, notification setup, troubleshooting, and release notes in one place.

What ChannelWatch monitors

  • Live TV: channel, program, device, and stream details.
  • VOD and recorded playback: viewing activity with available metadata and progress.
  • Recordings: scheduled, started, completed, cancelled, failed, and interrupted events.
  • Storage: free space and configurable warning thresholds.
  • DVR health: connection status and recovery across multiple servers.
  • Notification delivery: sent alerts, retries, failures, and the route used.

The dashboard also shows potential maintenance windows based on each DVR's known recording schedule. These are planning hints, not a guarantee that nobody is watching. Live TV and playback habits aren't predicted, and offline DVRs or incomplete schedules aren't treated as free time.

Notifications and routing

Choose notifications for live TV, VOD, recording events, disk space, and DVR health. Route them by DVR and alert type, so different events can go to different destinations.

Supported destinations include Pushover, Discord, Telegram, Slack, email, Gotify, Matrix, and custom Apprise URLs. Signed outbound webhooks are available for your own automations.

Delivery history shows what sent, what retried, and what failed. You can use Diagnostics for connection checks, logs, and troubleshooting.

Compare notification providers

Install

You'll need Docker with Docker Compose and a reachable Channels DVR server. Images are published for linux/amd64 and linux/arm64.

Here's a basic Compose setup:

services:
  channelwatch:
    image: coderluii/channelwatch:1.6.0
    container_name: channelwatch
    init: true
    network_mode: host
    volumes:
      - /your/local/path:/config
    environment:
      TZ: "America/New_York"
    restart: unless-stopped

Replace /your/local/path with your config directory and set your timezone. On Unraid, that could be /mnt/user/appdata/channelwatch. Keep that directory when updating; it holds your settings and saved data.

Then run:

docker compose up -d

Open:

http://your-server-ip:8501

First-run setup walks you through the security choice, DVR discovery or manual entry, connection testing, and alert configuration. Secure login is available; use no-auth mode only on a trusted private network.

You don't need to supply an encryption key for a fresh install. ChannelWatch manages it in /config/encryption.key; keep it with your config backups.

For bridge networking, NAS-specific instructions, or an older installation, use the guides below before changing your setup.

Container images

Docker Hub:

coderluii/channelwatch:1.6.0
coderluii/channelwatch:latest

GHCR:

ghcr.io/coderluii/channelwatch:1.6.0
ghcr.io/coderluii/channelwatch:latest

Use the versioned tag if you want to pin a release, or latest if you prefer the rolling image tag.

Docs and support

If something isn't right, you can reply here or use Report a Problem in Diagnostics. You can review the report before submitting it; diagnostics aren't sent automatically. Please don't post API keys or unreviewed logs publicly.

I'd like to hear how the new layout works on your devices, especially with multiple DVRs, long program names, and different notification setups. If you're updating in the app, let me know which version you're coming from if you hit a problem.

Cheers,
CoderLuii
CoderLuii

2 Likes

:hammer_and_wrench: v0.8 Development Starting Soon

First, I owe you all an explanation. I went quiet for a while. Life hit me from a few directions at once. Health stuff knocked me down, the day job got intense, and I just needed to step back and take care of things. I never abandoned the project, but I had to put myself first for a bit. I'm back now, feeling good, and ready to get back to work.

I've been building ChannelWatch solo since day one. And if I'm being honest? The features people use the most weren't my ideas. They came from you guys.

→ Apprise integration? Community request.
→ Device tracking? Community request.
→ Disk space alerts? Someone here asked for it.

So let's do it again. v0.8 is a blank canvas.

Tell me what you need:

:bug: Bugs: something broken? Share logs or screenshots and I'll dig in.

:sparkles: Features: what's missing? What would make ChannelWatch a must-have for your setup?

:wrench: Enhancements: something works but could work better? I want to know.

:bulb: Integrations: other tools or services you want ChannelWatch to play nice with?

Already on my list:

→ Multi-DVR support: multiple Channels DVR servers • Planned
→ Channel art fixes: missing images for cc4c/TVE sources • Investigating
→ Bridge mode improvements: easier setup without host networking • Planned
→ Notification upgrades: more Apprise providers, richer formatting • Ongoing

I'll keep this list updated as things come in. Can't promise timelines since it's still just me, but every single reply gets read.

Reply here or open an issue on GitHub. Whatever works for you.

Let's make v0.8 the best one yet! :rocket:

Cheers,
CoderLuii
CoderLuii

1 Like

Were you ever able to identify the issue where ChannelWatch sent thousands of notifications through my Pushover account?

Hey @bnhf, thanks for bringing this up again. I honestly don't have enough details yet to pinpoint what caused the notification flood on your end.

If you still have any logs from when it happened, that would be really helpful. Otherwise, rate limiting is already on my priority list for v0.8 so this kind of thing can't happen again regardless of the root cause.

If you're open to it, could you create a GitHub issue with whatever info you have? Even timestamps or a rough description of what was running at the time would help me narrow it down.

I take this seriously and I want to make sure it's properly addressed before the next release.

Cheers,
CoderLuii
CoderLuii

Since this happened 9 or 10 months ago, I don't have anything more for you than I posted at the time. After that notification storm, I don't recall firing up the project again.

Given my monthly allowance with Pushover could be used up in a short period of time at the rate they were sent, I wasn't really feeling comfortable running it again. Especially if I happened to be away from my phone when the notifications started rolling in.

Also, I only received a fraction of the notifications that Pushover reported were sent. If you're planning to address this in v0.8, great. Once you roll that out, I'll take a fresh look at it.

3 Likes

Looking forward to seeing the next release.

1 Like

This looks interesting, will give you a chance to bring out your new version.

1 Like

@CoderLuii nice app, but this doesnt work if you don't connect a notification service? why is that mandatory?

after connecting the notification service everything works but when I disable alerts for VOD watching for example, any VOD played won't be recorded in the activity. alerts have to be turned on in order for it to be shown.

is that by design?

it would be great if this can be used without a notification service or at least disable them and still have them be shown in the GUI.

thanks.

2 Likes

@bnhf Totally understand. Nine months is a long time and I wouldn't expect you to have logs from that far back. Rate limiting is happening in v0.8. Not as a "nice to have," it's a hard requirement before release. Configurable thresholds, cooldown periods, the works. I get the Pushover concern. Burning through a monthly allowance because of a bug is not acceptable. When v0.8 drops I'll call it out in the release notes so you know it's safe to give it another shot.

@Jackamus @JefferMC Appreciate you both! Good timing, v0.8 is in active development right now. If either of you spin it up and hit anything weird, let me know here or on GitHub.

@AeroR1 Good question. Right now the notification service is required because that's how ChannelWatch was originally built. It was a notification tool first, and the web dashboard came later. So the activity tracking and the notification pipeline are tied together under the hood.

You're right that it shouldn't have to work that way. I'm adding this to the v0.8 list:

  • Decouple activity tracking from notification delivery
  • Allow ChannelWatch to run in "monitor only" mode without a notification service
  • Disabling an alert type should still log the activity in the UI

That last point is the real one. Turning off VOD alerts shouldn't mean VOD activity disappears from the dashboard. That's a bug, not a design choice. Thanks for flagging it.

Cheers,
CoderLuii
CoderLuii

:rocket: v1.0 is almost here.

Quick update for everyone who's been following along.

What started as v0.8 turned into something much bigger. The amount of work that went into this one earned it the v1.0 name. Every part of ChannelWatch got touched. Here's what's coming.

Dashboard, rebuilt from the ground up. Live uptime ticker, richer stream details with artwork, a real time status panel showing your entire system at a glance, and a completely redesigned activity timeline.

Clickable activity and recording details. Tap any item in the recent activity list or upcoming recordings to pull up full details instantly.

Live log viewer. Built right into the Diagnostics page. Search, filter by level, pause, download. No more SSHing into your container.

Notification rate limiter. Configurable sliding window that keeps you informed without flooding your phone. @bnhf, you reported the notification flood issue that sent thousands of Pushover alerts. That will never happen again.

Multi-DVR support. @chDVRuser, you've been asking for this since the early days. Monitor multiple Channels DVR servers from a single ChannelWatch instance. The most requested feature since day one.

Per DVR and global settings. Full control. Configure each server individually or set defaults across all of them.

Light mode. Better version of the previous Light Mode. Fully polished. Every page, every component.

Tailscale / MagicDNS support. @bnhf and @chDVRuser, you both ran into DNS and networking issues with bridge mode. This should make things a lot smoother.

I also want to shout out @Jackamus, @Kryptonyte, @Fofer, and everyone else who's been patiently waiting for the next release. @Kryptonyte, you compared ChannelWatch to the old SageTV alerts. That meant a lot. @Fofer, the wait is almost over.

None of this would exist without the people who posted feedback, opened issues, and kept pushing for improvements. Genuinely, thank you. This community shaped what v1.0 became.

Aiming to release within the next week. Full release notes and screenshots coming with it.

Cheers,
CoderLuii

CoderLuii

Wow, it looks amazing. I will be reinstalling and setting it up as soon as it is available. I hope the Olivetin One click project will still work to set up the 0.7 version and then will pull the new version.

It will. The current version is currently on the "deprecated" page (and can still be installed from there), but I'll move it back to the main Project One-Click page once the new version is available.

I wanted to share that ChannelWatch v0.9.0 is out.

This is a bigger update for the project. The main thing is multi-DVR support, so ChannelWatch can now monitor more than one Channels DVR with separate status, history, sessions, and notification routing.

A few other things changed too:

  • first-run setup with DVR discovery and connection testing
  • refreshed dashboard and settings screens
  • backup and restore tools
  • notification delivery logs and routing
  • health, readiness, metrics, and /api/v1 endpoints
  • updated Docker, Compose, Unraid, and Helm deployment files

Docker images are published now:

  • coderluii/channelwatch:0.9.0
  • coderluii/channelwatch:0.9
  • coderluii/channelwatch:latest

GHCR images are available too:

  • ghcr.io/coderluii/channelwatch:0.9.0
  • ghcr.io/coderluii/channelwatch:0.9
  • ghcr.io/coderluii/channelwatch:latest

Existing single-DVR installs should still work. If you are setting up multiple DVRs, CHANNELS_DVR_SERVERS is the better path now.

I do not want to oversell this as 1.0 yet. There are still some things I want to tighten up, but this gets the larger monitoring update out where people can try it.

If you try it, I would really like to hear what works, what still feels rough, and what you would want improved next.

Cheers,
CoderLuii
CoderLuii

2 Likes

Nice to see that this hasn't been abandoned. I'll give it another go

Small follow-up because I forgot to include the website/docs link:

That page is now the best starting point for ChannelWatch. It has the install guide, migration notes, multi-DVR docs, screenshots, release notes, and support links in one place.

If you are coming from v0.7 or setting it up fresh, start there and then use the web UI for first-run setup.

Cheers,
CoderLuii
CoderLuii

work was delayed this morning, so I did get 0.9.1 installed with depreciated olivetin oneclick action. no auth, no notify yet, but seems to be working fine. I'll play more with it later. :arrow_forward:

i'm seeing an issue where it will show a stream is taking place in active streams


but it never hits activity or notifications @CoderLuii

i'm on 0.9.1

@Matthew_Crommert thanks, that screenshot helps. The Active Streams card and the alert path use different signals, so this is worth digging into.

The card can show a current stream from the DVR activity state, but Recent Activity and notifications only update when ChannelWatch receives and processes the matching live-TV event from the DVR event stream.

Could you grab one bit of diagnostic info for me?

  1. Set ChannelWatch log level to Verbose.
  2. Restart ChannelWatch/container so the log level applies.
  3. Start a fresh live TV stream and wait about a minute.
  4. Open Diagnostics and download the sanitized debug bundle.

That bundle masks DVR host/API key and notification credentials. I’m mainly looking for whether the live-TV event reaches ChannelWatch, then whether it gets filtered, routed, or fails delivery.

Also, can you confirm whether Live TV / Channel Watching is enabled under alerts, and whether the Pushover route is enabled for that DVR?

Cheers,
CoderLuii
CoderLuii

Really going crazy now that i check - no watch history


How do i get the zip to you

Also, it looks like your Disk Space value should be TB Free, not GB...

2 Likes