Publish new changes in catalog

This commit is contained in:
sonicaj
2023-07-04 18:22:15 +00:00
parent 6905a6c910
commit 849f35f315
194 changed files with 4484 additions and 7 deletions

View File

@@ -5,7 +5,7 @@ description: |
annotations:
title: Collabora
type: application
version: 1.2.13
version: 1.2.14
apiVersion: v2
appVersion: '21.11.4.1.1'
kubeVersion: '>=1.16.0-0'

View File

@@ -46,7 +46,10 @@ questions:
type: string
private: true
default: "changeme"
valid_chars: "[a-zA-Z0-9!@#$%^&*?]{8,}"
valid_chars: "[a-zA-Z0-9!@#%^&*?]{8,}"
valid_chars_error: |
Password must be at least 8 characters long</br>
Can contain at numbers, letters, and the following characters: !@#%^&*?
required: true
- variable: dictionaries
label: "Dictionaries to use, leave empty to use all"

View File

@@ -3,9 +3,9 @@ description: Real-time performance monitoring, done right!
annotations:
title: Netdata
type: application
version: 1.0.26
version: 1.0.27
apiVersion: v2
appVersion: v1.40.0
appVersion: v1.40.1
kubeVersion: '>=1.16.0-0'
maintainers:
- name: truenas

View File

@@ -1,6 +1,6 @@
image:
pullPolicy: IfNotPresent
repository: netdata/netdata
tag: v1.40.0
tag: v1.40.1
runAsGroup: 201
runAsUser: 201

View File

@@ -3,7 +3,7 @@ description: WG-Easy is the easiest way to install & manage WireGuard!
annotations:
title: WG Easy
type: application
version: 1.0.8
version: 1.0.9
apiVersion: v2
appVersion: "7"
kubeVersion: ">=1.16.0-0"

View File

@@ -22,7 +22,7 @@ portals:
questions:
- variable: wgUDPPort
label: WireGuard UPD Node Port for WG-Easy
label: WireGuard UDP Node Port for WG-Easy
group: Networking
schema:
type: int

View File

@@ -0,0 +1,6 @@
dependencies:
- name: common
repository: file://../../../common
version: 1.0.9
digest: sha256:c3eb00f142d5d1cdbff7843940c150a00bd916520363e6ee9f459ce61fa92b40
generated: "2023-06-28T16:46:25.707621045+03:00"

View File

@@ -0,0 +1,26 @@
name: bazarr
description: Bazarr is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements.
annotations:
title: Bazarr
type: application
version: 1.0.0
apiVersion: v2
appVersion: '1.2.2'
kubeVersion: '>=1.16.0-0'
maintainers:
- name: truenas
url: https://www.truenas.com/
email: dev@ixsystems.com
dependencies:
- name: common
repository: file://../../../common
version: 1.0.9
home: https://www.bazarr.media/
icon: https://github.com/morpheus65535/bazarr/blob/master/frontend/public/images/logo128.png?raw=true
sources:
- https://github.com/onedr0p/containers/tree/main/apps/bazarr
- https://github.com/truenas/charts/tree/master/library/ix-dev/community/bazarr
- https://github.com/morpheus65535/bazarr
keywords:
- media
- subtitles

View File

