All apps · 0 apps
xTeVe-Channel-Alerts
Docker app from Celsian's Repository
Overview
Readme
View on GitHubxteve-channel-alerts
Why?
Occasionally you may find that a channel you want to watch has disappeared from your xTeVe playlist. With xTeVe-Channel-Alerts, you can stay informed about these changes. When configured to run after your automatic xTeVe update, it compares the current channel list with the previous. If xTeVe-Channel-Alerts detects a missing channel, it sends a detailed rich-embed message to your Discord webhook, keeping you in the loop.
Multi-Architecture Support ✅
The Docker image celsian/xteve-channel-alerts:latest is published as a multi-arch image.
Docker (and Unraid) automatically pull the correct build:
| Architecture | Typical hosts / CPUs | Docker platform |
|---|---|---|
| AMD64 | Intel / AMD 64-bit PCs & servers | linux/amd64 |
| ARM64 | Apple Silicon (M1/M2/M3) & ARM SBCs | linux/arm64 |
No flags are required—Docker fetches the right image.
Quick-start (single run)
docker run -d \
--name xteve-channel-alerts \
-e XTEVE_URL="http://192.168.1.100:34400/m3u/xteve.m3u" \
-e DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/…" \
-e CRON_SCHEDULE="0 4 * * *" \
-v /path/to/appdata:/app/data \
celsian/xteve-channel-alerts:latest
/path/to/appdata is a single directory that the container organises like:
data/
├── logs/ ──▶ app.log , cron.log
└── m3us/ ──▶ current.m3u , previous.m3u
docker-compose example
version: '3'
services:
xteve-channel-alerts:
image: celsian/xteve-channel-alerts:latest
container_name: xteve-channel-alerts
environment:
XTEVE_URL: http://192.168.1.100:34400/m3u/xteve.m3u
DISCORD_WEBHOOK_URL: https://discord.com/api/webhooks/…
CRON_SCHEDULE: 0 4 * * * # daily at 04:00
volumes:
- ./data:/app/data # organised sub-dirs: logs/ m3us/
restart: unless-stopped
Environment variables
| Variable | Required | Default | Description |
|---|---|---|---|
XTEVE_URL |
✔ | — | URL to the M3U generated by xTeVe |
DISCORD_WEBHOOK_URL |
✔ | — | Discord webhook that receives alerts |
CRON_SCHEDULE |
✖ | 0 4 * * * |
Standard 5-field cron string controlling run times |
Volume mapping
| Container path | Contains … | Must persist? | Example host path |
|---|---|---|---|
/app/data |
logs/ → app.log, cron.log • m3us/ → current.m3u, previous.m3u |
Yes | /mnt/user/appdata/xteve-channel-alerts |
If this volume is not mapped persistently the container will treat every run as the first run and logs will be lost.
Cron schedule
CRON_SCHEDULE accepts any standard five-field cron expression:
| Example | Meaning |
|---|---|
*/30 * * * * |
every 30 minutes |
15 2 * * * |
daily at 02:15 |
0 */6 * * * |
every 6 hours |
Change the variable and restart the container to apply.
Troubleshooting
| Symptom | Likely cause / fix |
|---|---|
| No Discord messages | Incorrect webhook URL or outbound network blocked |
| “Previous m3u file not found” every run | /app/data not mapped persistently |
| Cron appears to do nothing | Mis-typed CRON_SCHEDULE; validate with an online cron tester |
xTeVe: cannot GET … errors |
xTeVe URL unreachable from container; use IP or set network_mode: host |
| Discord message truncated | Discord embeds limited to ~7 kB; see full list in app.log |
Updating & backup
- Update – pull the new image and restart;
/app/dataretains state - Backup – copy
/mnt/user/appdata/xteve-channel-alerts/to preserve logs and the previous M3U snapshot
Happy monitoring 🎉
Categories
Download Statistics
Related apps
Explore more like this
Explore allLinks
Details
celsian/xteve-channel-alerts:latestRuntime arguments
- Network
bridge- Shell
sh- Privileged
- false
Template configuration
http://localhost:34400/m3u/xteve.m3u
- Target
- XTEVE_URL
https://discord.com/api/webhooks/webhook_id/token
- Target
- DISCORD_WEBHOOK_URL
- Target
- /app/data
- Value
- /mnt/user/appdata/xteve-channel-alerts/
- Target
- CRON_SCHEDULE
- Default
- 0 4 * * *