{ "1.1.4": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/charts/charts/community/navidrome/1.1.4", "last_update": "2023-11-23 22:47:30", "required_features": [ "normalize/ixVolume" ], "human_version": "0.50.1_1.1.4", "version": "1.1.4", "chart_metadata": { "name": "navidrome", "description": "Navidrome is a personal streaming service", "annotations": { "title": "Navidrome" }, "type": "application", "version": "1.1.4", "apiVersion": "v2", "appVersion": "0.50.1", "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.2.3" } ], "home": "https://www.navidrome.org/", "icon": "https://media.sys.truenas.net/apps/navidrome/icons/icon.png", "sources": [ "https://hub.docker.com/r/deluan/navidrome", "https://github.com/truenas/charts/tree/master/community/navidrome", "https://github.com/navidrome/navidrome/" ], "keywords": [ "media", "music" ] }, "app_metadata": { "runAsContext": [ { "userName": "navidrome", "groupName": "navidrome", "gid": 568, "uid": 568, "description": "Navidrome can run as any non-root user." } ], "capabilities": [], "hostMounts": [] }, "schema": { "groups": [ { "name": "Navidrome Configuration", "description": "Configure Navidrome" }, { "name": "User and Group Configuration", "description": "Configure User and Group for Navidrome" }, { "name": "Network Configuration", "description": "Configure Network for Navidrome" }, { "name": "Storage Configuration", "description": "Configure Storage for Navidrome" }, { "name": "Resources Configuration", "description": "Configure Resources for Navidrome" } ], "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": "navidromeConfig", "label": "", "group": "Navidrome Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "uiWelcomeMessage", "label": "Login Screen Welcome Message", "description": "The welcome message to display on the Navidrome Login Screen.", "schema": { "type": "string", "default": "" } }, { "variable": "additionalEnvs", "label": "Additional Environment Variables", "description": "Configure additional environment variables for Navidrome.", "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": "navidromeRunAs", "label": "", "group": "User and Group Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "user", "label": "User ID", "description": "The user id that Navidrome will run as.", "schema": { "type": "int", "min": 2, "default": 568, "required": true } }, { "variable": "group", "label": "Group ID", "description": "The group id that Navidrome will run as.", "schema": { "type": "int", "min": 2, "default": 568, "required": true } } ] } }, { "variable": "navidromeNetwork", "label": "", "group": "Network Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "webPort", "label": "Web Port", "description": "The port for the Navidrome Web UI.", "schema": { "type": "int", "default": 30043, "min": 9000, "max": 65535, "required": true } }, { "variable": "hostNetwork", "label": "Host Network", "description": "Bind to the host network. It's recommended to keep this disabled.
\n", "schema": { "type": "boolean", "default": false } } ] } }, { "variable": "navidromeStorage", "label": "", "group": "Storage Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "data", "label": "Navidrome Data Storage", "description": "The path to store Navidrome Data.", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\nHost Path: Is a path that already exists on the system.\n", "schema": { "type": "string", "required": true, "immutable": 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": "data", "$ref": [ "normalize/ixVolume" ] } }, { "variable": "hostPath", "label": "Host Path", "schema": { "type": "hostpath", "show_if": [ [ "type", "=", "hostPath" ] ], "immutable": true, "required": true } } ] } }, { "variable": "music", "label": "Navidrome Music Storage", "description": "The path to store Navidrome Music.", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\nHost Path: Is a path that already exists on the system.\n", "schema": { "type": "string", "required": true, "immutable": 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": "music", "$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 Navidrome.", "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.
\nHost Path: Is a path that already exists on the system.
\nSMB Share: Is a SMB share that is mounted to a persistent volume claim.\n", "schema": { "type": "string", "required": true, "default": "ixVolume", "immutable": true, "enum": [ { "value": "hostPath", "description": "Host Path (Path that already exists on the system)" }, { "value": "ixVolume", "description": "ixVolume (Dataset created automatically by the system)" }, { "value": "smb-pv-pvc", "description": "SMB Share (Mounts a persistent volume claim to a SMB share)" } ] } }, { "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": "server", "label": "Server", "description": "The server for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true } }, { "variable": "share", "label": "Share", "description": "The share name for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true } }, { "variable": "domain", "label": "Domain (Optional)", "description": "The domain for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ] } }, { "variable": "username", "label": "Username", "description": "The username for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true } }, { "variable": "password", "label": "Password", "description": "The password for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true, "private": true } }, { "variable": "size", "label": "Size (in Gi)", "description": "The size of the volume quota.", "schema": { "type": "int", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true, "min": 1, "default": 1 } } ] } } ] } } ] } }, { "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 Navidrome.", "schema": { "type": "string", "max_length": 6, "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$", "valid_chars_error": "Valid CPU limit formats are
\n- Plain Integer - eg. 1
\n- Float - eg. 0.5
\n- Milicpu - eg. 500m\n", "default": "4000m", "required": true } }, { "variable": "memory", "label": "Memory", "description": "Memory limit for Navidrome.", "schema": { "type": "string", "max_length": 12, "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$", "valid_chars_error": "Valid Memory limit formats are
\n- Suffixed with E/P/T/G/M/K - eg. 1G
\n- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi
\n- Plain Integer in bytes - eg. 1024
\n- Exponent - eg. 134e6\n", "default": "8Gi", "required": true } } ] } } ] } } ] }, "app_readme": "

Navidrome

\n

Navidrome is a personal streaming service

\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 Navidrome directories.\nAfterward, the Navidrome 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
\n

Additional configuration options can be defined via environment variables.\nSee more information on the Navidrome Documentation

", "detailed_readme": "

Navidrome

\n

Navidrome is a personal streaming service

\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 Navidrome directories.\nAfterward, the Navidrome 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
\n

Additional configuration options can be defined via environment variables.\nSee more information on the Navidrome Documentation

", "changelog": null } }