diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c43f988afb5..e8f7f3dabfb 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -3,3 +3,4 @@ /charts/esphome/* @tprelog /charts/unifi/* @whiskerz007 +/charts/emby/* @djs52 diff --git a/charts/emby/2.0.0/.helmignore b/charts/emby/2.0.0/.helmignore new file mode 100644 index 00000000000..e559de0a012 --- /dev/null +++ b/charts/emby/2.0.0/.helmignore @@ -0,0 +1,24 @@ +# 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 diff --git a/charts/emby/2.0.0/Chart.yaml b/charts/emby/2.0.0/Chart.yaml new file mode 100644 index 00000000000..634349b82f9 --- /dev/null +++ b/charts/emby/2.0.0/Chart.yaml @@ -0,0 +1,35 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: emby +version: 2.0.0 +# upstream_version: +appVersion: "auto" +description: Emby Server is a home media server +type: application +deprecated: false +home: https://github.com/djs52/charts/tree/master/charts/emby +icon_url: https://raw.githubusercontent.com/djs52/charts/master/charts/emby/icon.png?raw=true +keywords: + - jellyfin + - plex + - emby +sources: + - https://github.com/truecharts/charts/tree/master/charts/emby + - https://hub.docker.com/r/linuxserver/emby + - https://github.com/linuxserver/docker-emby.git +dependencies: + - name: common + repository: https://charts.truecharts.org/ + version: 2.0.0 + # condition: + # tags: + # import-values: + # alias: +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: truecharts.org + - name: Dan Sheridan + email: dan.sheridan@postman.org.uk + url: truecharts.org +# annotations: diff --git a/charts/emby/2.0.0/README.md b/charts/emby/2.0.0/README.md new file mode 100644 index 00000000000..f09f1a6db8c --- /dev/null +++ b/charts/emby/2.0.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.6.3](https://img.shields.io/badge/Version-1.6.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.6.4](https://img.shields.io/badge/AppVersion-10.6.4-informational?style=flat-square) + +Jellyfin is a Free Software Media System + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.truecharts.org/ | common | 1.6.5 | + +## Installing the Chart + +To install the chart with the release name `jellyfin` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `jellyfin` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://wiki.truecharts.org) +- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) +- Ask a [question](https://github.com/truecharts/charts/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) diff --git a/charts/emby/2.0.0/app-readme.md b/charts/emby/2.0.0/app-readme.md new file mode 100644 index 00000000000..8dd9da8c1ae --- /dev/null +++ b/charts/emby/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Emby Server is a home media server + diff --git a/charts/emby/2.0.0/charts/common-2.0.0.tgz b/charts/emby/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..380564a1c52 Binary files /dev/null and b/charts/emby/2.0.0/charts/common-2.0.0.tgz differ diff --git a/charts/emby/2.0.0/docs/CONFIG.md b/charts/emby/2.0.0/docs/CONFIG.md new file mode 100644 index 00000000000..cc20c8c78ba --- /dev/null +++ b/charts/emby/2.0.0/docs/CONFIG.md @@ -0,0 +1,3 @@ +# Configuration Options + +N/A diff --git a/charts/emby/2.0.0/docs/CONFIG.md.gotmpl b/charts/emby/2.0.0/docs/CONFIG.md.gotmpl new file mode 100644 index 00000000000..0242e267803 --- /dev/null +++ b/charts/emby/2.0.0/docs/CONFIG.md.gotmpl @@ -0,0 +1,11 @@ +{{- define "custom.custom.configuration.header" -}} +# Configuration Options +{{- end -}} + +{{- define "custom.custom.configuration" -}} +{{ template "custom.custom.configuration.header" . }} + +N/A +{{- end -}} + +{{ template "custom.custom.configuration" . }} diff --git a/charts/emby/2.0.0/ix_values.yaml b/charts/emby/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..97c75b5650b --- /dev/null +++ b/charts/emby/2.0.0/ix_values.yaml @@ -0,0 +1,17 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/emby + pullPolicy: IfNotPresent + tag: version-4.5.4.0 + +startAsRoot: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/emby/2.0.0/questions.yaml b/charts/emby/2.0.0/questions.yaml new file mode 100644 index 00000000000..f845113a70b --- /dev/null +++ b/charts/emby/2.0.0/questions.yaml @@ -0,0 +1,479 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "http" + host: + - "$node_ip" + ports: + - "$variable-service.port.nodePort" + +questions: + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + - variable: timezone + group: "Configuration" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Configuration" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Configuration" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Configuration" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "nodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + hidden: true + enum: + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "container port" + schema: + type: int + default: 8096 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8096 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + # Config ------------------------ + - variable: config + label: "config dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/config" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: media + label: "media dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "media" + required: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/data" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + # - variable: servicePort + # label: "Service Port to proxy to" + # schema: + # hidden: true + # editable: false + # default: 80 + # type: int + # default: + - variable: serviceKind + label: "Service Kind to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: paths + label: "paths" + schema: + type: list + default: [] + items: + - variable: path + label: "Path" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "prefix" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/emby/2.0.0/templates/common.yaml b/charts/emby/2.0.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/emby/2.0.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/emby/2.0.0/test_values.yaml b/charts/emby/2.0.0/test_values.yaml new file mode 100644 index 00000000000..163b9057708 --- /dev/null +++ b/charts/emby/2.0.0/test_values.yaml @@ -0,0 +1,54 @@ + +# Default values for emby. + +image: + repository: linuxserver/emby + pullPolicy: IfNotPresent + tag: version-4.5.4.0 + +strategy: + type: Recreate + +startAsRoot: true + +services: + main: + port: + port: 8096 + +persistence: + config: + enabled: false + emptyDir: false + + media: + enabled: false + emptyDir: false + mountPath: /data + ## Persistent Volume Storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + # storageClass: "-" + # accessMode: ReadWriteOnce + # size: 1Gi + ## Do not delete the pvc upon helm uninstall + # skipuninstall: false + # existingClaim: "" + +## TrueCharts Config + + +appVolumeMounts: + config: + enabled: true + emptyDir: true + setPermissions: true + mountPath: "/config" + media: + enabled: true + emptyDir: true + setPermissions: true + mountPath: "/data" diff --git a/charts/emby/2.0.0/values.yaml b/charts/emby/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/charts/emby/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/emby/icon.png b/charts/emby/icon.png new file mode 100644 index 00000000000..7e55e0449d3 Binary files /dev/null and b/charts/emby/icon.png differ diff --git a/charts/emby/item.yaml b/charts/emby/item.yaml new file mode 100644 index 00000000000..f1c675b37e0 --- /dev/null +++ b/charts/emby/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://raw.githubusercontent.com/djs52/charts/master/charts/emby/icon.png?raw=true