No description
Find a file
FiveBoroughs bbe1f6364b Fix: Preserve stream order in ChannelSerializer PATCH/PUT responses
The ChannelSerializer.to_representation() method was not respecting the
ChannelStream.order field when serializing PATCH/PUT responses. This
caused streams to be returned in an arbitrary order rather than the
order specified in the request.

The update() method correctly saves the stream order to the database
using the ChannelStream.order field, and GET requests (with
include_streams=True) correctly return ordered streams via
get_streams(). However, standard PATCH/PUT responses were using
PrimaryKeyRelatedField which doesn't respect the ordering.

This fix ensures that all representations (GET, PATCH, PUT) return
streams ordered by the channelstream__order field.

Impact:
- PATCH/PUT responses now correctly reflect the stream order saved
- Clients can trust the response data without needing a follow-up GET
- No breaking changes - only fixes inconsistent behavior

Tested with:
- PATCH request with ordered stream IDs
- Verified response matches request order
- Verified GET request confirms order persisted to database
2025-11-16 23:29:17 +01:00
.github Updated GitHub Actions workflow for building base image. Changed runner version, added native runner builds instead of qemu 2025-10-03 17:02:10 -05:00
.idea Initial commit 2025-02-18 11:14:09 -06:00
apps Fix: Preserve stream order in ChannelSerializer PATCH/PUT responses 2025-11-16 23:29:17 +01:00
core Enhancement: Add Custom Dummy EPG with Dynamic Pattern Matching and Name Source Selection 2025-10-18 12:08:56 -05:00
dispatcharr Better database connection cleanup. 2025-10-16 14:22:19 -05:00
docker Bug fix/enhancement: Check if we're the owner of /data and set ownership if not. Also pre-create /data/models folder 2025-11-04 09:03:39 -06:00
frontend Bug Fix: Fix bug for the frontend custom dummy epg examples where DST was calculated on todays date instead of date of the event. 2025-11-01 14:08:36 -05:00
scripts Lower regional bonus. Remove epg_match script. 2025-09-16 14:27:07 -05:00
.dockerignore check and warn before saving a network access setting that could block current client access 2025-06-10 08:46:36 -04:00
.gitattributes Added gitattributes to support multi-platform development without getting noisy diffs. 2025-03-24 09:13:29 -05:00
.gitignore Ignore models. 2025-04-11 08:21:05 -05:00
1.png Added screenshots for README.md 2025-04-12 16:01:37 -05:00
2.png Added screenshots for README.md 2025-04-12 16:01:37 -05:00
3.png Added screenshots for README.md 2025-04-12 16:01:37 -05:00
4.png Added screenshots for README.md 2025-04-12 16:01:37 -05:00
5.png Added screenshots for README.md 2025-04-12 16:01:37 -05:00
debian_install.sh Update installed packages, node and create missing folders 2025-10-04 19:11:30 +01:00
fixtures.json Download Sentence Transformer model locally 2025-03-18 21:39:07 -05:00
LICENSE Create LICENSE 2025-02-18 11:22:47 -06:00
manage.py Initial commit 2025-02-18 11:14:09 -06:00
Plugins.md Updated Plugins 2025-09-07 11:54:22 -05:00
README.md Initial backend commit for vod 2025-08-02 10:42:36 -05:00
requirements.txt Enhancement: Switch regex compilation from re to regex module 2025-10-19 19:39:53 -05:00
version.py Release v0.11.2 2025-11-04 18:25:03 +00:00

🎬 Dispatcharr — Your Ultimate IPTV & Stream Management Companion

Dispatcharr Logo


📖 What is Dispatcharr?

Dispatcharr is an open-source powerhouse for managing IPTV streams and EPG data with elegance and control.
Born from necessity and built with passion, it started as a personal project by OkinawaBoss and evolved with contributions from legends like dekzter, SergeantPanda and Bucatini.

Think of Dispatcharr as the *arr familys IPTV cousin — simple, smart, and designed for streamers who want reliability and flexibility.


🧪 Whats New in Beta

Dispatcharr has officially entered BETA, bringing powerful new features and improvements across the board:

Proxy Streaming Engine — Optimize bandwidth, reduce provider connections, and increase stream reliability
📊 Real-Time Stats Dashboard — Live insights into stream health and client activity
🧠 EPG Auto-Match — Match program data to channels automatically
⚙️ Streamlink + FFmpeg Support — Flexible backend options for streaming and recording
🎬 VOD Management — Full Video on Demand support with movies and TV series
🧼 UI & UX Enhancements — Smoother, faster, more responsive interface
🛁 Output Compatibility — HDHomeRun, M3U, and XMLTV EPG support for Plex, Jellyfin, and more


Why You'll Love Dispatcharr

Full IPTV Control — Import, organize, proxy, and monitor IPTV streams on your own terms
Smart Playlist Handling — M3U import, filtering, grouping, and failover support
VOD Content Management — Organize movies and TV series with metadata and streaming
Reliable EPG Integration — Match and manage TV guide data with ease
Clean & Responsive Interface — Modern design that gets out of your way
Fully Self-Hosted — Total control, zero reliance on third-party services


Screenshots

image

image

image

image

image

🚀 Get Started in Minutes

docker pull ghcr.io/dispatcharr/dispatcharr:latest
docker run -d \
  -p 9191:9191 \
  --name dispatcharr \
  -v dispatcharr_data:/data \
  ghcr.io/dispatcharr/dispatcharr:latest

Customize ports and volumes to fit your setup.


🐳 Docker Compose Options

Use Case File Description
All-in-One Deployment docker-compose.aio.yml Recommended! A simple, all-in-one solution — everything runs in a single container for quick setup.
Modular Deployment docker-compose.yml Separate containers for Dispatcharr, Celery, and Postgres — perfect if you want more granular control.
Development Environment docker-compose.dev.yml Developer-friendly setup with pre-configured ports and settings for contributing and testing.

⚒️ Building from Source (For the Adventurous)

⚠️ Warning: Not officially supported — but if you're here, you know what you're doing!

If you are running a Debian based operating system you can install using the debian_install.sh script. If you are on another operating system and come up with a script let us know! We would love to add it here!


🤝 Want to Contribute?

We welcome PRs, issues, ideas, and suggestions!
Heres how you can join the party:

  • Follow our coding style and best practices.
  • Be respectful, helpful, and open-minded.
  • Respect the CC BY-NC-SA license.

Whether its writing docs, squashing bugs, or building new features, your contribution matters! 🙌


📚 Roadmap & Documentation


❤️ Shoutouts

A huge thank you to all the incredible open-source projects and libraries that power Dispatcharr. We stand on the shoulders of giants!


⚖️ License

Dispatcharr is licensed under CC BY-NC-SA 4.0:

  • BY: Give credit where credits due.
  • NC: No commercial use.
  • SA: Share alike if you remix.

For full license details, see LICENSE.


✉️ Connect With Us

Have a question? Want to suggest a feature? Just want to say hi?
➡️ Open an issue or reach out on Discord.


🚀 Happy Streaming! The Dispatcharr Team