diff --git a/catalog.json b/catalog.json index e0b11d1973..ed4513a815 100644 --- a/catalog.json +++ b/catalog.json @@ -500,6 +500,33 @@ "tags": [], "icon_url": "https://www.chia.net/wp-content/uploads/2022/09/chia-logo.svg" }, + "overseerr": { + "app_readme": "

Overseerr

\n

Overseerr is a free and open source software application for managing requests for your media library. It integrates with your existing services, such as Sonarr, Radarr, and Plex!

\n
\n

When application is installed, a container will be launched with root privileges.\nThis is required in order to apply the correct permissions to the Overseerr directories.\nAfterward, the Overseerr container will run as a non-root user (Default: 568).\nAll mounted storage(s) will be chowned only if the parent directory does not match the configured user.

\n
", + "categories": [ + "media" + ], + "description": "Overseerr is a free and open source software application for managing requests for your media library.", + "healthy": true, + "healthy_error": null, + "home": "https://github.com/sct/overseerr", + "location": "/__w/charts/charts/community/overseerr", + "latest_version": "1.0.0", + "latest_app_version": "1.32.5", + "latest_human_version": "1.32.5_1.0.0", + "last_update": null, + "name": "overseerr", + "recommended": false, + "title": "Overseerr", + "maintainers": [ + { + "name": "truenas", + "url": "https://www.truenas.com/", + "email": "dev@ixsystems.com" + } + ], + "tags": [], + "icon_url": "https://raw.githubusercontent.com/sct/overseerr/develop/public/os_icon.svg" + }, "terraria": { "app_readme": "

Terraria

\n

Terraria is a land of adventure! A land of mystery! A land that's yours to shape, defend, and enjoy.

\n

This applies only for the TShock image.\nOn the first run, you have to check the logs to get the server token. You will find something like this:

\n

text\nLogin before join enabled. Users may be prompted for an account specific password instead of a server password on connect.\nLogin using UUID enabled. Users automatically login via UUID.\nA malicious server can easily steal a user's UUID. You may consider turning this option off if you run a public server.\nTShock Notice: setup-code.txt is still present, and the code located in that file will be used.\nTo setup the server, join the game and type /setup 424041\nThis token will display until disabled by verification. (/setup)

\n

Join the server and run /setup <token>

", "categories": [ @@ -767,7 +794,7 @@ "latest_version": "1.0.0", "latest_app_version": "1.10.6", "latest_human_version": "1.10.6_1.0.0", - "last_update": null, + "last_update": "2023-05-07 15:37:49", "name": "zerotier", "recommended": false, "title": "Zerotier", diff --git a/community/overseerr/1.0.0/Chart.lock b/community/overseerr/1.0.0/Chart.lock new file mode 100644 index 0000000000..b9f2e729b4 --- /dev/null +++ b/community/overseerr/1.0.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common + version: 1.0.6 +digest: sha256:2f1f31c15fb7f92db141a66adbb8d23a8598727730050a3883a211763a4e5472 +generated: "2023-04-29T20:31:11.523275154-07:00" diff --git a/community/overseerr/1.0.0/Chart.yaml b/community/overseerr/1.0.0/Chart.yaml new file mode 100644 index 0000000000..051b1767bf --- /dev/null +++ b/community/overseerr/1.0.0/Chart.yaml @@ -0,0 +1,25 @@ +name: overseerr +description: Overseerr is a free and open source software application for managing requests for your media library. +annotations: + title: Overseerr +type: application +version: 1.0.0 +apiVersion: v2 +appVersion: '1.32.5' +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.6 +home: https://github.com/sct/overseerr +icon: https://raw.githubusercontent.com/sct/overseerr/develop/public/os_icon.svg +sources: + - https://hub.docker.com/r/sctx/overseerr + - https://github.com/truenas/charts/tree/master/community/overseer + - https://github.com/sct/overseerr +keywords: + - media diff --git a/community/overseerr/1.0.0/README.md b/community/overseerr/1.0.0/README.md new file mode 100644 index 0000000000..6a7fe2fd77 --- /dev/null +++ b/community/overseerr/1.0.0/README.md @@ -0,0 +1,8 @@ +# Overseerr + +[Overseerr](https://github.com/sct/overseerr) is a free and open source software application for managing requests for your media library. It integrates with your existing services, such as Sonarr, Radarr, and Plex! + +> When application is installed, a container will be launched with **root** privileges. +> This is required in order to apply the correct permissions to the `Overseerr` directories. +> Afterward, the `Overseerr` 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. diff --git a/community/overseerr/1.0.0/app-readme.md b/community/overseerr/1.0.0/app-readme.md new file mode 100644 index 0000000000..6a7fe2fd77 --- /dev/null +++ b/community/overseerr/1.0.0/app-readme.md @@ -0,0 +1,8 @@ +# Overseerr + +[Overseerr](https://github.com/sct/overseerr) is a free and open source software application for managing requests for your media library. It integrates with your existing services, such as Sonarr, Radarr, and Plex! + +> When application is installed, a container will be launched with **root** privileges. +> This is required in order to apply the correct permissions to the `Overseerr` directories. +> Afterward, the `Overseerr` 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. diff --git a/community/overseerr/1.0.0/charts/common-1.0.6.tgz b/community/overseerr/1.0.0/charts/common-1.0.6.tgz new file mode 100644 index 0000000000..3cad474777 Binary files /dev/null and b/community/overseerr/1.0.0/charts/common-1.0.6.tgz differ diff --git a/community/overseerr/1.0.0/ci/basic-values.yaml b/community/overseerr/1.0.0/ci/basic-values.yaml new file mode 100644 index 0000000000..20d98b3c1a --- /dev/null +++ b/community/overseerr/1.0.0/ci/basic-values.yaml @@ -0,0 +1,11 @@ +overseerrNetwork: + webPort: 31000 + +overseerrRunAs: + user: 1000 + group: 1000 + +overseerrStorage: + config: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/config diff --git a/community/overseerr/1.0.0/ci/hostNet-values.yaml b/community/overseerr/1.0.0/ci/hostNet-values.yaml new file mode 100644 index 0000000000..58627b97b9 --- /dev/null +++ b/community/overseerr/1.0.0/ci/hostNet-values.yaml @@ -0,0 +1,8 @@ +overseerrNetwork: + webPort: 30000 + hostNetwork: true + +overseerrStorage: + config: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/config diff --git a/community/overseerr/1.0.0/ix_values.yaml b/community/overseerr/1.0.0/ix_values.yaml new file mode 100644 index 0000000000..0cfefda05d --- /dev/null +++ b/community/overseerr/1.0.0/ix_values.yaml @@ -0,0 +1,26 @@ +image: + repository: sctx/overseerr + pullPolicy: IfNotPresent + tag: '1.32.5' + +resources: + limits: + cpu: 4000m + memory: 8Gi + +overseerrConfig: + additionalEnvs: [] + +overseerrNetwork: + webPort: 30000 + hostNetwork: false + +overseerrRunAs: + user: 568 + group: 568 + +overseerrStorage: + config: + type: ixVolume + hostPath: '' + datasetName: config diff --git a/community/overseerr/1.0.0/metadata.yaml b/community/overseerr/1.0.0/metadata.yaml new file mode 100644 index 0000000000..72524c8bbe --- /dev/null +++ b/community/overseerr/1.0.0/metadata.yaml @@ -0,0 +1,8 @@ +runAsContext: + - userName: overseerr + groupName: overseerr + gid: 568 + uid: 568 + description: Overseerr can run as any non-root user. +capabilities: [] +hostMounts: [] diff --git a/community/overseerr/1.0.0/questions.yaml b/community/overseerr/1.0.0/questions.yaml new file mode 100644 index 0000000000..af02b32cdc --- /dev/null +++ b/community/overseerr/1.0.0/questions.yaml @@ -0,0 +1,178 @@ +groups: + - name: Overseerr Configuration + description: Configure Overseerr + - name: User and Group Configuration + description: Configure User and Group for Overseerr + - name: Network Configuration + description: Configure Network for Overseerr + - name: Storage Configuration + description: Configure Storage for Overseerr + - name: Resources Configuration + description: Configure Resources for Overseerr + +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: Overseerr Configuration + label: Timezone + schema: + type: string + default: Etc/UTC + required: true + $ref: + - definitions/timezone + + - variable: overseerrConfig + label: "" + group: Overseerr Configuration + schema: + type: dict + attrs: + - variable: additionalEnvs + label: Additional Environment Variables + description: Configure additional environment variables for Overseerr. + 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: overseerrRunAs + label: "" + group: User and Group Configuration + schema: + type: dict + attrs: + - variable: user + label: User ID + description: The user id that Overseerr will run as. + schema: + type: int + min: 2 + default: 568 + required: true + - variable: group + label: Group ID + description: The group id that Overseerr will run as. + schema: + type: int + min: 2 + default: 568 + required: true + + - variable: overseerrNetwork + label: "" + group: Network Configuration + schema: + type: dict + attrs: + - variable: webPort + label: Web Port + description: The port for the Overseerr Web UI. + schema: + type: int + default: 30000 + min: 9000 + max: 65535 + required: true + - variable: hostNetwork + label: Host Network + description: | + Bind to the host network. It's recommended to keep this disabled.
+ schema: + type: boolean + default: false + + - variable: overseerrStorage + label: "" + group: Storage Configuration + schema: + type: dict + attrs: + - variable: config + label: Overseerr Config Storage + description: The path to store Overseerr Configuration. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ 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: 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 Overseerr. + schema: + type: string + default: "4000m" + required: true + - variable: memory + label: Memory + description: Memory limit for Overseerr. + schema: + type: string + default: "8Gi" + required: true diff --git a/community/overseerr/1.0.0/templates/NOTES.txt b/community/overseerr/1.0.0/templates/NOTES.txt new file mode 100644 index 0000000000..ba4e01146c --- /dev/null +++ b/community/overseerr/1.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{ include "ix.v1.common.lib.chart.notes" $ }} diff --git a/community/overseerr/1.0.0/templates/_overseerr.tpl b/community/overseerr/1.0.0/templates/_overseerr.tpl new file mode 100644 index 0000000000..68dc6fbb44 --- /dev/null +++ b/community/overseerr/1.0.0/templates/_overseerr.tpl @@ -0,0 +1,84 @@ +{{- define "overseerr.workload" -}} +workload: + overseerr: + enabled: true + primary: true + type: Deployment + podSpec: + hostNetwork: {{ .Values.overseerrNetwork.hostNetwork }} + containers: + overseerr: + enabled: true + primary: true + imageSelector: image + securityContext: + runAsUser: {{ .Values.overseerrRunAs.user }} + runAsGroup: {{ .Values.overseerrRunAs.group }} + env: + PORT: {{ .Values.overseerrNetwork.webPort }} + envList: + {{ with .Values.overseerrConfig.additionalEnvs }} + {{ range $env := . }} + - name: {{ $env.name }} + value: {{ $env.value }} + {{ end }} + {{ end }} + probes: + liveness: + enabled: true + type: http + port: {{ .Values.overseerrNetwork.webPort }} + path: /api/v1/status + readiness: + enabled: true + type: http + port: {{ .Values.overseerrNetwork.webPort }} + path: /api/v1/status + startup: + enabled: true + type: http + port: {{ .Values.overseerrNetwork.webPort }} + path: /api/v1/status + initContainers: + {{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions" + "UID" .Values.overseerrRunAs.user + "GID" .Values.overseerrRunAs.group + "mode" "check" + "type" "init") | nindent 8 }} + +{{/* Service */}} +service: + overseerr: + enabled: true + primary: true + type: NodePort + targetSelector: overseerr + ports: + webui: + enabled: true + primary: true + port: {{ .Values.overseerrNetwork.webPort }} + nodePort: {{ .Values.overseerrNetwork.webPort }} + targetSelector: overseerr + +{{/* Persistence */}} +persistence: + config: + enabled: true + type: {{ .Values.overseerrStorage.config.type }} + datasetName: {{ .Values.overseerrStorage.config.datasetName | default "" }} + hostPath: {{ .Values.overseerrStorage.config.hostPath | default "" }} + targetSelector: + overseerr: + overseerr: + mountPath: /app/config + 01-permissions: + mountPath: /mnt/directories/config + tmp: + enabled: true + type: emptyDir + targetSelector: + overseerr: + overseerr: + mountPath: /tmp +{{- end -}} diff --git a/community/overseerr/1.0.0/templates/_portal.tpl b/community/overseerr/1.0.0/templates/_portal.tpl new file mode 100644 index 0000000000..5d840a82bd --- /dev/null +++ b/community/overseerr/1.0.0/templates/_portal.tpl @@ -0,0 +1,12 @@ +{{- define "overseerr.portal" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: portal +data: + path: "/" + port: {{ .Values.overseerrNetwork.webPort | quote }} + protocol: http + host: $node_ip +{{- end -}} diff --git a/community/overseerr/1.0.0/templates/common.yaml b/community/overseerr/1.0.0/templates/common.yaml new file mode 100644 index 0000000000..69a4062be7 --- /dev/null +++ b/community/overseerr/1.0.0/templates/common.yaml @@ -0,0 +1,9 @@ +{{- include "ix.v1.common.loader.init" . -}} + +{{/* Merge the templates with Values */}} +{{- $_ := mustMergeOverwrite .Values (include "overseerr.workload" $ | fromYaml) -}} + +{{/* Create the configmap for portal manually*/}} +{{- include "overseerr.portal" $ -}} + +{{- include "ix.v1.common.loader.apply" . -}} diff --git a/community/overseerr/item.yaml b/community/overseerr/item.yaml new file mode 100644 index 0000000000..d9ab050c58 --- /dev/null +++ b/community/overseerr/item.yaml @@ -0,0 +1,3 @@ +icon_url: https://raw.githubusercontent.com/sct/overseerr/develop/public/os_icon.svg +categories: + - media