# Groups groups: - name: "Container Image" description: "Image configuration" - name: "Configuration" description: "Container configuration" - name: "Networking" description: "Network configuration" - name: "Ingress" description: "Ingress configuration" - name: "Services" description: "Service configuration" - name: "Volume Mounts" description: "Configuration volume mounts" # Portal portals: web_portal: protocols: - "http" # if SECURE_CONNECTION is set, this should be https, or not.. container will redirect all http to https anyway host: - "$node_ip" ports: - "$variable-service.port.nodePort" # UI questions: # Image Related - variable: image description: "Docker Image Details" label: "Docker Image" group: "Container Image" schema: type: dict required: true attrs: - variable: repository label: "Image repository" description: "Docker image repository" schema: type: string required: true default: "jlesage/handbrake" - variable: tag description: "Tag to use for specified image" label: "Image Tag" schema: type: string default: "v1.23.1" - variable: pullPolicy description: "Docker Image Pull Policy" label: "Image Pull Policy" schema: type: string default: "IfNotPresent" enum: - value: "IfNotPresent" description: "Only pull image if not present on host" - value: "Always" description: "Always pull image even if present on host" - value: "Never" description: "Never pull image even if it's not present on host" # 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 # Docker specific env - variable: env group: "Configuration" label: "Image Environment" schema: type: dict attrs: - variable: gui label: "GUI Settings" description: "Always read description before changing a value here. Also refer to README" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: DISPLAY_WIDTH label: "DISPLAY_WIDTH" description: "Width (in pixels) of the application's window." schema: type: string default: "1280" required: true - variable: DISPLAY_HEIGHT label: "DISPLAY_HEIGHT" description: "Height (in pixels) of the application's window." schema: type: string default: "768" required: true - variable: SECURE_CONNECTION label: "SECURE_CONNECTION" description: "When set to 1, an encrypted connection is used to access the application's GUI (either via a web browser or VNC client). See the Security section for more details." schema: type: string default: "0" required: true - variable: VNC_PASSWORD label: "VNC_PASSWORD" description: "Password needed to connect to the application's GUI. See the VNC Password section for more details." schema: private: true type: string default: "" - variable: autoconv label: "Automated Conversion Settings" description: "Always read description before changing a value here. Also refer to README" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: AUTOMATED_CONVERSION_PRESET label: "AUTOMATED_CONVERSION_PRESET" description: "HandBrake preset used by the automatic video converter. Identification of a preset must follow the format /" schema: type: string default: 'General/Very Fast 1080p30' required: true - variable: AUTOMATED_CONVERSION_FORMAT label: "AUTOMATED_CONVERSION_FORMAT" description: "Video container format used by the automatic video converter for output files. This is typically the video filename extension." schema: type: string default: 'mp4' required: true - variable: AUTOMATED_CONVERSION_KEEP_SOURCE label: "AUTOMATED_CONVERSION_KEEP_SOURCE" description: "When set to 0, a video that has been successfully converted is removed from the watch folder." schema: type: string default: "1" required: true - variable: AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION label: "AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION" description: "When set to ignore, a non-video file found in the watch folder is ignored. If set to copy, a non-video file is copied as-is to the output folder." schema: type: string default: 'ignore' required: true # Networking - variable: service group: "Services" label: "Configure Service" schema: type: dict attrs: - variable: type label: "Service type" schema: type: string default: "ClusterIP" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" show_subquestions_if: "NodePort" subquestions: - variable: port label: "Port configuration" schema: type: dict attrs: - variable: webuiport label: "container port" schema: type: int default: 5800 #web GUI editable: false - variable: nodePort label: "Node Port to expose for UI" schema: type: int min: 9000 max: 65535 default: 36052 required: true - variable: appAdditionalServices group: "Services" label: "Configure additional services" schema: type: dict attrs: - variable: tcp label: "" schema: type: dict attrs: - variable: enabled label: "Enable TCP port for vnc Connections" schema: type: boolean default: true hidden: true - variable: type label: "Service type" schema: type: string default: "ClusterIP" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - variable: port label: "Port configuration" schema: type: dict attrs: - variable: name label: "port name" schema: type: string default: "vnc-tcp" hidden: true - variable: protocol label: "Protocol" schema: type: string default: "TCP" hidden: true - variable: port label: "container port" schema: type: int default: 5900 editable: false hidden: true - variable: targetport label: "container targetport" schema: type: int default: 5900 editable: false hidden: true - variable: nodePort label: "Node Port to expose" schema: type: int min: 9000 max: 65535 default: 36053 required: false # Host Networking - variable: hostNetworking group: "Networking" label: "Enable Host Networking" schema: type: boolean default: false # Privileged - variable: securityContext group: "Volume Mounts" label: "Security Context" schema: type: dict attrs: - variable: privileged label: "Enable privileged to pass thru an Optical Drive device" schema: type: boolean default: true required: true # TrueCharts Specific - variable: appVolumeMounts label: "" group: "Volume Mounts" schema: type: dict attrs: # config - variable: config label: "config Volume" 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: "Name" schema: type: string default: "config" editable: false - variable: mountPath label: "Mount Path inside the container" schema: type: path default: "/config" editable: false - variable: hostPathEnabled label: "config - Enable Host Path" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: hostPath label: "config Host Path" description: "Host path to store config" schema: type: hostpath required: true # storage - variable: storage label: "storage Volume" 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: "Name" schema: type: string default: "storage" editable: false - variable: mountPath label: "Mount Path inside the container" schema: type: path default: "/storage" editable: false - variable: hostPathEnabled label: "storage - Enable Host Path" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: hostPath label: "storage Host Path" description: "Host path to store storage" schema: type: hostpath required: true # watch - variable: watch label: "watch Volume" 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: "Name" schema: type: string default: "watch" editable: false - variable: mountPath label: "Mount Path inside the container" schema: type: path default: "/watch" editable: false - variable: hostPathEnabled label: "watch - Enable Host Path" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: hostPath label: "watch Host Path" description: "Host path to store watch" schema: type: hostpath required: true # output - variable: output label: "output Volume" 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: "Name" schema: type: string default: "output" editable: false - variable: mountPath label: "Mount Path inside the container" schema: type: path default: "/output" editable: false - variable: hostPathEnabled label: "output - Enable Host Path" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: hostPath label: "output Host Path" description: "Host path to store output" schema: type: hostpath required: true # Optical Drive - variable: opticaldrive label: "Optical Drive Device" schema: type: dict attrs: - variable: setPermissions label: "Automatic Permissions" description: "Automatically set permissions on install" schema: type: boolean default: false hidden: true - variable: hostPath label: "Path to Optical Drive device on host" description: 'Best to use path "by-id"' schema: type: path required: true default: "/dev/sr0" - variable: mountPath label: "Path to mount device inside the container" schema: type: path default: "/dev/sr0" required: true # Ingress - variable: appIngress label: "" group: "Ingress" schema: type: dict attrs: - variable: webui label: "Web Ingress Configuration" group: "Ingress" schema: type: dict attrs: - variable: enabled label: "Enable Web Ingress" schema: type: boolean default: false show_subquestions_if: true subquestions: - 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: "letsencrypt-prod" enum: - value: "" description: "No Encryption/TLS/Certificates" - value: "letsencrypt-prod" description: "Letsencrypt Production Certificates" - value: "letsencrypt-staging" description: "Letsencrypt Test Certificates" - value: "wildcard" description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - value: "existingcert" description: "Existing Certificate" show_subquestions_if: "existingcert" subquestions: - variable: existingcert label: "Existing Certificate Name" schema: type: string default: "" - variable: authForwardURL label: "Forward Authentication URL" schema: type: string default: ""