SergeantPanda
49f6871ba8
changelog: Update formatting a bit.
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
Frontend Tests / test (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-03-27 16:36:34 -05:00
SergeantPanda
b9e2a878df
Merge pull request #1152 from Dispatcharr/donate-button
...
Enhancement: Donate button added to the sidebar footer
2026-03-27 15:16:58 -05:00
SergeantPanda
3ee925ca71
tests: add Heart icon and Tooltip mock to Sidebar tests
2026-03-27 15:14:04 -05:00
SergeantPanda
c29deeb007
Merge branch 'dev' into donate-button
2026-03-27 15:05:02 -05:00
SergeantPanda
456f9ef6e6
Merge pull request #1145 from Dispatcharr/user-priority-fixes
...
User stream limits
2026-03-27 14:18:38 -05:00
SergeantPanda
3064be8194
tests: Fix settings page test.
2026-03-27 14:15:20 -05:00
SergeantPanda
0827908b53
fix: lazy load UserLimitsForm and correct spelling in user limits section
2026-03-27 14:12:21 -05:00
SergeantPanda
110c8623ed
delete temp script used for debugging.
2026-03-27 13:59:50 -05:00
SergeantPanda
5f45d3e9ad
changelog: User stream limits
2026-03-27 13:55:16 -05:00
SergeantPanda
36ce5a8c71
changelog: Update changelog for base image changes.
2026-03-27 11:54:00 -05:00
SergeantPanda
9c9de12b19
chore: remove unnecessary python-is-python3, python3-pip and streamlink from Dockerfile dependencies
2026-03-27 11:49:28 -05:00
SergeantPanda
2253e18ef8
changelog: Update changelog for dependency upgrades
2026-03-27 11:04:37 -05:00
SergeantPanda
b20c42f25a
chore: update dependencies for celery, requests, torch, and sentence-transformers
2026-03-27 11:03:55 -05:00
SergeantPanda
7d8619f644
Security: Update npm dependencies to resolve frontend vulernabilities.
2026-03-27 09:30:01 -05:00
SergeantPanda
8e9a6285a4
Enhancement: Donate button added to the sidebar footer. A heart icon links to the project's Open Collective page, visible in both expanded and collapsed states. Hovering shows a "Support Dispatcharr" tooltip. The version string is also now clickable to copy it to the clipboard.
2026-03-26 21:16:18 -05:00
SergeantPanda
7964b2c2cb
fix: enhance stream termination logic to handle multiple connections on the same channel
2026-03-26 20:33:03 -05:00
SergeantPanda
7e6041286a
fix: update user limit settings key in migration and frontend form for consistency with other settings keys.
2026-03-26 20:16:16 -05:00
SergeantPanda
46d4063524
fix: change logging level from info to debug in user connection checks
2026-03-26 20:10:03 -05:00
SergeantPanda
aa6fb033d3
fix: update user stream limit checks to include media_id and rename user_limits_settings key
2026-03-26 20:02:54 -05:00
SergeantPanda
58befaa52b
fix: correct indentation in check_user_stream_limits function
2026-03-26 19:14:46 -05:00
SergeantPanda
b671a72707
fix: resolve decode_responses migration bugs and user-limit regressions
...
Fix a wave of bugs introduced by the user-priority branch's migration
from manual .decode('utf-8') calls to decode_responses=True on the
metadata Redis client:
core/utils.py
- Rewrite _init_client: fix SyntaxError at line 138, missing
redis_password/redis_user params, cls._client corruption when
decode_responses=False was requested, and dead retry backoff logic
apps/proxy/utils.py
- Fix get_user_limit_settings() → get_user_limits_settings() (2 sites)
- Fix VOD scan key vod_persistent_connections:* → vod_persistent_connection:*
- Fix undefined channel_id in VOD loop (use content_uuid from Redis hash)
- Remove leftover print(active_connections) debug statement
- Refactor manual cursor SCAN while-loops to scan_iter()
apps/channels/tasks.py
- Fix closure bug in _d(): md.get(key) → md.get(bkey) (was reading
the outer loop variable instead of the local bytes key)
apps/proxy/ts_proxy/server.py
- Replace stale b'init_time', b'total_bytes', b'state' byte-string
key lookups and .decode() calls with plain string equivalents
apps/proxy/ts_proxy/services/channel_service.py
- Fix ChannelMetadataField.STATE.encode() / .OWNER.encode() →
.STATE / .OWNER (pre-existing, broke under decoded client)
apps/proxy/ts_proxy/views.py
- Fix ChannelMetadataField.OWNER.encode("utf-8") → .OWNER
apps/proxy/ts_proxy/client_manager.py
- Fix cid.decode('utf-8') in remove_ghost_clients(): smembers()
already returns str with decode_responses=True
2026-03-26 18:41:42 -05:00
dekzter
90a600b48f
merged in dev
2026-03-26 12:17:43 -04:00
SergeantPanda
af54366d76
changelog: Update changelog for XML parsing fixes.
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-03-26 10:15:24 -05:00
SergeantPanda
5095f8d5ce
Merge pull request #1099 from CodeBormen/fix/1095-epg-special-characters
...
fix: resolve HTML named entities in XMLTV files before parsing
2026-03-26 10:07:59 -05:00
dekzter
a19be96ced
fleshed out user limits and termination logic
2026-03-25 17:33:26 -04:00
SergeantPanda
cee94282f9
Merge pull request #1128 from CodeBormen/dev
...
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
feat: add TLS connection support for Redis and PostgreSQL (#950 )
2026-03-24 18:56:57 -05:00
None
c005b1ac56
changelog: add TLS connection support for Redis and PostgreSQL ( #950 )
2026-03-24 18:25:15 -05:00
SergeantPanda
6d694c8475
Bug Fix: Sort max stream column by total of streams from all profiles.
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-03-24 13:41:46 -05:00
SergeantPanda
58f40ff276
Bug Fix: Fixed stale references to old guideutils location. Also change dockerfile to get clear error messages during failure.
2026-03-24 13:19:48 -05:00
SergeantPanda
ec876716c5
tests: Fix tests that use guide utils.
2026-03-24 13:08:45 -05:00
SergeantPanda
1246f75c6b
Enhancement: Toggling an M3U profile's active state now immediately updates the playlist store (including the playlists array), so the **Max Streams** total in the M3U table reflects the change without a page reload.
...
- M3U account form: **Max Streams** field changed from a plain text input to a number input with increment/decrement controls, consistent with other integer fields.
- M3U account form: removed unused `useMantineTheme` import and `theme` variable.
2026-03-24 13:03:19 -05:00
SergeantPanda
0ac8b21964
Enhancement: M3U table **Max Streams** column now reflects the combined limit across all active profiles. When a playlist has multiple active profiles, the column displays their summed total (or ∞ if any profile is unlimited) and a hover tooltip lists each profile's individual limit by name. ( Closes #816 )
2026-03-24 12:53:08 -05:00
SergeantPanda
99fe8c96a2
refactor: Move utility functions from pages/guideUtils.js to utils/guideUtils.js and update imports
2026-03-24 12:39:09 -05:00
SergeantPanda
b141b6214d
Merge branch 'main' of https://github.com/Dispatcharr/Dispatcharr into dev
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-03-23 20:12:07 -05:00
SergeantPanda
d86f56a5aa
fix: Update Docker Hub image tags to conditionally format based on event type
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
2026-03-23 20:11:40 -05:00
SergeantPanda
516c2e478c
Conditionally render Connection Security panel based on deployment mode
2026-03-23 19:55:43 -05:00
SergeantPanda
9da6f7794c
fix: ensure PGID defaults to PUID when setting ownership for PostgreSQL SSL key (matching entrypoint.celery behavior.
2026-03-23 18:26:52 -05:00
SergeantPanda
cf56707e69
Merge branch 'main' of https://github.com/Dispatcharr/Dispatcharr into dev
2026-03-23 18:03:08 -05:00
SergeantPanda
cf5f81af0f
Bug Fix: Fix CI Pipline attempting login to Docker Hub for PR's.
2026-03-23 18:02:39 -05:00
SergeantPanda
3831d72d13
changelog: Update changelog for dvr recording pr.
2026-03-23 17:54:27 -05:00
SergeantPanda
7d93dd21a1
Merge pull request #1139 from CodeBormen:fix/duplicate-recordings-epg-refresh
...
fix(dvr): prevent duplicate recordings after EPG refresh
2026-03-23 17:50:00 -05:00
SergeantPanda
034f0623bf
fix(tasks): handle AttributeError in series rule evaluation lock acquisition and release
2026-03-23 17:48:35 -05:00
None
b30a24e2fb
feat: add TLS connection support for Redis and PostgreSQL ( #950 )
...
- Add 10 env vars for Redis/PostgreSQL TLS (REDIS_SSL, REDIS_SSL_VERIFY, REDIS_SSL_CA_CERT, REDIS_SSL_CERT, REDIS_SSL_KEY, POSTGRES_SSL, POSTGRES_SSL_MODE, POSTGRES_SSL_CA_CERT, POSTGRES_SSL_CERT, POSTGRES_SSL_KEY)
- Propagate SSL params to all Redis connection points: RedisClient, stream view, PubSub, client manager, Celery broker/result backend, Django Channels, and pre-Django startup scripts
- Add Celery SSL config via URL query string params (required by Kombu's internal URL parsing)
- Add PostgreSQL sslmode and certificate options to DATABASES config
- Add startup validation: cert file existence, URL scheme conflict detection, TLS status logging
- Add TLS error hints to Redis connection failure messages
- Add Connection Security panel in System Settings (modular mode only) showing encryption, verification, and mTLS status
- Add PG client key permission fix in web and celery entrypoints for Docker Desktop compatibility (0777 to 0600)
- Add TLS env var passthrough in entrypoint for su - login shells
- Document TLS env vars in modular docker-compose.yml
- Change env_mode from dev/prod to actual DISPATCHARR_ENV value for modular mode detection
2026-03-21 17:24:09 -05:00
SergeantPanda
61d713fcda
test: update validation for empty CIDR range to allow defaults on submit
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
2026-03-21 15:14:58 -05:00
SergeantPanda
7cd4abb694
Enhancement: Network Access settings: leaving a field blank no longer shows a validation error. The default CIDR range for that field is saved automatically and a "Defaults Restored" warning is displayed listing which fields were reset. ( Closes #726 )
2026-03-21 14:07:30 -05:00
SergeantPanda
816f864e85
Merge branch 'main' of https://github.com/Dispatcharr/Dispatcharr into dev
2026-03-21 13:19:11 -05:00
SergeantPanda
3e12be3ac0
Update Open Collective username in FUNDING.yml
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
2026-03-21 13:15:46 -05:00
SergeantPanda
a8b217e2fb
docs: Slight reorganization of the readme. Fix link on Open Collective.
2026-03-21 13:06:10 -05:00
dekzter
b5c13a00ce
added support section
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
2026-03-20 20:32:08 -04:00
None
36a8e92d94
fix(dvr): prevent duplicate recordings after EPG refresh
...
- Replace ProgramData.id-based dedup with stable (tvg_id, start_time, end_time) key from Recording.custom_properties.program. ProgramData IDs change on every EPG refresh; the old dedup always passed after refresh, creating duplicates.
- Fix secondary timeslot guard to compare original program times (stored in custom_properties) instead of offset-adjusted Recording times. With DVR pre/post offsets configured, the old guard never matched.
- Add acquire_task_lock/release_task_lock to serialize concurrent evaluate_series_rules calls. Multiple EPG source refreshes firing evaluate_series_rules.delay() simultaneously raced to create duplicate recordings.
2026-03-20 11:48:06 -05:00