Commit graph

17 commits

Author SHA1 Message Date
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
None
4f41c287ac Fix Redis flush and wait_for_redis in modular mode
- Move modular Redis wait from uWSGI exec-pre to entrypoint (exec-pre runs under 'su -' which strips Docker env vars, so DISPATCHARR_ENV and REDIS_HOST were never available)
- Selective flush in modular mode: clears stale app state (stream locks, proxy metadata) while preserving Celery broker/result keys
- AIO mode unchanged: full flushdb via uWSGI exec-pre
- Update unit tests for both flush paths
2026-03-06 15:17:32 -06:00
None
6ff81e6287 Fix modular mode deployment issues (#1045)
- Fix Postgres version check failing with restricted DB users (use $POSTGRES_DB instead of hardcoded 'postgres')
- Fix DVR recording broken in modular mode (respect DISPATCHARR_PORT instead of hardcoding 9191)
- Remove flushdb() from wait_for_redis.py to prevent Redis data loss on container restart
- Add DISPATCHARR_PORT to celery environment in docker-compose.yml
- Add depends_on health conditions for proper service startup ordering
- Add extra_hosts for host.docker.internal resolution on Linux
- Harden celery entrypoint with timeouts for JWT wait (120s) and migration wait (300s)
- Replace fragile showmigrations grep with migrate --check
- Add unit tests for DVR port resolution and flushdb removal regression
2026-03-03 17:18:16 -06:00
None
e217960500 feat: Add Redis authentication support for modular deployment
Add support for authentication when connecting to external Redis instances in modular deployment mode. This enables secure Redis deployments using either password-only authentication (Redis <6) or
username + password authentication (Redis 6+ ACL).

Changes:
- Add REDIS_PASSWORD and REDIS_USER environment variables
- Implement URL encoding for special characters in passwords
- Update all Redis connection points to support auth
- Add comprehensive documentation and examples to docker-compose.yml
- Maintains full backward compatibility (empty defaults = no auth)

All authentication mechanisms have been fully tested including pasword-only authentication, Redis 6+ ACL authentication with username + password, volume-mounted configuration files, and special character handling.

Existing deployments are not effected, authentication support is entirely opt-in using docker-compose.

Also, acknowledging the fact that the docker-compose file for modular deployments has been getting out of hand with auth support, the docker-compose.yml file was re-formatted for better visibility in configuration. This seemed like a better way to go than mandating a .env file.
2026-02-03 21:42:06 -06:00
SergeantPanda
0bf3499917 Add update_changelog script and integrate it into release workflow 2025-12-02 12:14:50 -06:00
SergeantPanda
20685b8344 Lower regional bonus. Remove epg_match script. 2025-09-16 14:27:07 -05:00
SergeantPanda
1508c2902e Switched logging match rest of application. 2025-05-16 09:46:55 -05:00
SergeantPanda
2c831bd756 Fixes remote debugging. 2025-05-14 19:11:12 -05:00
SergeantPanda
178dc61e94 Better error handling for debug wrapper when timeouts occur. 2025-05-09 12:20:29 -05:00
SergeantPanda
418bf01449 Notify user of how many matches auto-match found.
Add batch EPG association endpoint and improve EPG matching logic

- Implemented a new API endpoint to associate multiple channels with EPG data in a single request.
- Enhanced the EPG matching process to normalize TVG IDs and log relevant information.
- Updated frontend to handle batch EPG associations efficiently, falling back to legacy methods when necessary.
2025-04-29 18:13:42 -05:00
SergeantPanda
ab7b92bcbd Fix: Access the first element directly for EPG ID assignment in process_data 2025-04-11 16:00:11 -05:00
SergeantPanda
6d0e51ed34 Initialize CI and release workflows; add version bumping scripts 2025-04-10 11:25:24 -05:00
Dispatcharr
19d9b5be8f Changed model location 2025-04-09 16:32:21 -05:00
dekzter
5570562960 epg match run externally to keep memory usage low 2025-04-07 11:57:00 -04:00
SergeantPanda
f71e1aadd4 Flush Redis DB on startup. 2025-04-04 16:31:36 -05:00
SergeantPanda
1fcedab1ab Remote debugging initial commit. 2025-03-27 09:49:51 -05:00
SergeantPanda
efaa7f7195 Singular redis-client. 2025-03-21 10:55:13 -05:00