SergeantPanda
1d2ca3c436
Merge pull request #1300 from sv-dispatcharr:repo/compliance-checks
...
Introduce In-House Template & Compliance Actions
2026-05-28 15:06:06 -05:00
SergeantPanda
1cfd26227b
Merge pull request #1271 from kensac:docker-multistage-base
...
docker: split base image into builder and runtime stages
2026-05-28 14:36:45 -05:00
SergeantPanda
89a689c5a0
changelog: Update changelog for Docker PR.
2026-05-28 14:36:02 -05:00
SergeantPanda
9c6c2a081b
fix: remove unnecessary libpq-dev dependency from Dockerfile
2026-05-28 14:31:00 -05:00
Seth Van Niekerk
3e7bd3d431
Introduce In-House Template & Compliance Actions
2026-05-28 14:20:39 -04:00
Kanishk Sachdev
2070f9e281
docker: split base image into builder and runtime stages
...
Keeps compilers in the builder; runtime stage copies only the venv
and NumPy wheel.
2026-05-25 04:31:42 -04:00
SergeantPanda
c4b2fae85a
Merge pull request #1255 from JCBird1012:fix/stats-503-intermittent
...
CI Pipeline / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Frontend Tests / test (push) Has been cancelled
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Has been cancelled
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
CI Pipeline / create-manifest (push) Has been cancelled
perf: reduce intermittent 503s on stats page and API requests
2026-05-23 21:47:25 -05:00
SergeantPanda
fb260356aa
changelog: Update changelog for stats PR.
2026-05-23 21:45:49 -05:00
SergeantPanda
61c187fc72
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/JCBird1012/1255
2026-05-23 21:43:13 -05:00
SergeantPanda
92d3068be0
fix: ensure migrations run automatically after restoring backups to prevent missing schema issues
2026-05-23 21:25:44 -05:00
GitHub Actions
5ea194059b
Release v0.25.1
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
2026-05-23 19:17:36 +00:00
SergeantPanda
5cfea5892a
Merge pull request #1262 from Dispatcharr/dev
...
Dispatcharr - v0.25.1
2026-05-23 14:16:52 -05:00
SergeantPanda
812d25b987
fix: resolve SynchronousOnlyOperation in ORM calls by allowing async unsafe operations
2026-05-23 13:54:41 -05:00
Jonathan Caicedo
0d1d1f2722
fix: revert nginx timeouts; fire stats fetch on mount regardless of interval
2026-05-23 14:20:13 -04:00
SergeantPanda
137241f873
Bug Fix: Fix auto sync migration. ( Fixes #1259 )
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
2026-05-22 13:53:00 -05:00
SergeantPanda
59587cbe66
Fix XC stream URL format output handling and improve M3U playlist generation performance. Removed unused imports in apps\output
2026-05-22 11:51:16 -05:00
GitHub Actions
e3269a21ce
Release v0.25.0
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Frontend Tests / test (push) Has been cancelled
2026-05-21 22:33:35 +00:00
SergeantPanda
af8e993814
Merge pull request #1257 from Dispatcharr/dev
...
Release - v0.25.0
2026-05-21 17:32:57 -05:00
SergeantPanda
1ab1f638a3
tests: Fix frontend test for sidebar.
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Has been cancelled
2026-05-21 17:08:01 -05:00
SergeantPanda
9c22a52c14
chore: remove python-gnupg dependency from project
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Base Image Build / prepare (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (push) Has been cancelled
2026-05-21 16:14:28 -05:00
SergeantPanda
7e0ea5eae0
Enhancement: add caching for plugin detail responses and implement cache invalidation on repo refresh.
...
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Waiting to run
Base Image Build / prepare (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (push) Has been cancelled
Bug Fix: The plugin detail endpoint called GPG via `subprocess.Popen` to verify per-plugin manifest signatures. Replaced with a `_gpg_run()` helper that uses `os.posix_spawn`, matching the pattern used by the ffmpeg and script-handler fixes.
2026-05-21 16:12:31 -05:00
SergeantPanda
2f66b7c183
chore: remove python-gnupg dependency from project
2026-05-21 16:01:10 -05:00
SergeantPanda
f416c7c251
Enhancement: add About modal with version info and community links; refactor SVG icons into separate module
2026-05-21 16:00:52 -05:00
SergeantPanda
17e6e8c238
chore: Cleanup unused code.
2026-05-21 10:13:28 -05:00
Jonathan Caicedo
a2c69be861
fix: update Stats tests to expect single mount fetch after removing duplicate useEffect
...
Tests were asserting fetchActiveChannelStats/getVODStats were called twice
on mount, encoding React strict mode's double-invoke behavior rather than
testing actual application logic. Update all affected call count assertions
to reflect the correct single-fetch behavior.
2026-05-20 22:23:11 -04:00
Jonathan Caicedo
6787e4912f
refactor: replace multiple hget calls with hmget where fields are known
...
- channel_status.py: fold output_format and output_profile_id into the
existing hmget, reducing per-client Redis calls from 3 to 1
- utils.py: collapse 2x and 3x hget per key in scan_iter loops
(get_user_active_connections) to single hmget calls
- views.py: replace 3x hget on channel metadata in the worker-join path
of stream_ts with a single hmget
2026-05-20 22:12:12 -04:00
Jonathan Caicedo
e2074c1921
fix: reduce intermittent 503s on stats page and API requests
2026-05-20 21:52:28 -04:00
SergeantPanda
e0bb2d925e
Enhancement: implement Shift+click and Ctrl+click row selection in tables for improved user interaction
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Waiting to run
2026-05-20 17:27:32 -05:00
SergeantPanda
821dccc380
Enhancement: update cursor styles for shift key active state to improve user experience
2026-05-20 17:22:42 -05:00
SergeantPanda
429a6a6bdc
tests: Fixed DVR settings form test.
2026-05-20 16:52:18 -05:00
SergeantPanda
fb89a7c977
Enhancement: refactor ChannelsTable and CustomTable components for improved selection handling and performance
...
Bug Fix: Shift select on channel table.
2026-05-20 16:46:32 -05:00
SergeantPanda
f84265f2a5
Enhancement: add Comskip mode and hardware acceleration settings to DVR configuration. Update default comskip config.
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Waiting to run
2026-05-19 21:14:06 -05:00
SergeantPanda
594596d4f5
Enhancement: update channel card tooltip to use stable 'started_at' timestamp and refactor getStartDate utility
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Waiting to run
Base Image Build / prepare (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (push) Has been cancelled
2026-05-19 14:37:33 -05:00
SergeantPanda
1d9741a019
changelog: Update changelog for django update.
2026-05-19 09:11:44 -05:00
SergeantPanda
1f11f80e1e
Security: Update Django dependency to version 6.0.5
2026-05-19 09:06:01 -05:00
SergeantPanda
322c7c9323
Security: Update Django dependency to version 6.0.5
Base Image Build / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (push) Has been cancelled
2026-05-19 09:05:18 -05:00
SergeantPanda
50e23cbfd7
Enhancement: add django-redis to dependencies for improved caching support
Base Image Build / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (push) Has been cancelled
2026-05-17 20:24:47 -05:00
SergeantPanda
108bd52e7f
perf: replace local cache with django-redis for improved EPG caching
Base Image Build / prepare (push) Has been cancelled
CI Pipeline / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (push) Has been cancelled
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Has been cancelled
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
CI Pipeline / create-manifest (push) Has been cancelled
2026-05-17 20:23:57 -05:00
SergeantPanda
28347a239b
Enhancement: add django-redis to dependencies for improved caching support
2026-05-17 20:17:59 -05:00
SergeantPanda
a71dcb31a0
fix: ensure proper cleanup of client managers on channel disconnect
2026-05-17 19:05:44 -05:00
SergeantPanda
a3511d6363
fix: update profile save method to include expiration date in custom properties
2026-05-17 17:43:15 -05:00
SergeantPanda
8ac0aa4f5f
fix: update default output profiles to include additional ffmpeg parameters for improved processing speed.
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
2026-05-17 12:33:37 -05:00
SergeantPanda
d448561767
Bug Fix: Refactored channel teardown to kill ffmpeg earlier in the process. Removed redundant cleanup task. Added guard to prevent multiple cleanups for the same channel.
2026-05-17 10:03:44 -05:00
SergeantPanda
34bfaa0ed7
fix: improve RegexPreviewBox layout and ensure proper overflow handling
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Has been cancelled
2026-05-16 11:52:52 -05:00
SergeantPanda
e54b70ba08
fix: enhance regex filtering for auto-sync channels to match frontend patterns
2026-05-16 11:41:15 -05:00
SergeantPanda
d09674cd95
fix: update xc_stream_live_streams to yield opening bracket at start.
2026-05-16 11:08:41 -05:00
SergeantPanda
bdfad0f314
fix: clarify comments in gevent_patch.py regarding blocking behavior in send_websocket_update
2026-05-16 10:59:09 -05:00
SergeantPanda
c68249c314
fix: replace fork()-based subprocess with posix_spawn at all uWSGI spawn sites
...
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Waiting to run
Base Image Build / prepare (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (push) Has been cancelled
gevent registers a pthread_atfork handler that never yields. Any
subprocess.Popen/run call in a uWSGI greenlet hangs indefinitely at
fork() before the child process even starts.
- dispatcharr/gevent_patch.py: new; monkey.patch_all() + psycogreen,
loaded via uWSGI import= in all four ini files
- live_proxy/input/manager.py: posix_spawn + _SpawnedProcess; removed
dead forwarder code
- live_proxy/input/http_streamer.py: O_NONBLOCK on relay pipe + EAGAIN
retry (blocking write to a full pipe stalls the gevent hub)
- live_proxy/utils.py: new posix_spawn_proc() helper with O_NONBLOCK
stdin, shared by both output managers
- live_proxy/output/fmp4/manager.py, output/profile/manager.py:
posix_spawn_proc(); _write_all() treats EAGAIN (None) as cooperative
select.select wait instead of fatal error
- core/views.py (stream_view): posix_spawn; fixed pre-existing bug
where return StreamingHttpResponse(...) was indented inside
stream_generator, making the success path always return None
- connect/handlers/script.py: _posix_run() with posix_spawn +
cooperative select reads + non-blocking waitpid; fixes deadlock when
a script integration fires on a uWSGI-context event (client_connect
fires in the live proxy, not Celery)
2026-05-15 16:45:09 -05:00
SergeantPanda
bd202638ef
fix: Add psycogreen to dependencies for improved concurrency support
Base Image Build / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (push) Has been cancelled
2026-05-14 19:28:31 -05:00
SergeantPanda
c33d456743
Enable gevent in uWSGI workers; fix WS delivery and DB exhaustion
...
- Enable gevent cooperative multitasking in all uWSGI worker configs
(gevent-early-monkey-patch + import dispatcharr.gevent_patch)
- Rewrite WebSocket group sends to bypass asyncio in gevent workers:
_gevent_ws_send() replicates the channels_redis 4.x wire format
directly via synchronous Redis so send_websocket_update() and
_send_async() no longer fail silently after epoll is patched out
- Fix PostgreSQL connection exhaustion: CONN_MAX_AGE=0 + explicit
close_old_connections() in stream manager and cleanup watchdog loops
- Fix stream proxy race: register client before the connect-wait loop
so the cleanup watchdog never sees zero clients on a live channel
- Channel list/logo/profile queryset optimisations: conditional DISTINCT,
EXISTS semi-joins for filter-options, channel_count annotation to
eliminate N+1 in LogoSerializer, prefetched memberships in
ChannelProfileSerializer
- JsonResponse for channel ID list and summary endpoints
2026-05-14 18:55:09 -05:00