@@ -0,0 +1,8 @@
# Bazarr
[Bazarr](https://www.bazarr.media/) is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements.
> When application is installed, a container will be launched with **root** privileges.
> This is required in order to apply the correct permissions to the `Bazarr` directories.
> Afterward, the `Bazarr` container will run as a **non**-root user (Default: `568`).
> All mounted storage(s) will be `chown`ed only if the parent directory does not match the configured user.

View File

@@ -0,0 +1,8 @@
# Bazarr
[Bazarr](https://www.bazarr.media/) is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements.
> When application is installed, a container will be launched with **root** privileges.
> This is required in order to apply the correct permissions to the `Bazarr` directories.
> Afterward, the `Bazarr` container will run as a **non**-root user (Default: `568`).
> All mounted storage(s) will be `chown`ed only if the parent directory does not match the configured user.

Binary file not shown.

View File

@@ -0,0 +1,11 @@
bazarrNetwork:
webPort: 31000
bazarrRunAs:
user: 1000
group: 1000
bazarrStorage:
config:
type: hostPath
hostPath: /mnt/{{ .Release.Namespace }}/config

View File

@@ -0,0 +1,14 @@
bazarrNetwork:
webPort: 31000
bazarrStorage:
config:
type: hostPath
hostPath: /mnt/{{ .Release.Namespace }}/config
additionalStorages:
- type: hostPath
hostPath: /mnt/{{ .Release.Namespace }}/series
mountPath: /series
- type: hostPath
hostPath: /mnt/{{ .Release.Namespace }}/movies
mountPath: /movies

View File

@@ -0,0 +1,8 @@
bazarrNetwork:
webPort: 30000
hostNetwork: true
bazarrStorage:
config:
type: hostPath
hostPath: /mnt/{{ .Release.Namespace }}/config

View File

@@ -0,0 +1,26 @@
image:
repository: ghcr.io/onedr0p/bazarr
pullPolicy: IfNotPresent
tag: '1.2.2'
resources:
limits:
cpu: 4000m
memory: 8Gi
bazarrConfig:
additionalEnvs: []
bazarrNetwork:
webPort: 30046
hostNetwork: false
bazarrRunAs:
user: 568
group: 568
bazarrStorage:
config:
type: ixVolume
datasetName: config
additionalStorages: []

View File

@@ -0,0 +1,8 @@
runAsContext:
- userName: bazarr
groupName: bazarr
gid: 568
uid: 568
description: Bazarr can run as any non-root user.
capabilities: []
hostMounts: []

View File

@@ -0,0 +1,218 @@
groups:
- name: Bazarr Configuration
description: Configure Bazarr
- name: User and Group Configuration
description: Configure User and Group for Bazarr
- name: Network Configuration
description: Configure Network for Bazarr
- name: Storage Configuration
description: Configure Storage for Bazarr
- name: Resources Configuration
description: Configure Resources for Bazarr
portals:
web_portal:
protocols:
- "$kubernetes-resource_configmap_portal_protocol"
host:
- "$kubernetes-resource_configmap_portal_host"
ports:
- "$kubernetes-resource_configmap_portal_port"
path: "$kubernetes-resource_configmap_portal_path"
questions:
- variable: bazarrConfig
label: ""
group: Bazarr Configuration
schema:
type: dict
attrs:
- variable: additionalEnvs
label: Additional Environment Variables
description: Configure additional environment variables for Bazarr.
schema:
type: list
default: []
items:
- variable: env
label: Environment Variable
schema:
type: dict
attrs:
- variable: name
label: Name
schema:
type: string
required: true
- variable: value
label: Value
schema:
type: string
required: true
- variable: bazarrRunAs
label: ""
group: User and Group Configuration
schema:
type: dict
attrs:
- variable: user
label: User ID
description: The user id that Bazarr will run as.
schema:
type: int
min: 2
default: 568
required: true
- variable: group
label: Group ID
description: The group id that Bazarr will run as.
schema:
type: int
min: 2
default: 568
required: true
- variable: bazarrNetwork
label: ""
group: Network Configuration
schema:
type: dict
attrs:
- variable: webPort
label: Web Port
description: The port for the Bazarr Web UI.
schema:
type: int
default: 30046
min: 9000
max: 65535
required: true
- variable: hostNetwork
label: Host Network
description: |
Bind to the host network. It's recommended to keep this disabled.</br>
schema:
type: boolean
default: false
- variable: bazarrStorage
label: ""
group: Storage Configuration
schema:
type: dict
attrs:
- variable: config
label: Bazarr Config Storage
description: The path to store Bazarr Configuration.
schema:
type: dict
attrs:
- variable: type
label: Type
description: |
ixVolume: Is dataset created automatically by the system.</br>
Host Path: Is a path that already exists on the system.
schema:
type: string
required: true
default: "ixVolume"
enum:
- value: "hostPath"
description: Host Path (Path that already exists on the system)
- value: "ixVolume"
description: ixVolume (Dataset created automatically by the system)
- variable: datasetName
label: Dataset Name
schema:
type: string
show_if: [["type", "=", "ixVolume"]]
required: true
hidden: true
immutable: true
default: "config"
$ref:
- "normalize/ixVolume"
- variable: hostPath
label: Host Path
schema:
type: hostpath
show_if: [["type", "=", "hostPath"]]
immutable: true
required: true
- variable: additionalStorages
label: Additional Storage
description: Additional storage for Bazarr.
schema:
type: list
default: []
items:
- variable: storageEntry
label: Storage Entry
schema:
type: dict
attrs:
- variable: type
label: Type
description: |
ixVolume: Is dataset created automatically by the system.</br>
Host Path: Is a path that already exists on the system.
schema:
type: string
required: true
default: "ixVolume"
enum:
- value: "hostPath"
description: Host Path (Path that already exists on the system)
- value: "ixVolume"
description: ixVolume (Dataset created automatically by the system)
- variable: mountPath
label: Mount Path
description: The path inside the container to mount the storage.
schema:
type: path
required: true
- variable: hostPath
label: Host Path
description: The host path to use for storage.
schema:
type: hostpath
show_if: [["type", "=", "hostPath"]]
required: true
- variable: datasetName
label: Dataset Name
description: The name of the dataset to use for storage.
schema:
type: string
show_if: [["type", "=", "ixVolume"]]
required: true
immutable: true
default: "storage_entry"
$ref:
- "normalize/ixVolume"
- variable: resources
group: Resources Configuration
label: ""
schema:
type: dict
attrs:
- variable: limits
label: Limits
schema:
type: dict
attrs:
- variable: cpu
label: CPU
description: CPU limit for Bazarr.
schema:
type: string
default: "4000m"
required: true
- variable: memory
label: Memory
description: Memory limit for Bazarr.
schema:
type: string
default: "8Gi"
required: true

View File

@@ -0,0 +1 @@
{{ include "ix.v1.common.lib.chart.notes" $ }}

View File

@@ -0,0 +1,51 @@
{{- define "bazarr.workload" -}}
workload:
bazarr:
enabled: true
primary: true
type: Deployment
podSpec:
hostNetwork: {{ .Values.bazarrNetwork.hostNetwork }}
containers:
bazarr:
enabled: true
primary: true
imageSelector: image
securityContext:
runAsUser: {{ .Values.bazarrRunAs.user }}
runAsGroup: {{ .Values.bazarrRunAs.group }}
command:
- /entrypoint.sh
args:
- --port
- {{ .Values.bazarrNetwork.webPort | quote }}
{{ with .Values.bazarrConfig.additionalEnvs }}
envList:
{{ range $env := . }}
- name: {{ $env.name }}
value: {{ $env.value }}
{{ end }}
{{ end }}
probes:
liveness:
enabled: true
type: http
port: "{{ .Values.bazarrNetwork.webPort }}"
path: /ping
readiness:
enabled: true
type: http
port: "{{ .Values.bazarrNetwork.webPort }}"
path: /ping
startup:
enabled: true
type: http
port: "{{ .Values.bazarrNetwork.webPort }}"
path: /ping
initContainers:
{{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions"
"UID" .Values.bazarrRunAs.user
"GID" .Values.bazarrRunAs.group
"mode" "check"
"type" "init") | nindent 8 }}
{{- end -}}

View File

@@ -0,0 +1,34 @@
{{- define "bazarr.persistence" -}}
persistence:
config:
enabled: true
type: {{ .Values.bazarrStorage.config.type }}
datasetName: {{ .Values.bazarrStorage.config.datasetName | default "" }}
hostPath: {{ .Values.bazarrStorage.config.hostPath | default "" }}
targetSelector:
bazarr:
bazarr:
mountPath: /config
01-permissions:
mountPath: /mnt/directories/config
tmp:
enabled: true
type: emptyDir
targetSelector:
bazarr:
bazarr:
mountPath: /tmp
{{- range $idx, $storage := .Values.bazarrStorage.additionalStorages }}
{{ printf "bazarr-%v" (int $idx) }}:
enabled: true
type: {{ $storage.type }}
datasetName: {{ $storage.datasetName | default "" }}
hostPath: {{ $storage.hostPath | default "" }}
targetSelector:
bazarr:
bazarr:
mountPath: {{ $storage.mountPath }}
01-permissions:
mountPath: /mnt/directories{{ $storage.mountPath }}
{{- end }}
{{- end -}}

View File

@@ -0,0 +1,12 @@
{{- define "bazarr.portal" -}}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: portal
data:
path: "/"
port: {{ .Values.bazarrNetwork.webPort | quote }}
protocol: http
host: $node_ip
{{- end -}}

View File

@@ -0,0 +1,15 @@
{{- define "bazarr.service" -}}
service:
bazarr:
enabled: true
primary: true
type: NodePort
targetSelector: bazarr
ports:
webui:
enabled: true
primary: true
port: {{ .Values.bazarrNetwork.webPort }}
nodePort: {{ .Values.bazarrNetwork.webPort }}
targetSelector: bazarr
{{- end -}}

View File

@@ -0,0 +1,11 @@
{{- include "ix.v1.common.loader.init" . -}}
{{/* Merge the templates with Values */}}
{{- $_ := mustMergeOverwrite .Values (include "bazarr.workload" $ | fromYaml) -}}
{{- $_ := mustMergeOverwrite .Values (include "bazarr.service" $ | fromYaml) -}}
{{- $_ := mustMergeOverwrite .Values (include "bazarr.persistence" $ | fromYaml) -}}
{{/* Create the configmap for portal manually*/}}
{{- include "bazarr.portal" $ -}}
{{- include "ix.v1.common.loader.apply" . -}}

View File

@@ -0,0 +1,8 @@
icon_url: https://github.com/morpheus65535/bazarr/blob/master/frontend/public/images/logo128.png?raw=true
categories:
- media
screenshots:
- https://www.bazarr.media/assets/img/manual.png
- https://www.bazarr.media/assets/img/upgrade.png
tags:
- subtitles

View File

@@ -0,0 +1,6 @@
dependencies:
- name: common
repository: file://../../../common
version: 1.0.8
digest: sha256:254efaa1285f634b7a80b7baadeadbd20a680f7fee49d1d9d3c4618aa0d657ad
generated: "2023-06-13T16:21:59.289590931+03:00"

View File

@@ -0,0 +1,26 @@
name: deluge
description: Deluge is a lightweight, Free Software, cross-platform BitTorrent client.
annotations:
title: Deluge
type: application
version: 1.0.0
apiVersion: v2
appVersion: '9.5.3'
kubeVersion: '>=1.16.0-0'
maintainers:
- name: truenas
url: https://www.truenas.com/
email: dev@ixsystems.com
dependencies:
- name: common
repository: file://../../../common
version: 1.0.8
home: https://deluge-torrent.org
icon: https://deluge-torrent.org/images/deluge_logo.png
sources:
- https://hub.docker.com/r/linuxserver/deluge
- https://github.com/truenas/charts/tree/master/community/deluge
- https://deluge-torrent.org/
keywords:
- torrent
- download

View File

@@ -0,0 +1,3 @@
# Deluge
[Deluge](https://deluge-torrent.org/) is a lightweight, Free Software, cross-platform BitTorrent client.

View File

@@ -0,0 +1,3 @@
# Deluge
[Deluge](https://deluge-torrent.org/) is a lightweight, Free Software, cross-platform BitTorrent client.

Binary file not shown.

View File

@@ -0,0 +1,7 @@
delugeStorage:
config:
type: hostPath
hostPath: /mnt/{{ .Release.Name }}/config
downloads:
type: hostPath
hostPath: /mnt/{{ .Release.Name }}/downloads

View File

@@ -0,0 +1,10 @@
delugeStorage:
config:
type: hostPath
hostPath: /mnt/{{ .Release.Name }}/config
downloads:
type: hostPath
hostPath: /mnt/{{ .Release.Name }}/downloads
delugeNetwork:
hostNetwork: true

View File

@@ -0,0 +1,36 @@
image:
repository: linuxserver/deluge
pullPolicy: IfNotPresent
tag: '2.1.1'
resources:
limits:
cpu: 4000m
memory: 8Gi
delugeConfig:
additionalEnvs: []
delugeNetwork:
hostNetwork: false
webPort: 30038
torrentPort: 30039
delugeID:
user: 568
group: 568
delugeStorage:
config:
type: ixVolume
datasetName: config
downloads:
type: ixVolume
datasetName: downloads
additionalStorages: []
notes:
custom: |
Default credentials:
- Username: admin
- Password: deluge

View File

@@ -0,0 +1,18 @@
runAsContext:
- userName: root
groupName: root
gid: 0
uid: 0
description: Deluge requires root privileges to start the Deluge process
capabilities:
- name: CHOWN
description: Deluge is able to chown files.
- name: DAC_OVERRIDE
description: Deluge is able to bypass permission checks.
- name: FOWNER
description: Deluge is able bypass permission checks for it's sub-processes.
- name: SETGID
description: Deluge is able to set group ID for it's sub-processes.
- name: SETUID
description: Deluge is able to set user ID for it's sub-processes.
hostMounts: []

View File

@@ -0,0 +1,280 @@
groups:
- name: Deluge Configuration
description: Configure Deluge
- name: User and Group Configuration
description: Configure User and Group for Deluge
- name: Network Configuration
description: Configure Network for Deluge
- name: Storage Configuration
description: Configure Storage for Deluge
- name: Resources Configuration
description: Configure Resources for Deluge
portals:
web_portal:
protocols:
- "$kubernetes-resource_configmap_portal_protocol"
host:
- "$kubernetes-resource_configmap_portal_host"
ports:
- "$kubernetes-resource_configmap_portal_port"
path: "$kubernetes-resource_configmap_portal_path"
questions:
- variable: TZ
group: Deluge Configuration
label: Timezone
schema:
type: string
default: Etc/UTC
required: true
$ref:
- definitions/timezone
- variable: delugeConfig
label: ""
group: Deluge Configuration
schema:
type: dict
attrs:
- variable: additionalEnvs
label: Additional Environment Variables
description: Configure additional environment variables for Deluge.
schema:
type: list
default: []
items:
- variable: env
label: Environment Variable
schema:
type: dict
attrs:
- variable: name
label: Name
schema:
type: string
required: true
- variable: value
label: Value
schema:
type: string
required: true
- variable: delugeID
label: ""
group: User and Group Configuration
schema:
type: dict
attrs:
- variable: user
label: User ID
description: he user id that Deluge files will be owned by.
schema:
type: int
min: 2
default: 568
required: true
- variable: group
label: Group ID
description: The group id that Deluge files will be owned by.
schema:
type: int
min: 2
default: 568
required: true
- variable: delugeNetwork
label: ""
group: Network Configuration
schema:
type: dict
attrs:
- variable: hostNetwork
label: Host Network
description: |
Bind to the host network. It's recommended to keep this disabled.</br>
schema:
type: boolean
default: false
- variable: webPort
label: Web Port
description: The port for the Deluge Web UI.
schema:
type: int
show_if: [["hostNetwork", "=", false]]
default: 30038
min: 9000
max: 65535
required: true
- variable: torrentPort
label: Torrent Port
description: |
The port for the Deluge Torrent.</br>
Applies to both TCP and UDP.
(Internal port is always 6881)
schema:
type: int
show_if: [["hostNetwork", "=", false]]
default: 30039
min: 9000
max: 65535
required: true
- variable: delugeStorage
label: ""
group: Storage Configuration
schema:
type: dict
attrs:
- variable: config
label: Deluge Config Storage
description: The path to store Deluge Configuration.
schema:
type: dict
attrs:
- variable: type
label: Type
description: |
ixVolume: Is dataset created automatically by the system.</br>
Host Path: Is a path that already exists on the system.
schema:
type: string
required: true
default: "ixVolume"
enum:
- value: "hostPath"
description: Host Path (Path that already exists on the system)
- value: "ixVolume"
description: ixVolume (Dataset created automatically by the system)
- variable: datasetName
label: Dataset Name
schema:
type: string
show_if: [["type", "=", "ixVolume"]]
required: true
hidden: true
immutable: true
default: "config"
$ref:
- "normalize/ixVolume"
- variable: hostPath
label: Host Path
schema:
type: hostpath
show_if: [["type", "=", "hostPath"]]
immutable: true
required: true
- variable: downloads
label: Deluge Downloads Storage
description: The path to store Deluge Downloads.
schema:
type: dict
attrs:
- variable: type
label: Type
description: |
ixVolume: Is dataset created automatically by the system.</br>
Host Path: Is a path that already exists on the system.
schema:
type: string
required: true
default: "ixVolume"
enum:
- value: "hostPath"
description: Host Path (Path that already exists on the system)
- value: "ixVolume"
description: ixVolume (Dataset created automatically by the system)
- variable: datasetName
label: Dataset Name
schema:
type: string
show_if: [["type", "=", "ixVolume"]]
required: true
hidden: true
immutable: true
default: "downloads"
$ref:
- "normalize/ixVolume"
- variable: hostPath
label: Host Path
schema:
type: hostpath
show_if: [["type", "=", "hostPath"]]
immutable: true
required: true
- variable: additionalStorages
label: Additional Storage
description: Additional storage for Deluge.
schema:
type: list
default: []
items:
- variable: storageEntry
label: Storage Entry
schema:
type: dict
attrs:
- variable: type
label: Type
description: |
ixVolume: Is dataset created automatically by the system.</br>
Host Path: Is a path that already exists on the system.
schema:
type: string
required: true
default: "ixVolume"
enum:
- value: "hostPath"
description: Host Path (Path that already exists on the system)
- value: "ixVolume"
description: ixVolume (Dataset created automatically by the system)
- variable: mountPath
label: Mount Path
description: The path inside the container to mount the storage.
schema:
type: path
required: true
- variable: hostPath
label: Host Path
description: The host path to use for storage.
schema:
type: hostpath
show_if: [["type", "=", "hostPath"]]
required: true
- variable: datasetName
label: Dataset Name
description: The name of the dataset to use for storage.
schema:
type: string
show_if: [["type", "=", "ixVolume"]]
required: true
immutable: true
default: "storage_entry"
$ref:
- "normalize/ixVolume"
- variable: resources
group: Resources Configuration
label: ""
schema:
type: dict
attrs:
- variable: limits
label: Limits
schema:
type: dict
attrs:
- variable: cpu
label: CPU
description: CPU limit for Deluge.
schema:
type: string
default: "4000m"
required: true
- variable: memory
label: Memory
description: Memory limit for Deluge.
schema:
type: string
default: "8Gi"
required: true

View File

@@ -0,0 +1 @@
{{ include "ix.v1.common.lib.chart.notes" $ }}

View File

@@ -0,0 +1,118 @@
{{- define "deluge.workload" -}}
workload:
deluge:
enabled: true
primary: true
type: Deployment
podSpec:
securityContext:
fsGroup: {{ .Values.delugeID.group }}
hostNetwork: {{ .Values.delugeNetwork.hostNetwork }}
containers:
deluge:
enabled: true
primary: true
imageSelector: image
securityContext:
runAsUser: 0
runAsGroup: 0
runAsNonRoot: false
readOnlyRootFilesystem: false
capabilities:
add:
- CHOWN
- DAC_OVERRIDE
- FOWNER
- SETGID
- SETUID
{{ with .Values.delugeConfig.additionalEnvs }}
envList:
{{ range $env := . }}
- name: {{ $env.name }}
value: {{ $env.value }}
{{ end }}
{{ end }}
probes:
liveness:
enabled: true
type: http
port: 8112
path: /
readiness:
enabled: true
type: http
port: 8112
path: /
startup:
enabled: true
type: http
port: 8112
path: /
{{/* Service */}}
service:
deluge:
enabled: true
primary: true
type: NodePort
targetSelector: deluge
ports:
webui:
enabled: true
primary: true
port: {{ .Values.delugeNetwork.webPort }}
nodePort: {{ .Values.delugeNetwork.webPort }}
targetPort: 8112
targetSelector: deluge
torrent:
enabled: true
type: NodePort
targetSelector: deluge
ports:
tcp:
enabled: true
primary: true
port: {{ .Values.delugeNetwork.torrentPort }}
nodePort: {{ .Values.delugeNetwork.torrentPort }}
targetPort: 6881
targetSelector: deluge
udp:
enabled: true
port: {{ .Values.delugeNetwork.torrentPort }}
nodePort: {{ .Values.delugeNetwork.torrentPort }}
targetPort: 6881
protocol: udp
targetSelector: deluge
{{/* Persistence */}}
persistence:
config:
enabled: true
type: {{ .Values.delugeStorage.config.type }}
datasetName: {{ .Values.delugeStorage.config.datasetName | default "" }}
hostPath: {{ .Values.delugeStorage.config.hostPath | default "" }}
targetSelector:
deluge:
deluge:
mountPath: /config
downloads:
enabled: true
type: {{ .Values.delugeStorage.downloads.type }}
datasetName: {{ .Values.delugeStorage.downloads.datasetName | default "" }}
hostPath: {{ .Values.delugeStorage.downloads.hostPath | default "" }}
targetSelector:
deluge:
deluge:
mountPath: /downloads
{{- range $idx, $storage := .Values.delugeStorage.additionalStorages }}
{{ printf "deluge-%v" (int $idx) }}:
enabled: true
type: {{ $storage.type }}
datasetName: {{ $storage.datasetName | default "" }}
hostPath: {{ $storage.hostPath | default "" }}
targetSelector:
deluge:
deluge:
mountPath: {{ $storage.mountPath }}
{{- end }}
{{- end -}}

View File

@@ -0,0 +1,12 @@
{{- define "deluge.portal" -}}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: portal
data:
path: "/"
port: {{ .Values.delugeNetwork.webPort | quote }}
protocol: http
host: $node_ip
{{- end -}}

View File

@@ -0,0 +1,9 @@
{{- include "ix.v1.common.loader.init" . -}}
{{/* Merge the templates with Values */}}
{{- $_ := mustMergeOverwrite .Values (include "deluge.workload" $ | fromYaml) -}}
{{/* Create the configmap for portal manually*/}}
{{- include "deluge.portal" $ -}}
{{- include "ix.v1.common.loader.apply" . -}}

View File

@@ -0,0 +1,7 @@
icon_url: https://deluge-torrent.org/images/deluge_logo.png
categories:
- media
screenshots: []
tags:
- torrent
- download

View File

@@ -0,0 +1,6 @@
dependencies:
- name: common
repository: file://../../../common
version: 1.0.8
digest: sha256:254efaa1285f634b7a80b7baadeadbd20a680f7fee49d1d9d3c4618aa0d657ad
generated: "2023-06-26T19:30:25.999950732+03:00"

View File

@@ -0,0 +1,26 @@
name: filebrowser
description: File Browser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit your files.
annotations:
title: File Browser
type: application
version: 1.0.0
apiVersion: v2
appVersion: 'v2.23.0'
kubeVersion: '>=1.16.0-0'
maintainers:
- name: truenas
url: https://www.truenas.com/
email: dev@ixsystems.com
dependencies:
- name: common
repository: file://../../../common
version: 1.0.8
home: https://filebrowser.org
icon: https://raw.githubusercontent.com/filebrowser/logo/master/banner.png
sources:
- https://github.com/filebrowser/filebrowser
- https://github.com/truenas/charts/tree/master/library/ix-dev/community/filebrowser
- https://hub.docker.com/r/filebrowser/filebrowser
keywords:
- files
- browser

View File

@@ -0,0 +1,28 @@
# Filebrowser
[Filebrowser](https://filebrowser.org) provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit your files.
> When application is installed, a container will be launched with **root** privileges.
> This is required in order to apply the correct permissions to the `Filebrowser` directories.
> Afterward, the `Filebrowser` container will run as a **non**-root user (Default: `568`).
> All mounted storage(s) will be `chown`ed only if the parent directory does not match the configured user.
You can configure further the settings by using Environment Variables.
See [Filebrowser Documentation](https://filebrowser.org/cli/filebrowser) for more information.
Use the format `FB_OPTION_NAME` where the option name is the name of the option you want to set.
You can also edit the configuration file `/config/filebrowser.json`.
Note that the following options are already set and will always take precedence
over the environment variables and the configuration file:
- `FB_ROOT`/`--root` is set to `/data` (Any additional volume mounted will be under this directory)
- `FB_PORT`/`--port` is set to `30044` (Or the port you configured in the installation wizard)
- `FB_ADDRESS`/`--address` is set to `0.0.0.0` (It will listen on all interfaces **inside** the container)
- `FB_DATABASE`/`--database` is set to `/config/filebrowser.db`
- `FB_CONFIG`/`--config` is set to `/config/filebrowser.json`
Also when a certificate is selected
- `FB_CERT`/`--cert` is set to `/config/certs/tls.crt`
- `FB_KEY`/`--key` is set to `/config/certs/tls.key`

View File

@@ -0,0 +1,28 @@
# Filebrowser
[Filebrowser](https://filebrowser.org) provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit your files.
> When application is installed, a container will be launched with **root** privileges.
> This is required in order to apply the correct permissions to the `Filebrowser` directories.
> Afterward, the `Filebrowser` container will run as a **non**-root user (Default: `568`).
> All mounted storage(s) will be `chown`ed only if the parent directory does not match the configured user.
You can configure further the settings by using Environment Variables.
See [Filebrowser Documentation](https://filebrowser.org/cli/filebrowser) for more information.
Use the format `FB_OPTION_NAME` where the option name is the name of the option you want to set.
You can also edit the configuration file `/config/filebrowser.json`.
Note that the following options are already set and will always take precedence
over the environment variables and the configuration file:
- `FB_ROOT`/`--root` is set to `/data` (Any additional volume mounted will be under this directory)
- `FB_PORT`/`--port` is set to `30044` (Or the port you configured in the installation wizard)
- `FB_ADDRESS`/`--address` is set to `0.0.0.0` (It will listen on all interfaces **inside** the container)
- `FB_DATABASE`/`--database` is set to `/config/filebrowser.db`
- `FB_CONFIG`/`--config` is set to `/config/filebrowser.json`
Also when a certificate is selected
- `FB_CERT`/`--cert` is set to `/config/certs/tls.crt`
- `FB_KEY`/`--key` is set to `/config/certs/tls.key`

Binary file not shown.

View File

@@ -0,0 +1,11 @@
filebrowserStorage:
config:
type: hostPath
hostPath: /mnt/{{ .Release.Name }}/config
additionalStorages:
- type: hostPath
hostPath: /mnt/{{ .Release.Name }}/data1
mountPath: /data1
- type: hostPath
hostPath: /mnt/{{ .Release.Name }}/data2
mountPath: /data2

View File

@@ -0,0 +1,104 @@
filebrowserStorage:
config:
type: hostPath
hostPath: /mnt/{{ .Release.Name }}/config
additionalStorages:
- type: hostPath
hostPath: /mnt/{{ .Release.Name }}/data1
mountPath: /data1
- type: hostPath
hostPath: /mnt/{{ .Release.Name }}/data2
mountPath: /data2
filebrowserNetwork:
certificateID: 1
filebrowserRunAs:
user: 2000
group: 2000
ixCertificates:
"1":
certificate: |
-----BEGIN CERTIFICATE-----
MIIEdjCCA16gAwIBAgIDYFMYMA0GCSqGSIb3DQEBCwUAMGwxDDAKBgNVBAMMA2Fz
ZDELMAkGA1UEBhMCVVMxDTALBgNVBAgMBGFzZGYxCzAJBgNVBAcMAmFmMQ0wCwYD
VQQKDARhc2RmMQwwCgYDVQQLDANhc2QxFjAUBgkqhkiG9w0BCQEWB2FAYS5jb20w
HhcNMjEwODMwMjMyMzU0WhcNMjMxMjAzMjMyMzU0WjBuMQswCQYDVQQDDAJhZDEL
MAkGA1UEBhMCVVMxDTALBgNVBAgMBGFzZGYxDTALBgNVBAcMBGFzZGYxDTALBgNV
BAoMBGFkc2YxDTALBgNVBAsMBGFzZGYxFjAUBgkqhkiG9w0BCQEWB2FAYS5jb20w
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7+1xOHRQyOnQTHFcrdasX
Zl0gzutVlA890a1wiQpdD5dOtCLo7+eqVYjqVKo9W8RUIArXWmBu/AbkH7oVFWC1
P973W1+ArF5sA70f7BZgqRKJTIisuIFIlRETgfnP2pfQmHRZtGaIJRZI4vQCdYgW
2g0KOvvNcZJCVq1OrhKiNiY1bWCp66DGg0ic6OEkZFHTm745zUNQaf2dNgsxKU0H
PGjVLJI//yrRFAOSBUqgD4c50krnMF7fU/Fqh+UyOu8t6Y/HsySh3urB+Zie331t
AzV6QV39KKxRflNx/yuWrtIEslGTm+xHKoCYJEk/nZ3mX8Y5hG6wWAb7A/FuDVg3
AgMBAAGjggEdMIIBGTAnBgNVHREEIDAehwTAqAADhwTAqAAFhwTAqAC2hwTAqACB
hwTAqACSMB0GA1UdDgQWBBQ4G2ff4tgZl4vmo4xCfqmJhdqShzAMBgNVHRMBAf8E
AjAAMIGYBgNVHSMEgZAwgY2AFLlYf9L99nxJDcpCM/LT3V5hQ/a3oXCkbjBsMQww
CgYDVQQDDANhc2QxCzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARhc2RmMQswCQYDVQQH
DAJhZjENMAsGA1UECgwEYXNkZjEMMAoGA1UECwwDYXNkMRYwFAYJKoZIhvcNAQkB
FgdhQGEuY29tggNgUxcwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwEwDgYDVR0PAQH/
BAQDAgWgMA0GCSqGSIb3DQEBCwUAA4IBAQA6FpOInEHB5iVk3FP67GybJ29vHZTD
KQHbQgmg8s4L7qIsA1HQ+DMCbdylpA11x+t/eL/n48BvGw2FNXpN6uykhLHJjbKR
h8yITa2KeD3LjLYhScwIigXmTVYSP3km6s8jRL6UKT9zttnIHyXVpBDya6Q4WTMx
fmfC6O7t1PjQ5ZyVtzizIUP8ah9n4TKdXU4A3QIM6WsJXpHb+vqp1WDWJ7mKFtgj
x5TKv3wcPnktx0zMPfLb5BTSE9rc9djcBG0eIAsPT4FgiatCUChe7VhuMnqskxEz
MymJLoq8+mzucRwFkOkR2EIt1x+Irl2mJVMeBow63rVZfUQBD8h++LqB
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEhDCCA2ygAwIBAgIDYFMXMA0GCSqGSIb3DQEBCwUAMGwxDDAKBgNVBAMMA2Fz
ZDELMAkGA1UEBhMCVVMxDTALBgNVBAgMBGFzZGYxCzAJBgNVBAcMAmFmMQ0wCwYD
VQQKDARhc2RmMQwwCgYDVQQLDANhc2QxFjAUBgkqhkiG9w0BCQEWB2FAYS5jb20w
HhcNMjEwODMwMjMyMDQ1WhcNMzEwODI4MjMyMDQ1WjBsMQwwCgYDVQQDDANhc2Qx
CzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARhc2RmMQswCQYDVQQHDAJhZjENMAsGA1UE
CgwEYXNkZjEMMAoGA1UECwwDYXNkMRYwFAYJKoZIhvcNAQkBFgdhQGEuY29tMIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq//c0hEEr83CS1pMgsHX50jt
2MqIbcf63UUNJTiYpUUvUQSFJFc7m/dr+RTZvu97eDCnD5K2qkHHvTPaPZwY+Djf
iy7N641Sz6u/y3Yo3xxs1Aermsfedh48vusJpjbkT2XS44VjbkrpKcWDNVpp3Evd
M7oJotXeUsZ+imiyVCfr4YhoY5gbGh/r+KN9Wf9YKoUyfLLZGwdZkhtX2zIbidsL
Thqi9YTaUHttGinjiBBum234u/CfvKXsfG3yP2gvBGnlvZnM9ktv+lVffYNqlf7H
VmB1bKKk84HtzuW5X76SGAgOG8eHX4x5ZLI1WQUuoQOVRl1I0UCjBtbz8XhwvQID
AQABo4IBLTCCASkwLQYDVR0RBCYwJIcEwKgABYcEwKgAA4cEwKgAkocEwKgAtYcE
wKgAgYcEwKgAtjAdBgNVHQ4EFgQUuVh/0v32fEkNykIz8tPdXmFD9rcwDwYDVR0T
AQH/BAUwAwEB/zCBmAYDVR0jBIGQMIGNgBS5WH/S/fZ8SQ3KQjPy091eYUP2t6Fw
pG4wbDEMMAoGA1UEAwwDYXNkMQswCQYDVQQGEwJVUzENMAsGA1UECAwEYXNkZjEL
MAkGA1UEBwwCYWYxDTALBgNVBAoMBGFzZGYxDDAKBgNVBAsMA2FzZDEWMBQGCSqG
SIb3DQEJARYHYUBhLmNvbYIDYFMXMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
BQcDAjAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAKEocOmVuWlr
zegtKYMe8NhHIkFY9oVn5ym6RHNOJpPH4QF8XYC3Z5+iC5yGh4P/jVe/4I4SF6Ql
PtofU0jNq5vzapt/y+m008eXqPQFmoUOvu+JavoRVcRx2LIP5AgBA1mF56CSREsX
TkuJAA9IUQ8EjnmAoAeKINuPaKxGDuU8BGCMqr/qd564MKNf9XYL+Fb2rlkA0O2d
2No34DQLgqSmST/LAvPM7Cbp6knYgnKmGr1nETCXasg1cueHLnWWTvps2HiPp2D/
+Fq0uqcZLu4Mdo0CPs4e5sHRyldEnRSKh0DVLprq9zr/GMipmPLJUsT5Jed3sj0w
M7Y3vwxshpo=
-----END CERTIFICATE-----
privatekey: |
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC7+1xOHRQyOnQT
HFcrdasXZl0gzutVlA890a1wiQpdD5dOtCLo7+eqVYjqVKo9W8RUIArXWmBu/Abk
H7oVFWC1P973W1+ArF5sA70f7BZgqRKJTIisuIFIlRETgfnP2pfQmHRZtGaIJRZI
4vQCdYgW2g0KOvvNcZJCVq1OrhKiNiY1bWCp66DGg0ic6OEkZFHTm745zUNQaf2d
NgsxKU0HPGjVLJI//yrRFAOSBUqgD4c50krnMF7fU/Fqh+UyOu8t6Y/HsySh3urB
+Zie331tAzV6QV39KKxRflNx/yuWrtIEslGTm+xHKoCYJEk/nZ3mX8Y5hG6wWAb7
A/FuDVg3AgMBAAECggEAapt30rj9DitGTtxAt13pJMEhyYxvvD3WkvmJwguF/Bbu
eW0Ba1c668fMeRCA54FWi1sMqusPS4HUqqUvk+tmyAOsAF4qgD/A4MMSC7uJSVI5
N/JWhJWyhCY94/FPakiO1nbPbVw41bcqtzU2qvparpME2CtxSCbDiqm7aaag3Kqe
EF0fGSUdZ+TYl9JM05+eIyiX+UY19Fg0OjTHMn8nGpxcNTfDBdQ68TKvdo/dtIKL
PLKzJUNNdM8odC4CvQtfGMqaslwZwXkiOl5VJcW21ncj/Y0ngEMKeD/i65ZoqGdR
0FKCQYEAGtM2FvJcZQ92Wsw7yj2bK2MSegVUyLK32QKBgQDe8syVCepPzRsfjfxA
6TZlWcGuTZLhwIx97Ktw3VcQ1f4rLoEYlv0xC2VWBORpzIsJo4I/OLmgp8a+Ga8z
FkVRnq90dV3t4NP9uJlHgcODHnOardC2UUka4olBSCG6zmK4Jxi34lOxhGRkshOo
L4IBeOIB5g+ZrEEXkzfYJHESRQKBgQDX2YhFhGIrT8BAnC5BbXbhm8h6Bhjz8DYL
d+qhVJjef7L/aJxViU0hX9Ba2O8CLK3FZeREFE3hJPiJ4TZSlN4evxs5p+bbNDcA
0mhRI/o3X4ac6IxdRebyYnCOB/Cu94/MzppcZcotlCekKNike7eorCcX4Qavm7Pu
MUuQ+ifmSwKBgEnchoqZzlbBzMqXb4rRuIO7SL9GU/MWp3TQg7vQmJerTZlgvsQ2
wYsOC3SECmhCq4117iCj2luvOdihCboTFsQDnn0mpQe6BIF6Ns3J38wAuqv0CcFd
DKsrge1uyD3rQilgSoAhKzkUc24o0PpXQurZ8YZPgbuXpbj5vPaOnCdBAoGACYc7
wb3XS4wos3FxhUfcwJbM4b4VKeeHqzfu7pI6cU/3ydiHVitKcVe2bdw3qMPqI9Wc
nvi6e17Tbdq4OCsEJx1OiVwFD9YdO3cOTc6lw/3+hjypvZBRYo+/4jUthbu96E+S
dtOzehGZMmDvN0uSzupSi3ZOgkAAUFpyuIKickMCgYAId0PCRjonO2thn/R0rZ7P
//L852uyzYhXKw5/fjFGhQ6LbaLgIRFaCZ0L2809u0HFnNvJjHv4AKP6j+vFQYYY
qQ+66XnfsA9G/bu4MDS9AX83iahD9IdLXQAy8I19prAbpVumKegPbMnNYNB/TYEc
3G15AKCXo7jjOUtHY01DCQ==
-----END PRIVATE KEY-----

View File

@@ -0,0 +1,33 @@
image:
repository: filebrowser/filebrowser
pullPolicy: IfNotPresent
tag: v2.23.0
resources:
limits:
cpu: 4000m
memory: 8Gi
filebrowserConfig:
additionalEnvs: []
filebrowserNetwork:
webPort: 30044
certificateID: 0
hostNetwork: false
filebrowserRunAs:
user: 568
group: 568
filebrowserStorage:
config:
type: ixVolume
datasetName: config
additionalStorages: []
notes:
custom: |
Default credentials:
- username: admin
- password: admin

View File

@@ -0,0 +1,8 @@
runAsContext:
- userName: filebrowser
groupName: filebrowser
gid: 568
uid: 568
description: Filebrowser can run as any non-root user.
capabilities: []
hostMounts: []

View File

@@ -0,0 +1,230 @@
groups:
- name: Filebrowser Configuration
description: Configure Filebrowser
- name: User and Group Configuration
description: Configure User and Group for Filebrowser
- name: Network Configuration
description: Configure Network for Filebrowser
- name: Storage Configuration
description: Configure Storage for Filebrowser
- name: Resources Configuration
description: Configure Resources for Filebrowser
portals:
web_portal:
protocols:
- "$kubernetes-resource_configmap_portal_protocol"
host:
- "$kubernetes-resource_configmap_portal_host"
ports:
- "$kubernetes-resource_configmap_portal_port"
path: "$kubernetes-resource_configmap_portal_path"
questions:
- variable: filebrowserConfig
label: ""
group: Filebrowser Configuration
schema:
type: dict
attrs:
- variable: additionalEnvs
label: Additional Environment Variables
description: Configure additional environment variables for Filebrowser.
schema:
type: list
default: []
items:
- variable: env
label: Environment Variable
schema:
type: dict
attrs:
- variable: name
label: Name
schema:
type: string
required: true
- variable: value
label: Value
schema:
type: string
required: true
- variable: filebrowserRunAs
label: ""
group: User and Group Configuration
schema:
type: dict
attrs:
- variable: user
label: User ID
description: The user id that Filebrowser will run as.
schema:
type: int
min: 2
default: 568
required: true
- variable: group
label: Group ID
description: The group id that Filebrowser will run as.
schema:
type: int
min: 2
default: 568
required: true
- variable: filebrowserNetwork
label: ""
group: Network Configuration
schema:
type: dict
attrs:
- variable: webPort
label: Web Port
description: The port for the Filebrowser Web UI.
schema:
type: int
default: 30044
min: 9000
max: 65535
required: true
- variable: certificateID
label: Certificate
description: |
The certificate to use for Filebrowser.
schema:
type: int
"null": true
$ref:
- "definitions/certificate"
- variable: hostNetwork
label: Host Network
description: |
Bind to the host network. It's recommended to keep this disabled.</br>
schema:
type: boolean
default: false
- variable: filebrowserStorage
label: ""
group: Storage Configuration
schema:
type: dict
attrs:
- variable: config
label: Filebrowser Config Storage
description: The path to store Filebrowser Configuration.
schema:
type: dict
attrs:
- variable: type
label: Type
description: |
ixVolume: Is dataset created automatically by the system.</br>
Host Path: Is a path that already exists on the system.
schema:
type: string
required: true
default: "ixVolume"
enum:
- value: "hostPath"
description: Host Path (Path that already exists on the system)
- value: "ixVolume"
description: ixVolume (Dataset created automatically by the system)
- variable: datasetName
label: Dataset Name
schema:
type: string
show_if: [["type", "=", "ixVolume"]]
required: true
hidden: true
immutable: true
default: "config"
$ref:
- "normalize/ixVolume"
- variable: hostPath
label: Host Path
schema:
type: hostpath
show_if: [["type", "=", "hostPath"]]
immutable: true
required: true
- variable: additionalStorages
label: Additional Storage
description: Additional storage for Filebrowser.
schema:
type: list
default:
- type: hostPath
mountPath: /my_data
hostPath: ""
items:
- variable: storageEntry
label: Storage Entry
schema:
type: dict
attrs:
- variable: type
label: Type
description: |
ixVolume: Is dataset created automatically by the system.</br>
Host Path: Is a path that already exists on the system.
schema:
type: string
required: true
default: "ixVolume"
enum:
- value: "hostPath"
description: Host Path (Path that already exists on the system)
- value: "ixVolume"
description: ixVolume (Dataset created automatically by the system)
- variable: mountPath
label: Mount Path
description: The path inside the container to mount the storage.
schema:
type: path
required: true
- variable: hostPath
label: Host Path
description: The host path to use for storage.
schema:
type: hostpath
show_if: [["type", "=", "hostPath"]]
required: true
- variable: datasetName
label: Dataset Name
description: The name of the dataset to use for storage.
schema:
type: string
show_if: [["type", "=", "ixVolume"]]
required: true
immutable: true
default: "storage_entry"
$ref:
- "normalize/ixVolume"
- variable: resources
group: Resources Configuration
label: ""
schema:
type: dict
attrs:
- variable: limits
label: Limits
schema:
type: dict
attrs:
- variable: cpu
label: CPU
description: CPU limit for Filebrowser.
schema:
type: string
default: "4000m"
required: true
- variable: memory
label: Memory
description: Memory limit for Filebrowser.
schema:
type: string
default: "8Gi"
required: true

View File

@@ -0,0 +1 @@
{{ include "ix.v1.common.lib.chart.notes" $ }}

View File

@@ -0,0 +1,87 @@
{{- define "filebrowser.workload" -}}
{{- $configBasePath := "/config" -}}
{{- $scheme := "http" }}
workload:
filebrowser:
enabled: true
primary: true
type: Deployment
podSpec:
hostNetwork: {{ .Values.filebrowserNetwork.hostNetwork }}
containers:
filebrowser:
enabled: true
primary: true
imageSelector: image
securityContext:
runAsUser: {{ .Values.filebrowserRunAs.user }}
runAsGroup: {{ .Values.filebrowserRunAs.group }}
args:
- --config
- {{ $configBasePath }}/filebrowser.json
- --database
- {{ $configBasePath }}/filebrowser.db
- --port
- "{{ .Values.filebrowserNetwork.webPort }}"
- --address
- "0.0.0.0"
- --root
- /data
{{- if .Values.filebrowserNetwork.certificateID }}
- --cert
- {{ $configBasePath }}/certs/tls.crt
- --key
- {{ $configBasePath }}/certs/tls.key
{{- $scheme = "https" -}}
{{- end -}}
{{ with .Values.filebrowserConfig.additionalEnvs }}
envList:
{{ range $env := . }}
- name: {{ $env.name }}
value: {{ $env.value }}
{{ end }}
{{ end }}
probes:
liveness:
enabled: true
type: {{ $scheme }}
port: "{{ .Values.filebrowserNetwork.webPort }}"
path: /health
readiness:
enabled: true
type: {{ $scheme }}
port: "{{ .Values.filebrowserNetwork.webPort }}"
path: /health
startup:
enabled: true
type: {{ $scheme }}
port: "{{ .Values.filebrowserNetwork.webPort }}"
path: /health
initContainers:
{{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions"
"UID" .Values.filebrowserRunAs.user
"GID" .Values.filebrowserRunAs.group
"mode" "check"
"type" "init") | nindent 8 }}
02-init-config:
enabled: true
type: init
imageSelector: image
securityContext:
runAsUser: {{ .Values.filebrowserRunAs.user }}
runAsGroup: {{ .Values.filebrowserRunAs.group }}
# Creating the config file if it doesn't exist
# This will make the container to log
# "Using config file: {{ $configBasePath }}/filebrowser.json"
# on startup, so users know where the config is, in case they need it.
# Arguments will take precedence over the config file always.
# (Like the port, paths, etc we set above.)
command:
- /bin/sh
- -c
- |
if [ ! -f {{ $configBasePath }}/filebrowser.json ]; then
echo "Creating an empty config file"
echo '{}' > {{ $configBasePath }}/filebrowser.json
fi
{{- end -}}

View File

@@ -0,0 +1,60 @@
{{- define "filebrowser.persistence" -}}
{{- $configBasePath := "/config" }}
persistence:
config:
enabled: true
type: {{ .Values.filebrowserStorage.config.type }}
datasetName: {{ .Values.filebrowserStorage.config.datasetName | default "" }}
hostPath: {{ .Values.filebrowserStorage.config.hostPath | default "" }}
targetSelector:
filebrowser:
filebrowser:
mountPath: {{ $configBasePath }}
02-init-config:
mountPath: {{ $configBasePath }}
01-permissions:
mountPath: /mnt/directories/config
{{- if not .Values.filebrowserStorage.additionalStorages -}}
{{- fail "Filebrowser - Expected at least 1 additional storage" -}}
{{- end -}}
{{- range $idx, $storage := .Values.filebrowserStorage.additionalStorages }}
{{- if not (hasPrefix "/" $storage.mountPath) -}}
{{- fail (printf "Filebrowser - Expected [Mount Path] to start with [/], but got [%v]" $storage.mountPath) -}}
{{- end }}
{{ printf "filebrowser-%v" (int $idx) }}:
enabled: true
type: {{ $storage.type }}
datasetName: {{ $storage.datasetName | default "" }}
hostPath: {{ $storage.hostPath | default "" }}
targetSelector:
filebrowser:
filebrowser:
mountPath: /data{{ $storage.mountPath }}
01-permissions:
mountPath: /mnt/directories{{ $storage.mountPath }}
{{- end }}
{{/* Certificate */}}
{{- with .Values.filebrowserNetwork.certificateID }}
cert:
enabled: true
type: secret
objectName: filebrowser-cert
defaultMode: "0600"
items:
- key: tls.key
path: tls.key
- key: tls.crt
path: tls.crt
targetSelector:
filebrowser:
filebrowser:
mountPath: {{ $configBasePath }}/certs
readOnly: true
scaleCertificate:
filebrowser-cert:
enabled: true
id: {{ . }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,16 @@
{{- define "filebrowser.portal" -}}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: portal
data:
{{- $scheme := "http" -}}
{{- if .Values.filebrowserNetwork.certificateID -}}
{{- $scheme = "https" -}}
{{- end }}
path: "/"
port: {{ .Values.filebrowserNetwork.webPort | quote }}
protocol: {{ $scheme }}
host: $node_ip
{{- end -}}

View File

@@ -0,0 +1,15 @@
{{- define "filebrowser.service" -}}
service:
filebrowser:
enabled: true
primary: true
type: NodePort
targetSelector: filebrowser
ports:
webui:
enabled: true
primary: true
port: {{ .Values.filebrowserNetwork.webPort }}
nodePort: {{ .Values.filebrowserNetwork.webPort }}
targetSelector: filebrowser
{{- end -}}

View File

@@ -0,0 +1,11 @@
{{- include "ix.v1.common.loader.init" . -}}
{{/* Merge the templates with Values */}}
{{- $_ := mustMergeOverwrite .Values (include "filebrowser.workload" $ | fromYaml) -}}
{{- $_ := mustMergeOverwrite .Values (include "filebrowser.persistence" $ | fromYaml) -}}
{{- $_ := mustMergeOverwrite .Values (include "filebrowser.service" $ | fromYaml) -}}
{{/* Create the configmap for portal manually*/}}
{{- include "filebrowser.portal" $ -}}
{{- include "ix.v1.common.loader.apply" . -}}

View File

@@ -0,0 +1,10 @@
icon_url: https://raw.githubusercontent.com/filebrowser/logo/master/banner.png
categories:
- storage
screenshots:
- https://3149836655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8KDxOujDoPpJyJJ5_i%2Fuploads%2Fgit-blob-b6cab252432e211dec693fc77d036c15259a8087%2F1.PNG?alt=media
- https://3149836655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8KDxOujDoPpJyJJ5_i%2Fuploads%2Fgit-blob-9390768b0cbb83b1e7da55c0ae13ecd2d8fcb114%2F2.PNG?alt=media
- https://3149836655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8KDxOujDoPpJyJJ5_i%2Fuploads%2Fgit-blob-dfc8d803dcd6546622888f399d94af9c6bbdbe60%2F6.PNG?alt=media
tags:
- files
- browser

View File

@@ -0,0 +1,6 @@
dependencies:
- name: common
repository: file://../../../common
version: 1.0.8
digest: sha256:254efaa1285f634b7a80b7baadeadbd20a680f7fee49d1d9d3c4618aa0d657ad
generated: "2023-06-22T16:50:21.570951209+03:00"

View File

@@ -0,0 +1,25 @@
name: jellyseerr
description: Jellyseerr is a free and open source software application for managing requests for your media library.
annotations:
title: Jellyseerr
type: application
version: 1.0.0
apiVersion: v2
appVersion: 1.5.0
kubeVersion: '>=1.16.0-0'
maintainers:
- name: truenas
url: https://www.truenas.com/
email: dev@ixsystems.com
dependencies:
- name: common
repository: file://../../../common
version: 1.0.8
home: https://github.com/Fallenbagel/jellyseerr
icon: https://github.com/Fallenbagel/jellyseerr/raw/develop/public/logo_full.svg
sources:
- https://github.com/Fallenbagel/jellyseerr
- https://github.com/truenas/charts/tree/master/community/jellyseerr
- https://hub.docker.com/r/fallenbagel/jellyseerr
keywords:
- media

View File

@@ -0,0 +1,8 @@
# Jellyseerr
[Jellyseerr](https://github.com/Fallenbagel/jellyseerr) is a free and open source software application for managing requests for your media library.
> When application is installed, a container will be launched with **root** privileges.
> This is required in order to apply the correct permissions to the `Jellyseerr` directories.
> Afterward, the `Jellyseerr` container will run as a **non**-root user (Default: `568`).
> All mounted storage(s) will be `chown`ed only if the parent directory does not match the configured user.

View File

@@ -0,0 +1,8 @@
# Jellyseerr
[Jellyseerr](https://github.com/Fallenbagel/jellyseerr) is a free and open source software application for managing requests for your media library.
> When application is installed, a container will be launched with **root** privileges.
> This is required in order to apply the correct permissions to the `Jellyseerr` directories.
> Afterward, the `Jellyseerr` container will run as a **non**-root user (Default: `568`).
> All mounted storage(s) will be `chown`ed only if the parent directory does not match the configured user.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More