feat(dispatcharr) add dispatcharr (#40814)

**Description**

Add Dispatcharr

⚒️ Fixes  # <!--(issue)-->

**⚙️ Type of change**

- [x] ⚙️ Feature/App addition
- [ ] 🪛 Bugfix
- [ ] ⚠️ Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] 🔃 Refactor of current code
- [ ] 📜 Documentation Changes

**🧪 How Has This Been Tested?**
Tested with app-template

**📃 Notes:**
The init-container is needed for setting the permissions when restoring
from volsync backup.

**✔️ Checklist:**

- [x] ⚖️ My code follows the style guidelines of this project
- [x] 👀 I have performed a self-review of my own code
- [ ] #️⃣ I have commented my code, particularly in hard-to-understand
areas
- [ ] 📄 I have made changes to the documentation
- [ ] 🧪 I have added tests to this description that prove my fix is
effective or that my feature works
- [ ] ⬆️ I increased versions for any altered app according to semantic
versioning
- [x] I made sure the title starts with `feat(chart-name):`,
`fix(chart-name):`, `chore(chart-name):`, `docs(chart-name):` or
`fix(docs):`

** App addition**

If this PR is an app addition please make sure you have done the
following.

- [x] 🖼️ I have added an icon in the Chart's root directory called
`icon.png`

---

_Please don't blindly check all the boxes. Read them and only check
those that apply.
Those checkboxes are there for the reviewer to see what is this all
about and
the status of this PR with a quick glance._
This commit is contained in:
Albert Romkes
2025-10-18 12:09:23 +02:00
committed by GitHub
parent 0defe4df96
commit 9ea1fd1d2f
8 changed files with 162 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
# OWNERS file for Kubernetes
OWNERS
# helm-docs templates
*.gotmpl
# docs folder
/docs
# icon
icon.png
icon.webp
icon-small.webp
@@ -0,0 +1,4 @@
---
title: Changelog
pagefind: false
---
+42
View File
@@ -0,0 +1,42 @@
annotations:
artifacthub.io/links: |-
- name: support
url: https://discord.com/invite/tVsPTHWTtr
max_scale_version: 24.04.1
min_scale_version: 24.04.0
truecharts.org/category: media
truecharts.org/max_helm_version: "3.17"
truecharts.org/max_kubernetes_version: 1.32.0
truecharts.org/min_helm_version: "3.14"
truecharts.org/min_kubernetes_version: 1.24.0
truecharts.org/train: incubator
apiVersion: v2
appVersion: 0.10.4
dependencies:
- name: common
version: 28.25.0
repository: oci://oci.trueforge.org/truecharts
condition: ""
alias: ""
tags: []
import-values: []
deprecated: false
description: Your Ultimate IPTV & Stream Management Companion
home: https://truecharts.org/charts/incubator/dispatcharr
icon: https://truecharts.org/img/hotlink-ok/chart-icons/dispatcharr.webp
keywords:
- dispatcharr
- MediaApp-Other
kubeVersion: '>=1.24.0-0'
maintainers:
- name: TrueCharts
email: info@truecharts.org
url: https://truecharts.org
name: dispatcharr
sources:
- https://github.com/Dispatcharr/Dispatcharr
- https://github.com/trueforge-org/truecharts/tree/master/charts/incubator/dispatcharr
- https://hub.docker.com/r/dispatcharr/dispatcharr
- https://github.com/Dispatcharr/Dispatcharr/blob/main/docker/docker-compose.aio.yml
type: application
version: 0.0.1
+3
View File
@@ -0,0 +1,3 @@
---
title: README
---
Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

@@ -0,0 +1 @@
{{- include "tc.v1.common.lib.chart.notes" $ -}}
@@ -0,0 +1 @@
{{ include "tc.v1.common.loader.all" . }}
+79
View File
@@ -0,0 +1,79 @@
image:
pullPolicy: IfNotPresent
repository: docker.io/dispatcharr/dispatcharr
tag: 0.10.4@sha256:6bdc880e81a818b4b6ddc7e7511743aace0c1a4e0a5e660248561e48cb5f0c13
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.22
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