Files
truecharts/charts/stable/dispatcharr/values.yaml
T
TrueCharts Bot 18182ff6a4 fix(dispatcharr): update image docker.io/dispatcharr/dispatcharr 0.25.0 → 0.25.1 (#48479)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.io/dispatcharr/dispatcharr](https://redirect.github.com/Dispatcharr/Dispatcharr)
| patch | `9f6a7e5` → `2bdcfd9` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Release Notes

<details>
<summary>Dispatcharr/Dispatcharr
(docker.io/dispatcharr/dispatcharr)</summary>

###
[`v0.25.1`](https://redirect.github.com/Dispatcharr/Dispatcharr/blob/HEAD/CHANGELOG.md#0251---2026-05-23)

[Compare
Source](https://redirect.github.com/Dispatcharr/Dispatcharr/compare/v0.25.0...v0.25.1)

##### Fixed

- **`SynchronousOnlyOperation` and permanent loading state in series
rules save.** `_evaluate_series_rules_locked` and
`reschedule_upcoming_recordings_for_offset_change_impl` called
`async_to_sync(channel_layer.group_send)` directly from WSGI views. In a
uWSGI/gevent worker this has two effects: (1) it sets Python 3.10+'s
C-level OS-thread-local running-loop flag, causing Django's
`@async_unsafe` guard to raise `SynchronousOnlyOperation` on any ORM
call made by another greenlet on the same thread; (2) the asyncio event
loop it creates cannot make progress because the gevent hub is blocked
waiting for the request greenlet to complete, so the request hangs and
the frontend spinner never clears. Both functions now use
`send_websocket_update` - the same gevent-aware helper used elsewhere -
which takes a direct Redis path (no asyncio) in gevent workers. (Fixes
[#&#8203;1260](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1260))
- **Migration 0037 fails on PostgreSQL when channels have been orphaned
from their M3U account.** Channels created by auto-sync retain
`auto_created=True` but get `auto_created_by=NULL` when the originating
M3U account is deleted (`on_delete=SET_NULL`). The data migration step
that re-attributes or demotes those channels updates the FK column via
ORM `.save()` calls, which queues deferred constraint trigger events in
PostgreSQL. The subsequent `ALTER TABLE ... DROP NOT NULL` on the same
table then fails with `ObjectInUse: cannot ALTER TABLE because it has
pending trigger events`. Fixed by issuing `SET CONSTRAINTS ALL
IMMEDIATE` at the end of the data migration function to flush those
pending events before the DDL runs. (Fixes
[#&#8203;1259](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1259))
- **XC stream URLs with no file extension now respect output format
defaults.** `stream_xc` previously treated any extension other than
`.mp4` as a forced `mpegts` request, including the empty-extension URLs
that XC-compatible M3U playlists produce via `get.php`. Requests with no
extension now pass `force_format=None` so the standard resolution chain
(request param, user default, server default) applies correctly.
- **XC M3U stream URLs now carry output profile and output format
parameters.** The `get.php` M3U playlist previously emitted bare
`/live/user/pass/id` URLs with no query string, causing per-user and
server-wide output profile and output format settings to be silently
ignored for XC clients. When `output_profile` or `output_format`
parameters are present on the playlist request, they are now appended to
every stream URL in the playlist so the proxy honours them on playback.

##### Performance

- **M3U playlist URL building moved outside the channel loop.**
`generate_m3u` previously rebuilt the query-string suffix (and for XC
requests, called `build_absolute_uri_with_port`) on every channel
iteration even though both inputs are request-level constants. The XC
base URL and both query-string suffixes (`xc_qs_suffix`,
`proxy_qs_suffix`) are now computed once before the channel loop;
per-channel URL assembly is a single f-string interpolation.

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9kaXNwYXRjaGFyciIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvcGF0Y2giXX0=-->
2026-05-23 21:54:01 +02:00

81 lines
2.7 KiB
YAML

# yaml-language-server: $schema=./values.schema.json
image:
pullPolicy: IfNotPresent
repository: docker.io/dispatcharr/dispatcharr
tag: 0.25.1@sha256:2bdcfd9dc113e743ccb3ea424e75e19b2281309b05a7d649c3717471b9f70f03
securityContext:
container:
readOnlyRootFilesystem: false
runAsUser: 0
runAsGroup: 0
service:
main:
ports:
main:
protocol: http
targetPort: 9191
port: 9191
workload:
main:
podSpec:
initContainers:
setup-postgres-dirs:
enabled: true
type: init
name: setup-postgres-dirs
image: alpine:3.23@sha256:5b10f432ef3da1b8d4c7eb6c487f2f5a8f096bc91145e68878dd4a5019afde11
command:
- /bin/sh
- -c
- |
echo "Setting up PostgreSQL directories..."
# Create and set permissions for /var/run/postgresql
mkdir -p /var/run/postgresql
chown 999:999 /var/run/postgresql
chmod 2775 /var/run/postgresql
echo "✓ /var/run/postgresql created (999:999, 2775)"
# Fix permissions for /data/db (restored from backup)
if [ -d /data/db ]; then
echo "Found existing /data/db, fixing permissions..."
# Recursively fix ownership of ALL files inside /data/db
chown -R 999:999 /data/db
# Set directory permissions to 0700
chmod 0700 /data/db
# Fix permissions on all subdirectories and files
find /data/db -type d -exec chmod 0700 {} \;
find /data/db -type f -exec chmod 0600 {} \;
echo "✓ /data/db permissions fixed recursively (999:999, 0700)"
else
echo "Creating /data/db..."
mkdir -p /data/db
chown 999:999 /data/db
chmod 0700 /data/db
echo "✓ /data/db created (999:999, 0700)"
fi
# Verify permissions
echo "Checking /data/db permissions:"
ls -la /data/db | head -10
ls -la /var/run/ | grep postgresql || echo "Warning: postgres dir not found"
echo "Setup complete."
containers:
main:
env:
DISPATCHARR_ENV: aio # Set to 'aio' for all-in-one mode with embedded PostgreSQL. Currently, only 'aio' is supported.
# DISPATCHARR_LOG_LEVEL: info
persistence:
data:
enabled: true
mountPath: /data
targetSelector:
main:
main:
mountPath: /data
setup-postgres-dirs:
mountPath: /data
postgres-run:
enabled: true
mountPath: /var/run/postgresql