Files
catalog/stable/invidious/app_versions.json
2024-02-22 15:59:59 +00:00

22283 lines
1.7 MiB

{
"8.3.0": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/home/runner/work/catalog/catalog/stable/invidious/8.3.0",
"last_update": "2024-02-22 14:02:27",
"required_features": [
"definitions/certificate",
"definitions/timezone",
"definitions/gpuConfiguration",
"definitions/interface",
"normalize/interfaceConfiguration"
],
"human_version": "latest_8.3.0",
"version": "8.3.0",
"chart_metadata": {
"annotations": {
"max_scale_version": "24.04.0",
"min_scale_version": "23.10.0",
"truecharts.org/SCALE-support": "true",
"truecharts.org/category": "media",
"truecharts.org/max_helm_version": "3.14",
"truecharts.org/min_helm_version": "3.12",
"truecharts.org/train": "stable"
},
"apiVersion": "v2",
"appVersion": "latest",
"dependencies": [
{
"name": "common",
"version": "17.5.0",
"repository": "oci://tccr.io/truecharts",
"condition": "",
"alias": "",
"tags": [],
"import-values": []
}
],
"deprecated": false,
"description": "Open source alternative front-end to YouTube.",
"home": "https://truecharts.org/charts/stable/invidious",
"icon": "https://truecharts.org/img/hotlink-ok/chart-icons/invidious.png",
"keywords": [
"invidious",
"youtube",
"media"
],
"kubeVersion": ">=1.24.0-0",
"maintainers": [
{
"name": "TrueCharts",
"email": "info@truecharts.org",
"url": "https://truecharts.org"
}
],
"name": "invidious",
"sources": [
"https://github.com/iv-org/invidious",
"https://docs.invidious.io/installation/#docker",
"https://github.com/truecharts/charts/tree/master/charts/stable/invidious",
"https://quay.io/invidious/invidious"
],
"type": "application",
"version": "8.3.0"
},
"app_metadata": null,
"schema": {
"groups": [
{
"name": "Container Image",
"description": "Image to be used for container"
},
{
"name": "General Settings",
"description": "General Deployment Settings"
},
{
"name": "Workload Settings",
"description": "Workload Settings"
},
{
"name": "App Configuration",
"description": "App Specific Config Options"
},
{
"name": "Networking and Services",
"description": "Configure Network and Services for Container"
},
{
"name": "Storage and Persistence",
"description": "Persist and Share Data that is Separate from the Container"
},
{
"name": "Ingress",
"description": "Ingress Configuration"
},
{
"name": "Security and Permissions",
"description": "Configure Security Context and Permissions"
},
{
"name": "Resources and Devices",
"description": "Specify Resources/Devices to be Allocated to Workload"
},
{
"name": "Middlewares",
"description": "Traefik Middlewares"
},
{
"name": "Metrics",
"description": "Metrics"
},
{
"name": "Addons",
"description": "Addon Configuration"
},
{
"name": "Backup Configuration",
"description": "Configure Velero Backup Schedule"
},
{
"name": "Advanced",
"description": "Advanced Configuration"
},
{
"name": "Postgresql",
"description": "Postgresql"
},
{
"name": "Documentation",
"description": "Documentation"
}
],
"portals": {
"open": {
"protocols": [
"$kubernetes-resource_configmap_tcportal-open_protocol"
],
"host": [
"$kubernetes-resource_configmap_tcportal-open_host"
],
"ports": [
"$kubernetes-resource_configmap_tcportal-open_port"
]
}
},
"questions": [
{
"variable": "global",
"group": "General Settings",
"label": "Global Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "stopAll",
"label": "Stop All",
"description": "Stops All Running pods and hibernates cnpg",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "workload",
"group": "Workload Settings",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type (Advanced)",
"schema": {
"type": "string",
"default": "Deployment",
"enum": [
{
"value": "Deployment",
"description": "Deployment"
},
{
"value": "DaemonSet",
"description": "DaemonSet"
}
]
}
},
{
"variable": "replicas",
"label": "Replicas (Advanced)",
"description": "Set the number of Replicas",
"schema": {
"type": "int",
"show_if": [
[
"type",
"!=",
"DaemonSet"
]
],
"default": 1
}
},
{
"variable": "podSpec",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "containers",
"label": "Containers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Container",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "envList",
"label": "Extra Environment Variables",
"description": "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting...",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string"
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "extraArgs",
"label": "Extra Args",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "arg",
"label": "Arg",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "command",
"label": "Command",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "param",
"label": "Param",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "invidious",
"group": "App Configuration",
"label": "Invidious Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "network",
"label": "Network Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "inbound",
"label": "Inbound",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "external_port",
"label": "External Port",
"description": "When the invidious instance is behind a proxy, and the proxy listens on a different port than the instance does, this lets invidious know about it.",
"schema": {
"type": "int",
"required": true,
"min": 1,
"max": 65535,
"default": 10594
}
},
{
"variable": "https_only",
"label": "HTTPS Only",
"description": "Tell Invidious that it is behind a proxy that provides only HTTPS, so all links must use the https:// scheme. This setting MUST be set to true if invidious is behind a reverse proxy serving HTTPs.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "domain",
"label": "Domain",
"description": "Domain name under which this instance is hosted. This is used to craft absolute URLs to the instance",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "hsts",
"label": "HSTS",
"description": "Enable/Disable Strict-Transport-Security.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "outbound",
"label": "Outbound",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "disable_proxy",
"label": "Disable Proxy",
"description": "Disable proxying server-wide. Can be disable as a whole, or only for a single function.",
"schema": {
"type": "string",
"required": true,
"default": "false",
"enum": [
{
"value": "false",
"description": "false"
},
{
"value": "true",
"description": "true"
},
{
"value": "dash",
"description": "dash"
},
{
"value": "livestreams",
"description": "livestreams"
},
{
"value": "livestreams",
"description": "livestreams"
},
{
"value": "downloads",
"description": "downloads"
},
{
"value": "local",
"description": "local"
}
]
}
},
{
"variable": "pool_size",
"label": "Pool Size",
"description": "Size of the HTTP pool used to connect to youtube.",
"schema": {
"type": "int",
"required": true,
"min": 1,
"default": 100
}
},
{
"variable": "use_quic",
"label": "Use QUIC",
"description": "Enable/Disable the use of QUIC (HTTP/3) when connecting to the youtube API and websites",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "cookies",
"label": "Cookies",
"description": "Additional cookies to be sent when requesting the youtube API.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "cookie_entry",
"label": "Cookie Entry",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "force_resolve",
"label": "Force Resolve",
"description": "Force connection to youtube over a specific IP family.",
"schema": {
"type": "string",
"default": "",
"enum": [
{
"value": "",
"description": "No Force"
},
{
"value": "ipv4",
"description": "ipv4"
},
{
"value": "ipv6",
"description": "ipv6"
}
]
}
}
]
}
}
]
}
},
{
"variable": "logging",
"label": "Logging Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "output",
"label": "Output",
"description": "STDOUT or Path to log file. Can be absolute or relative to the invidious binary.",
"schema": {
"type": "string",
"required": true,
"default": "STDOUT"
}
},
{
"variable": "log_level",
"label": "Log Level",
"description": "Logging Verbosity.",
"schema": {
"type": "string",
"required": true,
"default": "Info",
"enum": [
{
"value": "Info",
"description": "Info"
},
{
"value": "Trace",
"description": "Trace"
},
{
"value": "Debug",
"description": "Debug"
},
{
"value": "Warn",
"description": "Warn"
},
{
"value": "Error",
"description": "Error"
},
{
"value": "Fatal",
"description": "Fatal"
},
{
"value": "Off",
"description": "Off"
},
{
"value": "All",
"description": "All"
}
]
}
}
]
}
},
{
"variable": "features",
"label": "Features Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "popular_enabled",
"label": "Popular Enabled",
"description": "Enable/Disable the \"Popular\" tab on the main page.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "statistics_enabled",
"label": "Statistics Enabled",
"description": "Enable/Disable statistics (available at /api/v1/stats).",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "users_accounts",
"label": "Users and Accounts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "registration_enabled",
"label": "Registration Enabled",
"description": "Allow/Forbid Invidious (local) account creation. Invidious accounts allow users to subscribe to channels and to create playlists without a Google account.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "login_enabled",
"label": "Login Enabled",
"description": "Allow/Forbid users to log-in. This setting affects the ability to connect with BOTH Google and Invidious (local) accounts.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "captcha_enabled",
"label": "Captcha Enabled",
"description": "Enable/Disable the captcha challenge on the login page.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "admins",
"label": "Admins",
"description": "List of usernames that will be granted administrator rights.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "adminEntry",
"label": "Admin Entry",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "enable_user_notifications",
"label": "User Notifications Enabled",
"description": "Enable/Disable user notifications.",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "background_jobs",
"label": "Background Jobs",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "channel_threads",
"label": "Channel Threads",
"description": "Number of threads to use when crawling channel videos (during subscriptions update).",
"schema": {
"type": "int",
"required": true,
"min": 1,
"default": 1
}
},
{
"variable": "channel_refresh_interval",
"label": "Channel Refresh Interval",
"description": "Time interval between two executions of the job that crawls channel videos (subscriptions update).",
"schema": {
"type": "string",
"required": true,
"default": "30m"
}
},
{
"variable": "full_refresh",
"label": "Full Refresh",
"description": "Forcefully dump and re-download the entire list of uploaded videos when crawling channel (during subscriptions update).",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "feed_threads",
"label": "Feed Threads",
"description": "Number of threads to use when updating RSS feeds.",
"schema": {
"type": "int",
"required": true,
"min": 1,
"default": 1
}
},
{
"variable": "decrypt_polling",
"label": "Decrypt Polling",
"description": "Enable/Disable the polling job that keeps the decryption function (for \"secured\" videos) up to date.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "jobs",
"label": "Jobs Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "clear_expired_items",
"label": "Clear Expired Items",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enable",
"label": "Enable",
"description": "Enable the database cleaning job",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "refresh_channels",
"label": "Refresh Channels",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enable",
"label": "Enable",
"description": "Enable the channels updater job",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "refresh_feeds",
"label": "Refresh Feeds",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enable",
"label": "Enable",
"description": "Enable the RSS feeds updater job",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
}
]
}
},
{
"variable": "captcha",
"label": "Captcha",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "captcha_api_url",
"label": "Captcha API URL",
"description": "URL of the captcha solving service.",
"schema": {
"type": "string",
"required": true,
"default": "https://api.anti-captcha.com"
}
},
{
"variable": "captcha_key",
"label": "Captcha API Key",
"description": "API key for the captcha solving service.",
"schema": {
"type": "string",
"private": true,
"default": ""
}
}
]
}
},
{
"variable": "miscellaneous",
"label": "Miscellaneous",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "banner",
"label": "Banner",
"description": "Custom banner displayed at the top of every page. This can used for instance announcements, e.g.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "use_pubsub_feeds",
"label": "Use PuBSub Feeds",
"description": "Subscribe to channels using PubSubHub (Google PubSubHubbub service). PubSubHub allows Invidious to be instantly notified when a new video is published on any subscribed channels",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dmca_content",
"label": "DMCA Content",
"description": "List of video IDs where the \"download\" widget must be disabled, in order to comply with DMCA requests.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "dmcaEntry",
"label": "DMCA Entry",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "cache_annotations",
"label": "Cache Annotations",
"description": "Cache video annotations in the database.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "playlist_length_limit",
"label": "Playlist Length Limit",
"description": "Maximum custom playlist length limit.",
"schema": {
"type": "int",
"required": true,
"default": 500
}
}
]
}
},
{
"variable": "default_user_preferences",
"label": "Default User Preferences",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "internationalization",
"label": "Internationalization",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "locale",
"label": "Locale",
"description": "Default user interface language (locale).",
"schema": {
"type": "string",
"required": true,
"default": "en-US",
"enum": [
{
"value": "ar",
"description": "Arabic"
},
{
"value": "da",
"description": "Danish"
},
{
"value": "de",
"description": "German"
},
{
"value": "en-US",
"description": "English, US"
},
{
"value": "el",
"description": "Greek"
},
{
"value": "eo",
"description": "Esperanto"
},
{
"value": "es",
"description": "Spanish"
},
{
"value": "fa",
"description": "Persian"
},
{
"value": "fi",
"description": "Finnish"
},
{
"value": "fr",
"description": "French"
},
{
"value": "he",
"description": "Hebrew"
},
{
"value": "hr",
"description": "Hungarian"
},
{
"value": "id",
"description": "Indonesian"
},
{
"value": "is",
"description": "Icelandic"
},
{
"value": "it",
"description": "Italian"
},
{
"value": "ja",
"description": "Japanese"
},
{
"value": "nb-NO",
"description": "Norwegian, Bomkmal"
},
{
"value": "nl",
"description": "Dutch"
},
{
"value": "pl",
"description": "Polish"
},
{
"value": "pt-BR",
"description": "Portuguese, Brazil"
},
{
"value": "pt-PT",
"description": "Portuguese, Portugal"
},
{
"value": "ro",
"description": "Romanian"
},
{
"value": "ru",
"description": "Russian"
},
{
"value": "sv",
"description": "Swedish"
},
{
"value": "tr",
"description": "Turkish"
},
{
"value": "uk",
"description": "Ukrainian"
},
{
"value": "zh-CN",
"description": "Chinese, China (Simplified Chinese)"
},
{
"value": "zh-TW",
"description": "Chinese, Taiwan (Traditional Chinese)"
}
]
}
},
{
"variable": "region",
"label": "Region",
"description": "Default geographical location for content.",
"schema": {
"type": "string",
"required": true,
"default": "US",
"enum": [
{
"value": "AE",
"description": "AE"
},
{
"value": "AR",
"description": "AR"
},
{
"value": "AT",
"description": "AT"
},
{
"value": "AU",
"description": "AU"
},
{
"value": "AZ",
"description": "AZ"
},
{
"value": "BA",
"description": "BA"
},
{
"value": "BD",
"description": "BD"
},
{
"value": "BE",
"description": "BE"
},
{
"value": "BG",
"description": "BG"
},
{
"value": "BH",
"description": "BH"
},
{
"value": "BO",
"description": "BO"
},
{
"value": "BR",
"description": "BR"
},
{
"value": "BY",
"description": "BY"
},
{
"value": "CA",
"description": "CA"
},
{
"value": "CH",
"description": "CH"
},
{
"value": "CL",
"description": "CL"
},
{
"value": "CO",
"description": "CO"
},
{
"value": "CR",
"description": "CR"
},
{
"value": "CY",
"description": "CY"
},
{
"value": "CZ",
"description": "CZ"
},
{
"value": "DE",
"description": "DE"
},
{
"value": "DK",
"description": "DK"
},
{
"value": "DO",
"description": "DO"
},
{
"value": "DZ",
"description": "DZ"
},
{
"value": "EC",
"description": "EC"
},
{
"value": "EE",
"description": "EE"
},
{
"value": "EG",
"description": "EG"
},
{
"value": "ES",
"description": "ES"
},
{
"value": "FI",
"description": "FI"
},
{
"value": "FR",
"description": "FR"
},
{
"value": "GB",
"description": "GB"
},
{
"value": "GE",
"description": "GE"
},
{
"value": "GH",
"description": "GH"
},
{
"value": "GR",
"description": "GR"
},
{
"value": "GT",
"description": "GT"
},
{
"value": "HK",
"description": "HK"
},
{
"value": "HN",
"description": "HN"
},
{
"value": "HR",
"description": "HR"
},
{
"value": "HU",
"description": "HU"
},
{
"value": "ID",
"description": "ID"
},
{
"value": "IE",
"description": "IE"
},
{
"value": "IL",
"description": "IL"
},
{
"value": "IN",
"description": "IN"
},
{
"value": "IQ",
"description": "IQ"
},
{
"value": "IS",
"description": "IS"
},
{
"value": "IT",
"description": "IT"
},
{
"value": "JM",
"description": "JM"
},
{
"value": "JO",
"description": "JO"
},
{
"value": "JP",
"description": "JP"
},
{
"value": "KE",
"description": "KE"
},
{
"value": "KR",
"description": "KR"
},
{
"value": "KW",
"description": "KW"
},
{
"value": "KZ",
"description": "KZ"
},
{
"value": "LB",
"description": "LB"
},
{
"value": "LI",
"description": "LI"
},
{
"value": "LK",
"description": "LK"
},
{
"value": "LT",
"description": "LT"
},
{
"value": "LU",
"description": "LU"
},
{
"value": "LV",
"description": "LV"
},
{
"value": "LY",
"description": "LY"
},
{
"value": "MA",
"description": "MA"
},
{
"value": "ME",
"description": "ME"
},
{
"value": "MK",
"description": "MK"
},
{
"value": "MT",
"description": "MT"
},
{
"value": "MX",
"description": "MX"
},
{
"value": "MY",
"description": "MY"
},
{
"value": "NG",
"description": "NG"
},
{
"value": "NI",
"description": "NI"
},
{
"value": "NL",
"description": "NL"
},
{
"value": "NO",
"description": "NO"
},
{
"value": "NP",
"description": "NP"
},
{
"value": "NZ",
"description": "NZ"
},
{
"value": "OM",
"description": "OM"
},
{
"value": "PA",
"description": "PA"
},
{
"value": "PE",
"description": "PE"
},
{
"value": "PG",
"description": "PG"
},
{
"value": "PH",
"description": "PH"
},
{
"value": "PK",
"description": "PK"
},
{
"value": "PL",
"description": "PL"
},
{
"value": "PR",
"description": "PR"
},
{
"value": "PT",
"description": "PT"
},
{
"value": "PY",
"description": "PY"
},
{
"value": "QA",
"description": "QA"
},
{
"value": "RO",
"description": "RO"
},
{
"value": "RS",
"description": "RS"
},
{
"value": "RU",
"description": "RU"
},
{
"value": "SA",
"description": "SA"
},
{
"value": "SE",
"description": "SE"
},
{
"value": "SG",
"description": "SG"
},
{
"value": "SI",
"description": "SI"
},
{
"value": "SK",
"description": "SK"
},
{
"value": "SN",
"description": "SN"
},
{
"value": "SV",
"description": "SV"
},
{
"value": "TH",
"description": "TH"
},
{
"value": "TN",
"description": "TN"
},
{
"value": "TR",
"description": "TR"
},
{
"value": "TW",
"description": "TW"
},
{
"value": "TZ",
"description": "TZ"
},
{
"value": "UA",
"description": "UA"
},
{
"value": "UG",
"description": "UG"
},
{
"value": "US",
"description": "US"
},
{
"value": "UY",
"description": "UY"
},
{
"value": "VE",
"description": "VE"
},
{
"value": "VN",
"description": "VN"
},
{
"value": "YE",
"description": "YE"
},
{
"value": "ZA",
"description": "ZA"
},
{
"value": "ZW",
"description": "ZW"
}
]
}
},
{
"variable": "captions",
"label": "Captions",
"description": "Top 3 preferred languages for video captions. Exactly 3 Captions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "captionEntry",
"label": "Caption Entry",
"schema": {
"type": "string",
"required": true,
"default": "",
"enum": [
{
"value": "English",
"description": "English"
},
{
"value": "English (auto-generated)",
"description": "English (auto-generated)"
},
{
"value": "Afrikaans",
"description": "Afrikaans"
},
{
"value": "Albanian",
"description": "Albanian"
},
{
"value": "Amharic",
"description": "Amharic"
},
{
"value": "Arabic",
"description": "Arabic"
},
{
"value": "Armenian",
"description": "Armenian"
},
{
"value": "Azerbaijani",
"description": "Azerbaijani"
},
{
"value": "Bangla",
"description": "Bangla"
},
{
"value": "Basque",
"description": "Basque"
},
{
"value": "Belarusian",
"description": "Belarusian"
},
{
"value": "Bosnian",
"description": "Bosnian"
},
{
"value": "Bulgarian",
"description": "Bulgarian"
},
{
"value": "Burmese",
"description": "Burmese"
},
{
"value": "Catalan",
"description": "Catalan"
},
{
"value": "Cebuano",
"description": "Cebuano"
},
{
"value": "Chinese (Simplified)",
"description": "Chinese (Simplified)"
},
{
"value": "Chinese (Traditional)",
"description": "Chinese (Traditional)"
},
{
"value": "Corsican",
"description": "Corsican"
},
{
"value": "Croatian",
"description": "Croatian"
},
{
"value": "Czech",
"description": "Czech"
},
{
"value": "Danish",
"description": "Danish"
},
{
"value": "Dutch",
"description": "Dutch"
},
{
"value": "Esperanto",
"description": "Esperanto"
},
{
"value": "Estonian",
"description": "Estonian"
},
{
"value": "Filipino",
"description": "Filipino"
},
{
"value": "Finnish",
"description": "Finnish"
},
{
"value": "French",
"description": "French"
},
{
"value": "Galician",
"description": "Galician"
},
{
"value": "Georgian",
"description": "Georgian"
},
{
"value": "German",
"description": "German"
},
{
"value": "Greek",
"description": "Greek"
},
{
"value": "Gujarati",
"description": "Gujarati"
},
{
"value": "Haitian Creole",
"description": "Haitian Creole"
},
{
"value": "Hausa",
"description": "Hausa"
},
{
"value": "Hawaiian",
"description": "Hawaiian"
},
{
"value": "Hebrew",
"description": "Hebrew"
},
{
"value": "Hindi",
"description": "Hindi"
},
{
"value": "Hmong",
"description": "Hmong"
},
{
"value": "Hungarian",
"description": "Hungarian"
},
{
"value": "Icelandic",
"description": "Icelandic"
},
{
"value": "Igbo",
"description": "Igbo"
},
{
"value": "Indonesian",
"description": "Indonesian"
},
{
"value": "Irish",
"description": "Irish"
},
{
"value": "Italian",
"description": "Italian"
},
{
"value": "Japanese",
"description": "Japanese"
},
{
"value": "Javanese",
"description": "Javanese"
},
{
"value": "Kannada",
"description": "Kannada"
},
{
"value": "Kazakh",
"description": "Kazakh"
},
{
"value": "Khmer",
"description": "Khmer"
},
{
"value": "Korean",
"description": "Korean"
},
{
"value": "Kurdish",
"description": "Kurdish"
},
{
"value": "Kyrgyz",
"description": "Kyrgyz"
},
{
"value": "Lao",
"description": "Lao"
},
{
"value": "Latin",
"description": "Latin"
},
{
"value": "Latvian",
"description": "Latvian"
},
{
"value": "Lithuanian",
"description": "Lithuanian"
},
{
"value": "Luxembourgish",
"description": "Luxembourgish"
},
{
"value": "Macedonian",
"description": "Macedonian"
},
{
"value": "Malagasy",
"description": "Malagasy"
},
{
"value": "Malay",
"description": "Malay"
},
{
"value": "Malayalam",
"description": "Malayalam"
},
{
"value": "Maltese",
"description": "Maltese"
},
{
"value": "Maori",
"description": "Maori"
},
{
"value": "Marathi",
"description": "Marathi"
},
{
"value": "Mongolian",
"description": "Mongolian"
},
{
"value": "Nepali",
"description": "Nepali"
},
{
"value": "Norwegian Bokm\u00e5l",
"description": "Norwegian Bokm\u00e5l"
},
{
"value": "Nyanja",
"description": "Nyanja"
},
{
"value": "Pashto",
"description": "Pashto"
},
{
"value": "Persian",
"description": "Persian"
},
{
"value": "Polish",
"description": "Polish"
},
{
"value": "Portuguese",
"description": "Portuguese"
},
{
"value": "Punjabi",
"description": "Punjabi"
},
{
"value": "Romanian",
"description": "Romanian"
},
{
"value": "Russian",
"description": "Russian"
},
{
"value": "Samoan",
"description": "Samoan"
},
{
"value": "Scottish Gaelic",
"description": "Scottish Gaelic"
},
{
"value": "Serbian",
"description": "Serbian"
},
{
"value": "Shona",
"description": "Shona"
},
{
"value": "Sindhi",
"description": "Sindhi"
},
{
"value": "Sinhala",
"description": "Sinhala"
},
{
"value": "Slovak",
"description": "Slovak"
},
{
"value": "Slovenian",
"description": "Slovenian"
},
{
"value": "Somali",
"description": "Somali"
},
{
"value": "Southern Sotho",
"description": "Southern Sotho"
},
{
"value": "Spanish",
"description": "Spanish"
},
{
"value": "Spanish (Latin America)",
"description": "Spanish (Latin America)"
},
{
"value": "Sundanese",
"description": "Sundanese"
},
{
"value": "Swahili",
"description": "Swahili"
},
{
"value": "Swedish",
"description": "Swedish"
},
{
"value": "Tajik",
"description": "Tajik"
},
{
"value": "Tamil",
"description": "Tamil"
},
{
"value": "Telugu",
"description": "Telugu"
},
{
"value": "Thai",
"description": "Thai"
},
{
"value": "Turkish",
"description": "Turkish"
},
{
"value": "Ukrainian",
"description": "Ukrainian"
},
{
"value": "Urdu",
"description": "Urdu"
},
{
"value": "Uzbek",
"description": "Uzbek"
},
{
"value": "Vietnamese",
"description": "Vietnamese"
},
{
"value": "Welsh",
"description": "Welsh"
},
{
"value": "Western Frisian",
"description": "Western Frisian"
},
{
"value": "Xhosa",
"description": "Xhosa"
},
{
"value": "Yiddish",
"description": "Yiddish"
},
{
"value": "Yoruba",
"description": "Yoruba"
},
{
"value": "Zulu",
"description": "Zulu"
}
]
}
}
]
}
}
]
}
},
{
"variable": "interface",
"label": "Interface",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "dark_mode",
"label": "Dark Mode",
"description": "Enable/Disable dark mode.",
"schema": {
"type": "string",
"required": true,
"default": "auto",
"enum": [
{
"value": "auto",
"description": "Auto"
},
{
"value": "dark",
"description": "Dark"
},
{
"value": "light",
"description": "Light"
}
]
}
},
{
"variable": "thin_mode",
"label": "Thin Mode",
"description": "Enable/Disable thin mode (no video thumbnails).",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "feed_menu",
"label": "Feed Menu",
"description": "List of feeds available on the home page. Defaults to all. Max 4 feed items",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "feedEntry",
"label": "Feed Entry",
"schema": {
"type": "string",
"required": true,
"default": "",
"enum": [
{
"value": "Popular",
"description": "Popular"
},
{
"value": "Trending",
"description": "Trending"
},
{
"value": "Subscriptions",
"description": "Subscriptions"
},
{
"value": "Playlists",
"description": "Playlists"
}
]
}
}
]
}
},
{
"variable": "default_home",
"label": "Default Home",
"description": "Default feed to display on the home page.",
"schema": {
"type": "string",
"default": "",
"enum": [
{
"value": "",
"description": "None"
},
{
"value": "Popular",
"description": "Popular"
},
{
"value": "Trending",
"description": "Trending"
},
{
"value": "Subscriptions",
"description": "Subscriptions"
},
{
"value": "Playlists",
"description": "Playlists"
}
]
}
},
{
"variable": "max_results",
"label": "Max Results",
"description": "Default number of results to display per page.",
"schema": {
"type": "int",
"required": true,
"default": 40
}
},
{
"variable": "annotations",
"label": "Annotations",
"description": "Show/hide annotations.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "annotations_subscribed",
"label": "Annotations Subscribed",
"description": "Show/hide subscribed annotations.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "comments",
"label": "Comments",
"description": "Type of comments to display below video. Exactly 2 Types",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "commentEntry",
"label": "Comment Entry",
"schema": {
"type": "string",
"required": true,
"default": "",
"enum": [
{
"value": "",
"description": "None"
},
{
"value": "youtube",
"description": "Youtube"
},
{
"value": "reddit",
"description": "Reddit"
}
]
}
}
]
}
},
{
"variable": "player_style",
"label": "Player Style",
"description": "Default player style.",
"schema": {
"type": "string",
"required": true,
"default": "invidious",
"enum": [
{
"value": "invidious",
"description": "Invidious"
},
{
"value": "youtube",
"description": "Youtube"
}
]
}
},
{
"variable": "related_videos",
"label": "Related Videos",
"description": "Show/Hide the \"related videos\" sidebar when watching a video.",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "video_player_behavior",
"label": "Video Player Behavior",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "autoplay",
"label": "Autoplay",
"description": "Automatically play videos on page load.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "continue",
"label": "Continue",
"description": "Automatically load the \"next\" video (either next in playlist or proposed) when the current video ends.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "continue_autoplay",
"label": "Continue Autoplay",
"description": "Autoplay next video by default.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "listen",
"label": "Listen",
"description": "Play videos in Audio-only mode by default.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "video_loop",
"label": "Video Loop",
"description": "Loop videos automatically.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "video_playback_settings",
"label": "Video Playback Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "quality",
"label": "Quality",
"description": "Default video quality.",
"schema": {
"type": "string",
"required": true,
"default": "hd720",
"enum": [
{
"value": "hd720",
"description": "HD720"
},
{
"value": "dash",
"description": "Dash"
},
{
"value": "medium",
"description": "Medium"
},
{
"value": "small",
"description": "Small"
}
]
}
},
{
"variable": "quality_dash",
"label": "Quality Dash",
"description": "Default dash video quality.",
"schema": {
"type": "string",
"show_if": [
[
"quality",
"=",
"dash"
]
],
"required": true,
"default": "auto",
"enum": [
{
"value": "auto",
"description": "Auto"
},
{
"value": "best",
"description": "Best"
},
{
"value": "4320p",
"description": "4320p"
},
{
"value": "2160p",
"description": "2160p"
},
{
"value": "1440p",
"description": "1440p"
},
{
"value": "1080p",
"description": "1080p"
},
{
"value": "720p",
"description": "720p"
},
{
"value": "480p",
"description": "480p"
},
{
"value": "480p",
"description": "480p"
},
{
"value": "360p",
"description": "360p"
},
{
"value": "240p",
"description": "240p"
},
{
"value": "144p",
"description": "144p"
},
{
"value": "worst",
"description": "Worst"
}
]
}
},
{
"variable": "speed",
"label": "Speed",
"description": "Default video playback speed.",
"schema": {
"type": "string",
"required": true,
"valid_chars": "^[0-9]+(\\.[0-9]{1,2})?$",
"default": "1.00"
}
},
{
"variable": "volume",
"label": "Volume",
"description": "Default volume.",
"schema": {
"type": "int",
"min": 1,
"max": 100,
"required": true,
"default": 100
}
},
{
"variable": "vr_mode",
"label": "VR Mode",
"description": "Allow 360\u00b0 videos to be played.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "subscription_feed",
"label": "Subscription Feed",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "latest_only",
"label": "Latest Only",
"description": "In the \"Subscription\" feed, only show the latest video of each channel the user is subscribed to.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "notifications_only",
"label": "Notifications Only",
"description": "Enable/Disable user subscriptions desktop notifications.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "unseen_only",
"label": "Unseen Only",
"description": "In the \"Subscription\" feed, Only show the videos that the user haven't watched yet.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "sort",
"label": "Sort",
"description": "Default sorting parameter for subscription feeds.",
"schema": {
"type": "string",
"required": true,
"default": "published",
"enum": [
{
"value": "alphabetically",
"description": "Alphabetically"
},
{
"value": "alphabetically - reverse",
"description": "Alphabetically - Reverse"
},
{
"value": "channel name",
"description": "Channel Name"
},
{
"value": "channel name - reverse",
"description": "Channel Name - Reverse"
},
{
"value": "published",
"description": "Published"
},
{
"value": "published - reverse",
"description": "Published - Reverse"
}
]
}
}
]
}
},
{
"variable": "miscellaneous",
"label": "Miscellaneous",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "local",
"label": "Local",
"description": "Proxy videos through instance by default.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "show_nick",
"label": "Show Nick",
"description": "Show the connected user's nick at the top right.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "automatic_instance_redirect",
"label": "Automatic Instance Redirect",
"description": "Automatically redirect to a random instance when the user uses any \"switch invidious instance\" link",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "extend_desc",
"label": "Extend Description",
"description": "Show the entire video description",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "TZ",
"label": "Timezone",
"group": "General Settings",
"schema": {
"type": "string",
"default": "America/Los_Angeles",
"$ref": [
"definitions/timezone"
],
"enum": [
{
"value": "Asia/Damascus",
"description": "'Asia/Damascus' timezone"
},
{
"value": "Asia/Saigon",
"description": "'Asia/Saigon' timezone"
}
]
}
},
{
"variable": "podOptions",
"group": "General Settings",
"label": "Global Pod Options (Advanced)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "expertPodOpts",
"label": "Expert - Pod Options",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "hostNetwork",
"label": "Host Networking",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dnsConfig",
"label": "DNS Configuration",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "options",
"label": "Options",
"schema": {
"type": "list",
"default": [
{
"name": "ndots",
"value": "1"
}
],
"items": [
{
"variable": "optionsEntry",
"label": "Option Entry",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "nameservers",
"label": "Nameservers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "nsEntry",
"label": "Nameserver Entry",
"schema": {
"type": "string",
"required": true
}
}
]
}
},
{
"variable": "searches",
"label": "Searches",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "searchEntry",
"label": "Search Entry",
"schema": {
"type": "string",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "imagePullSecretList",
"group": "General Settings",
"label": "Image Pull Secrets",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "pullsecretentry",
"label": "Pull Secret",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "data",
"label": "Data",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "registry",
"label": "Registry",
"schema": {
"type": "string",
"required": true,
"default": "https://index.docker.io/v1/"
}
},
{
"variable": "username",
"label": "Username",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "password",
"label": "Password",
"schema": {
"type": "string",
"required": true,
"private": true,
"default": ""
}
},
{
"variable": "email",
"label": "Email",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "service",
"group": "Networking and Services",
"label": "Configure Service(s)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Service",
"description": "The Primary service on which the healthcheck runs, often the webUI",
"schema": {
"additional_attrs": true,
"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 and Loadbalancer exposes the service using the system loadbalancer",
"schema": {
"type": "string",
"default": "LoadBalancer",
"enum": [
{
"value": "LoadBalancer",
"description": "LoadBalancer (Expose Ports)"
},
{
"value": "ClusterIP",
"description": "ClusterIP (Do Not Expose Ports)"
}
]
}
},
{
"variable": "loadBalancerIP",
"label": "LoadBalancer IP",
"description": "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB",
"schema": {
"show_if": [
[
"type",
"=",
"LoadBalancer"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "ports",
"label": "Service's Port(s) Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Service Port Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Port",
"description": "This port exposes the container port on the service",
"schema": {
"type": "int",
"default": 10594,
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "serviceexpert",
"group": "Networking and Services",
"label": "Show Expert Config",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "scaleExternalInterface",
"description": "Add External Interfaces",
"label": "Add external Interfaces",
"group": "Networking",
"schema": {
"type": "list",
"items": [
{
"variable": "interfaceConfiguration",
"description": "Interface Configuration",
"label": "Interface Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"$ref": [
"normalize/interfaceConfiguration"
],
"attrs": [
{
"variable": "hostInterface",
"description": "Please Specify Host Interface",
"label": "Host Interface",
"schema": {
"type": "string",
"required": true,
"$ref": [
"definitions/interface"
],
"enum": []
}
},
{
"variable": "ipam",
"description": "Define how IP Address will be managed",
"label": "IP Address Management",
"schema": {
"additional_attrs": true,
"type": "dict",
"required": true,
"attrs": [
{
"variable": "type",
"description": "Specify type for IPAM",
"label": "IPAM Type",
"schema": {
"type": "string",
"required": true,
"enum": [
{
"value": "dhcp",
"description": "Use DHCP"
},
{
"value": "static",
"description": "Use Static IP"
}
]
}
},
{
"variable": "staticIPConfigurations",
"label": "Static IP Addresses",
"schema": {
"type": "list",
"show_if": [
[
"type",
"=",
"static"
]
],
"items": [
{
"variable": "staticIP",
"label": "Static IP",
"schema": {
"type": "ipaddr",
"cidr": true
}
}
]
}
},
{
"variable": "staticRoutes",
"label": "Static Routes",
"schema": {
"type": "list",
"show_if": [
[
"type",
"=",
"static"
]
],
"items": [
{
"variable": "staticRouteConfiguration",
"label": "Static Route Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "destination",
"label": "Destination",
"schema": {
"type": "ipaddr",
"cidr": true,
"required": true
}
},
{
"variable": "gateway",
"label": "Gateway",
"schema": {
"type": "ipaddr",
"cidr": false,
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "serviceList",
"label": "Add Manual Custom Services",
"group": "Networking and Services",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "serviceListEntry",
"label": "Custom Service",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the service",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "type",
"label": "Service Type",
"description": "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer",
"schema": {
"type": "string",
"default": "LoadBalancer",
"enum": [
{
"value": "LoadBalancer",
"description": "LoadBalancer (Expose Ports)"
},
{
"value": "ClusterIP",
"description": "ClusterIP (Do Not Expose Ports)"
},
{
"value": "Simple",
"description": "Deprecated CHANGE THIS"
}
]
}
},
{
"variable": "loadBalancerIP",
"label": "LoadBalancer IP",
"description": "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB",
"schema": {
"show_if": [
[
"type",
"=",
"LoadBalancer"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "advancedsvcset",
"label": "Show Advanced Service Settings",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "externalIPs",
"label": "External IP's",
"description": "External IP's",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "externalIP",
"label": "External IP",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "ipFamilyPolicy",
"label": "IP Family Policy",
"description": "Specify the IP Policy",
"schema": {
"type": "string",
"default": "SingleStack",
"enum": [
{
"value": "SingleStack",
"description": "SingleStack"
},
{
"value": "PreferDualStack",
"description": "PreferDualStack"
},
{
"value": "RequireDualStack",
"description": "RequireDualStack"
}
]
}
},
{
"variable": "ipFamilies",
"label": "IP Families",
"description": "(Advanced) The IP Families that should be used",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ipFamily",
"label": "IP Family",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "portsList",
"label": "Additional Service Ports",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "portsListEntry",
"label": "Custom ports",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the Port",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Port Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "protocol",
"label": "Port Type",
"schema": {
"type": "string",
"default": "tcp",
"enum": [
{
"value": "http",
"description": "HTTP"
},
{
"value": "https",
"description": "HTTPS"
},
{
"value": "tcp",
"description": "TCP"
},
{
"value": "udp",
"description": "UDP"
}
]
}
},
{
"variable": "targetPort",
"label": "Target Port",
"description": "This port exposes the container port on the service",
"schema": {
"type": "int",
"required": true
}
},
{
"variable": "port",
"label": "Container Port",
"schema": {
"type": "int",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "persistenceList",
"label": "Additional App Storage",
"group": "Storage and Persistence",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "persistenceListEntry",
"label": "Custom Storage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the storage",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "type",
"label": "Type of Storage",
"description": "Sets the persistence type, Anything other than PVC could break rollback!",
"schema": {
"type": "string",
"default": "hostPath",
"enum": [
{
"value": "pvc",
"description": "PVC"
},
{
"value": "hostPath",
"description": "Host Path"
},
{
"value": "emptyDir",
"description": "emptyDir"
},
{
"value": "nfs",
"description": "NFS Share"
}
]
}
},
{
"variable": "server",
"label": "NFS Server",
"schema": {
"show_if": [
[
"type",
"=",
"nfs"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "path",
"label": "Path on NFS Server",
"schema": {
"show_if": [
[
"type",
"=",
"nfs"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "iscsi",
"label": "iSCSI Options",
"schema": {
"show_if": [
[
"type",
"=",
"iscsi"
]
],
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "targetPortal",
"label": "targetPortal",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "iqn",
"label": "iqn",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "lun",
"label": "lun",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "authSession",
"label": "authSession",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "username",
"label": "username",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "password",
"label": "password",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "usernameInitiator",
"label": "usernameInitiator",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "passwordInitiator",
"label": "passwordInitiator",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "authDiscovery",
"label": "authDiscovery",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "username",
"label": "username",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "password",
"label": "password",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "usernameInitiator",
"label": "usernameInitiator",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "passwordInitiator",
"label": "passwordInitiator",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "autoPermissions",
"label": "Automatic Permissions Configuration",
"description": "Automatically set permissions",
"schema": {
"show_if": [
[
"type",
"!=",
"pvc"
]
],
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "chown",
"label": "Run CHOWN",
"description": "It will run CHOWN on the path with the given fsGroup\n",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "chmod",
"label": "Run CHMOD",
"description": "It will run CHMOD on the path with the given value</br>\nFormat should be 3 digits, e.g. 770\n",
"schema": {
"type": "string",
"valid_chars": "[0-9]{3}",
"default": ""
}
},
{
"variable": "recursive",
"label": "Recursive",
"description": "It will run CHOWN and CHMOD recursively\n",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "readOnly",
"label": "Read Only",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "hostPath",
"label": "Host Path",
"description": "Path inside the container the storage is mounted",
"schema": {
"show_if": [
[
"type",
"=",
"hostPath"
]
],
"type": "hostpath"
}
},
{
"variable": "mountPath",
"label": "Mount Path",
"description": "Path inside the container the storage is mounted",
"schema": {
"type": "string",
"default": "",
"required": true,
"valid_chars": "^\\/([a-zA-Z0-9._-]+(\\s?[a-zA-Z0-9._-]+|\\/?))+$"
}
},
{
"variable": "medium",
"label": "EmptyDir Medium",
"schema": {
"show_if": [
[
"type",
"=",
"emptyDir"
]
],
"type": "string",
"default": "",
"enum": [
{
"value": "",
"description": "Default"
},
{
"value": "Memory",
"description": "Memory"
}
]
}
},
{
"variable": "size",
"label": "Size Quotum of Storage",
"schema": {
"show_if": [
[
"type",
"=",
"pvc"
]
],
"type": "string",
"default": "256Gi"
}
},
{
"variable": "storageClass",
"label": "storageClass (Advanced)",
"description": "sets the storageClass to something other than iX default. Only for advanced usecases!",
"schema": {
"show_if": [
[
"type",
"=",
"pvc"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "static",
"label": "Static Fixed PVC Bindings (Experimental)",
"description": "Link a PVC to a specific storage location",
"schema": {
"show_if": [
[
"type",
"=",
"pvc"
]
],
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "mode",
"label": "mode",
"description": "disabled: use normal dynamic PVCs\nsmb: connect to an SMB share\nnfs: connect to an NFS share\n",
"schema": {
"type": "string",
"default": "disabled",
"enum": [
{
"value": "disabled",
"description": "disabled"
},
{
"value": "smb",
"description": "smb"
},
{
"value": "nfs",
"description": "nfs"
}
]
}
},
{
"variable": "server",
"label": "Server",
"description": "server to connect to",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"!=",
"disabled"
]
],
"default": "myserver"
}
},
{
"variable": "share",
"label": "Share",
"description": "share to connect to",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"!=",
"disabled"
]
],
"default": "/myshare"
}
},
{
"variable": "user",
"label": "User",
"description": "connecting user",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"=",
"smb"
]
],
"default": "myuser"
}
},
{
"variable": "domain",
"label": "Domain",
"description": "user domain",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"=",
"smb"
]
],
"default": ""
}
},
{
"variable": "password",
"label": "Password",
"description": "connecting password",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"=",
"smb"
]
],
"default": ""
}
}
]
}
},
{
"variable": "volumeSnapshots",
"label": "Volume Snapshots (Experimental)",
"description": "Add an entry to the list to force creation of a volumeSnapshot of this PVC",
"schema": {
"show_if": [
[
"type",
"=",
"pvc"
]
],
"type": "list",
"default": [],
"items": [
{
"variable": "volumeSnapshotEntry",
"label": "Custom volumeSnapshot",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "WARNING: renaming this, means deletion of the snapshot with the old name!",
"schema": {
"type": "string",
"default": "mysnapshot",
"required": true
}
},
{
"variable": "volumeSnapshotClassName",
"label": "volumeSnapshot Class Name (Advanced)",
"description": "For use with PVCs using a non-default storageClass",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingress",
"label": "",
"group": "Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [
{
"path": "/",
"pathType": "Prefix"
}
],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests (advanced)",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace (optional)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
},
{
"variable": "homepage",
"label": "Homepage",
"description": "Connect ingress with Homepage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "name",
"label": "Name (Optional)",
"description": "Defaults to chart name",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "description",
"label": "Description (Optional)",
"description": "Defaults to chart description",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "icon",
"label": "Icon (Optional)",
"description": "Defaults to chart icon",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "group",
"label": "Group",
"schema": {
"type": "string",
"required": true,
"default": "default",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "widget",
"label": "Widget Settings",
"schema": {
"type": "dict",
"additional_attrs": true,
"show_if": [
[
"enabled",
"=",
true
]
],
"attrs": [
{
"variable": "enabled",
"label": "Enable Widget",
"description": "When disabled all widget annotations are skipped.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "custom",
"label": "Options",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "key",
"label": "API-key (key)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "customkv",
"label": "Custom Options",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "option",
"label": "Option",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "ingressClassName",
"label": "(Advanced/Optional) IngressClass Name",
"schema": {
"type": "string",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": ""
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": [],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your cert-manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Certificate Secret (Advanced)",
"schema": {
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingressList",
"label": "Add Manual Custom Ingresses",
"group": "Ingress",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ingressListEntry",
"label": "Custom Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "ingressClassName",
"label": "IngressClass Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
},
{
"variable": "overrideService",
"label": "Linked Service",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Service Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "port",
"label": "Service Port",
"schema": {
"type": "int"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Secret (Advanced)",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
},
{
"variable": "homepage",
"label": "Homepage",
"description": "Connect ingress with Homepage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "name",
"label": "Name",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "description",
"label": "Description",
"description": "defaults to chart description",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "group",
"label": "Group",
"schema": {
"type": "string",
"required": true,
"default": "default",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "securityContext",
"group": "Security and Permissions",
"label": "Security Context",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "container",
"label": "Container",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "runAsUser",
"label": "runAsUser",
"description": "The UserID of the user running the application",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "runAsGroup",
"label": "runAsGroup",
"description": "The groupID of the user running the application",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "PUID",
"label": "Process User ID - PUID",
"description": "When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps",
"schema": {
"type": "int",
"show_if": [
[
"runAsUser",
"=",
0
]
],
"default": 568
}
},
{
"variable": "UMASK",
"label": "UMASK",
"description": "When supported by the container, this sets the UMASK for the App. Not supported by all Apps",
"schema": {
"type": "string",
"default": "0022"
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "privileged",
"label": "Privileged mode",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "readOnlyRootFilesystem",
"label": "ReadOnly Root Filesystem",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
}
]
}
},
{
"variable": "pod",
"label": "Pod",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "fsGroupChangePolicy",
"label": "When should we take ownership?",
"schema": {
"type": "string",
"default": "OnRootMismatch",
"enum": [
{
"value": "OnRootMismatch",
"description": "OnRootMismatch"
},
{
"value": "Always",
"description": "Always"
}
]
}
},
{
"variable": "supplementalGroups",
"label": "Supplemental Groups",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "supplementalGroupsEntry",
"label": "Supplemental Group",
"schema": {
"type": "int"
}
}
]
}
},
{
"variable": "fsGroup",
"label": "fsGroup",
"description": "The group that should own ALL storage.",
"schema": {
"type": "int",
"default": 568
}
}
]
}
}
]
}
},
{
"variable": "resources",
"group": "Resources and Devices",
"label": "Resource Limits",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "limits",
"label": "Advanced Limit Resource Consumption",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "cpu",
"label": "CPU",
"description": "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "4000m",
"valid_chars": "^(?!^0(\\.0|m|)$)([0-9]+)(\\.[0-9]|m?)$"
}
},
{
"variable": "memory",
"label": "RAM",
"description": "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "8Gi",
"valid_chars": "^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$"
}
},
{
"variable": "intel.com/i915",
"label": "Add Intel i915 GPUs",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "nvidia.com/gpu",
"label": "Add NVIDIA GPUs (Experimental)",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "amd.com/gpu",
"label": "Add AMD GPUs",
"schema": {
"type": "int",
"default": 0
}
}
]
}
},
{
"variable": "requests",
"label": "Minimum Resources Required (request)",
"schema": {
"additional_attrs": true,
"type": "dict",
"hidden": true,
"attrs": [
{
"variable": "cpu",
"label": "CPU",
"description": "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "10m",
"hidden": true,
"valid_chars": "^(?!^0(\\.0|m|)$)([0-9]+)(\\.[0-9]|m?)$"
}
},
{
"variable": "memory",
"label": "RAM",
"description": "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "50Mi",
"hidden": true,
"valid_chars": "^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$"
}
}
]
}
}
]
}
},
{
"variable": "deviceList",
"label": "Mount USB Devices",
"group": "Resources and Devices",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "deviceListEntry",
"label": "Device",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the Storage",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "type",
"label": "(Advanced) Type of Storage",
"description": "Sets the persistence type",
"schema": {
"type": "string",
"default": "device",
"hidden": true
}
},
{
"variable": "readOnly",
"label": "readOnly",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "hostPath",
"label": "Host Device Path",
"description": "Path to the device on the host system",
"schema": {
"type": "path"
}
},
{
"variable": "mountPath",
"label": "Container Device Path",
"description": "Path inside the container the device is mounted",
"schema": {
"type": "string",
"default": "/dev/ttyACM0"
}
}
]
}
}
]
}
},
{
"variable": "scaleGPU",
"label": "GPU Configuration",
"group": "Resources and Devices",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "scaleGPUEntry",
"label": "GPU",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "gpu",
"label": "Select GPU",
"schema": {
"additional_attrs": true,
"type": "dict",
"$ref": [
"definitions/gpuConfiguration"
],
"attrs": []
}
},
{
"variable": "workaround",
"label": "Workaround",
"schema": {
"type": "string",
"default": "workaround",
"hidden": true
}
}
]
}
}
]
}
},
{
"variable": "cnpg",
"group": "Postgresql",
"label": "CloudNative-PG (CNPG)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Postgresql Database",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hibernate",
"label": "Hibernate",
"description": "enable to safely hibernate and shutdown the postgresql cluster",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "mode",
"label": "Mode",
"description": "Cluster mode of operation. Available modes: standalone - default mode. Creates new or updates an existing CNPG cluster. recovery - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup replica - Creates a replica cluster from an existing CNPG cluster. # TODO.",
"schema": {
"type": "string",
"default": "standalone",
"enum": [
{
"value": "standalone",
"description": "standalone"
},
{
"value": "replica",
"description": "replica"
},
{
"value": "recovery",
"description": "recovery"
}
]
}
},
{
"variable": "cluster",
"label": "Cluster Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "instances",
"label": "Instances",
"schema": {
"type": "int",
"default": 1
}
},
{
"variable": "singleNode",
"label": "singleNode",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "storage",
"label": "Storage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "size",
"label": "Size",
"schema": {
"type": "string",
"default": "256Gi"
}
}
]
}
},
{
"variable": "walStorage",
"label": "WAL Storage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "size",
"label": "Size",
"schema": {
"type": "string",
"default": "256Gi"
}
}
]
}
}
]
}
},
{
"variable": "monitoring",
"label": "Monitoring Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enablePodMonitor",
"label": "enablePodMonitor",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "disableDefaultQueries",
"label": "disableDefaultQueries",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "pooler",
"label": "Pooler Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "instances",
"label": "Instances",
"schema": {
"type": "int",
"default": 1
}
},
{
"variable": "createRO",
"label": "Create ReadOnly Instance",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "recovery",
"label": "Recovery Settings (Experimental)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "endpointURL",
"label": "endpointURL",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "method",
"label": "method",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": "object_store"
}
},
{
"variable": "backupName",
"label": "backupName",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "provider",
"label": "provider",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": "s3",
"enum": [
{
"value": "s3",
"description": "S3"
},
{
"value": "azure",
"description": "Azure"
},
{
"value": "google",
"description": "Google"
}
]
}
},
{
"variable": "s3",
"label": "s3",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"s3"
]
],
"attrs": [
{
"variable": "region",
"label": "region",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "bucket",
"label": "bucket",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "accessKey",
"label": "accessKey",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "secretKey",
"label": "secretKey",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "azure",
"label": "azure (EXTREMELY EXPERIMENTAL)",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"azure"
]
],
"attrs": [
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "connectionString",
"label": "connectionString",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageAccount",
"label": "storageAccount",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageKey",
"label": "storageKey",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageSasToken",
"label": "storageSasToken",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "containerName",
"label": "containerName",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "serviceName",
"label": "serviceName",
"schema": {
"type": "string",
"default": "blob"
}
},
{
"variable": "inheritFromAzureAD",
"label": "inheritFromAzureAD",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "google",
"label": "google (EXTREMELY EXPERIMENTAL)",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"google"
]
],
"attrs": [
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "bucket",
"label": "bucket",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "gkeEnvironment",
"label": "gkeEnvironment",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "applicationCredentials",
"label": "applicationCredentials",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "backups",
"label": "Backup Settings (Experimental)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "endpointURL",
"label": "endpointURL",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "destinationPath",
"label": "destinationPath",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "retentionPolicy",
"label": "retentionPolicy",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": "30d"
}
},
{
"variable": "provider",
"label": "provider",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": "s3",
"enum": [
{
"value": "s3",
"description": "S3"
},
{
"value": "azure",
"description": "Azure"
},
{
"value": "google",
"description": "Google"
}
]
}
},
{
"variable": "s3",
"label": "s3",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"s3"
]
],
"attrs": [
{
"variable": "region",
"label": "region",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "bucket",
"label": "bucket",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "accessKey",
"label": "accessKey",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "secretKey",
"label": "secretKey",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "azure",
"label": "azure (EXTREMELY EXPERIMENTAL)",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"azure"
]
],
"attrs": [
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "connectionString",
"label": "connectionString",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageAccount",
"label": "storageAccount",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageKey",
"label": "storageKey",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "storageSasToken",
"label": "storageSasToken",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "containerName",
"label": "containerName",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "serviceName",
"label": "serviceName",
"schema": {
"type": "string",
"default": "blob"
}
},
{
"variable": "inheritFromAzureAD",
"label": "inheritFromAzureAD",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "google",
"label": "google (EXTREMELY EXPERIMENTAL)",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"google"
]
],
"attrs": [
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "bucket",
"label": "bucket",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "gkeEnvironment",
"label": "gkeEnvironment",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "applicationCredentials",
"label": "applicationCredentials",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "scheduledBackups",
"label": "ScheduledBackups",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "backupschedule",
"label": "BackupSchedule",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "daily-backup",
"required": true
}
},
{
"variable": "schedule",
"label": "schedule",
"schema": {
"type": "string",
"required": true,
"default": "0 0 0 * * *"
}
},
{
"variable": "backupOwnerReference",
"label": "backupOwnerReference",
"schema": {
"type": "string",
"required": true,
"default": "self"
}
},
{
"variable": "immediate",
"label": "immediate",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "suspend",
"label": "suspend",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "manualBackups",
"label": "manualBackups",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "backup",
"label": "Backup",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "networkPolicy",
"group": "Advanced",
"label": "(Advanced) Network Policy",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "netPolicyEntry",
"label": "Network Policy Entry",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "policyType",
"label": "Policy Type",
"schema": {
"type": "string",
"default": "",
"enum": [
{
"value": "",
"description": "Default"
},
{
"value": "ingress",
"description": "Ingress"
},
{
"value": "egress",
"description": "Egress"
},
{
"value": "ingress-egress",
"description": "Ingress and Egress"
}
]
}
},
{
"variable": "egress",
"label": "Egress",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "egressEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "to",
"label": "To",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "toEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "ipBlock",
"label": "IP Block",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "cidr",
"label": "CIDR",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "except",
"label": "Except",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "exceptint",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "namespaceSelector",
"label": "Namespace Selector",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "matchExpressions",
"label": "Match Expressions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "expressionEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string"
}
},
{
"variable": "operator",
"label": "Operator",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "In",
"description": "In"
},
{
"value": "NotIn",
"description": "NotIn"
},
{
"value": "Exists",
"description": "Exists"
},
{
"value": "DoesNotExist",
"description": "DoesNotExist"
}
]
}
},
{
"variable": "values",
"label": "Values",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "value",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "podSelector",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "matchExpressions",
"label": "Match Expressions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "expressionEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string"
}
},
{
"variable": "operator",
"label": "Operator",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "In",
"description": "In"
},
{
"value": "NotIn",
"description": "NotIn"
},
{
"value": "Exists",
"description": "Exists"
},
{
"value": "DoesNotExist",
"description": "DoesNotExist"
}
]
}
},
{
"variable": "values",
"label": "Values",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "value",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ports",
"label": "Ports",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "portsEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Port",
"schema": {
"type": "int"
}
},
{
"variable": "endPort",
"label": "End Port",
"schema": {
"type": "int"
}
},
{
"variable": "protocol",
"label": "Protocol",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "TCP",
"description": "TCP"
},
{
"value": "UDP",
"description": "UDP"
},
{
"value": "SCTP",
"description": "SCTP"
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingress",
"label": "Ingress",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ingressEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "from",
"label": "From",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "fromEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "ipBlock",
"label": "IP Block",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "cidr",
"label": "CIDR",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "except",
"label": "Except",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "exceptint",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "namespaceSelector",
"label": "Namespace Selector",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "matchExpressions",
"label": "Match Expressions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "expressionEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string"
}
},
{
"variable": "operator",
"label": "Operator",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "In",
"description": "In"
},
{
"value": "NotIn",
"description": "NotIn"
},
{
"value": "Exists",
"description": "Exists"
},
{
"value": "DoesNotExist",
"description": "DoesNotExist"
}
]
}
},
{
"variable": "values",
"label": "Values",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "value",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "podSelector",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "matchExpressions",
"label": "Match Expressions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "expressionEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string"
}
},
{
"variable": "operator",
"label": "Operator",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "In",
"description": "In"
},
{
"value": "NotIn",
"description": "NotIn"
},
{
"value": "Exists",
"description": "Exists"
},
{
"value": "DoesNotExist",
"description": "DoesNotExist"
}
]
}
},
{
"variable": "values",
"label": "Values",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "value",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ports",
"label": "Ports",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "portsEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Port",
"schema": {
"type": "int"
}
},
{
"variable": "endPort",
"label": "End Port",
"schema": {
"type": "int"
}
},
{
"variable": "protocol",
"label": "Protocol",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "TCP",
"description": "TCP"
},
{
"value": "UDP",
"description": "UDP"
},
{
"value": "SCTP",
"description": "SCTP"
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "addons",
"group": "Addons",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "codeserver",
"label": "Codeserver",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "service",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Service Type",
"description": "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer",
"schema": {
"type": "string",
"default": "LoadBalancer",
"enum": [
{
"value": "NodePort",
"description": "Deprecated CHANGE THIS"
},
{
"value": "ClusterIP",
"description": "ClusterIP"
},
{
"value": "LoadBalancer",
"description": "LoadBalancer"
}
]
}
},
{
"variable": "loadBalancerIP",
"label": "LoadBalancer IP",
"description": "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB",
"schema": {
"show_if": [
[
"type",
"=",
"LoadBalancer"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "ports",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "codeserver",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Port",
"schema": {
"type": "int",
"default": 36107
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingress",
"label": "Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [
{
"path": "/",
"pathType": "Prefix"
}
],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests (advanced)",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace (optional)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "ingressClassName",
"label": "(Advanced/Optional) IngressClass Name",
"schema": {
"type": "string",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": ""
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": [],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your cert-manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Certificate Secret (Advanced)",
"schema": {
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"type": "string",
"default": ""
}
},
{
"variable": "scaleCert",
"label": "Use TrueNAS SCALE Certificate (Deprecated)",
"schema": {
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"type": "int",
"$ref": [
"definitions/certificate"
],
"enum": [
{
"value": null,
"description": "No Certificate"
}
],
"default": null,
"null": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "envList",
"label": "Codeserver Environment Variables",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "netshoot",
"label": "Netshoot",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "envList",
"label": "Netshoot Environment Variables",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "vpn",
"label": "VPN",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type",
"schema": {
"type": "string",
"default": "disabled",
"enum": [
{
"value": "disabled",
"description": "disabled"
},
{
"value": "gluetun",
"description": "Gluetun"
},
{
"value": "tailscale",
"description": "Tailscale"
},
{
"value": "openvpn",
"description": "OpenVPN (Deprecated)"
},
{
"value": "wireguard",
"description": "Wireguard (Deprecated)"
}
]
}
},
{
"variable": "openvpn",
"label": "OpenVPN Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"type",
"=",
"openvpn"
]
],
"attrs": [
{
"variable": "username",
"label": "Authentication Username (Optional)",
"description": "Authentication Username, Optional",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "password",
"label": "Authentication Password",
"description": "Authentication Credentials",
"schema": {
"type": "string",
"show_if": [
[
"username",
"!=",
""
]
],
"default": "",
"required": true
}
}
]
}
},
{
"variable": "tailscale",
"label": "Tailscale Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"type",
"=",
"tailscale"
]
],
"attrs": [
{
"variable": "authkey",
"label": "Authentication Key",
"description": "Provide an auth key to automatically authenticate the node as your user account.",
"schema": {
"type": "string",
"private": true,
"default": ""
}
},
{
"variable": "auth_once",
"label": "Auth Once",
"description": "Only attempt to log in if not already logged in.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "accept_dns",
"label": "Accept DNS",
"description": "Accept DNS configuration from the admin console.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "userspace",
"label": "Userspace",
"description": "Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "routes",
"label": "Routes",
"description": "Expose physical subnet routes to your entire Tailscale network.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "dest_ip",
"label": "Destination IP",
"description": "Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "sock5_server",
"label": "Sock5 Server",
"description": "The address on which to listen for SOCKS5 proxying into the tailscale net.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "outbound_http_proxy_listen",
"label": "Outbound HTTP Proxy Listen",
"description": "The address on which to listen for HTTP proxying into the tailscale net.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "extra_args",
"label": "Extra Args",
"description": "Extra Args",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "daemon_extra_args",
"label": "Tailscale Daemon Extra Args",
"description": "Tailscale Daemon Extra Args",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "killSwitch",
"label": "Enable Killswitch",
"schema": {
"type": "boolean",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": true
}
},
{
"variable": "excludedNetworks_IPv4",
"label": "Killswitch Excluded IPv4 networks",
"description": "List of Killswitch Excluded IPv4 Addresses",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "networkv4",
"label": "IPv4 Network",
"schema": {
"type": "string",
"required": true
}
}
]
}
},
{
"variable": "excludedNetworks_IPv6",
"label": "Killswitch Excluded IPv6 networks",
"description": "List of Killswitch Excluded IPv6 Addresses",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "networkv6",
"label": "IPv6 Network",
"schema": {
"type": "string",
"required": true
}
}
]
}
},
{
"variable": "configFile",
"label": "VPN Config File Location",
"schema": {
"type": "string",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": ""
}
},
{
"variable": "envList",
"label": "VPN Environment Variables",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"required": true,
"max_length": 10240
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "docs",
"group": "Documentation",
"label": "Please read the documentation at https://truecharts.org",
"description": "Please read the documentation at <br /><a href=\"https://truecharts.org\">https://truecharts.org</a>",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "confirmDocs",
"label": "I have checked the documentation",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "donateNag",
"group": "Documentation",
"label": "Please consider supporting TrueCharts, see https://truecharts.org/sponsor",
"description": "Please consider supporting TrueCharts, see <br /><a href=\"https://truecharts.org/sponsor\">https://truecharts.org/sponsor</a>",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "confirmDonate",
"label": "I have considered donating",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
}
]
}
}
]
},
"app_readme": "<p>Open source alternative front-end to YouTube.</p>\n<p>This App is supplied by TrueCharts, for more information visit the manual: <a href=\"https://truecharts.org/charts/stable/invidious\">https://truecharts.org/charts/stable/invidious</a></p>\n<hr />\n<p>TrueCharts can only exist due to the incredible effort of our staff.\nPlease consider making a <a href=\"https://truecharts.org/sponsor\">donation</a> or contributing back to the project any way you can!</p>",
"detailed_readme": "<hr />\n<h2>title: README</h2>\n<h2>General Info</h2>\n<p>TrueCharts can be installed as both <em>normal</em> Helm Charts or as Apps on TrueNAS SCALE.\nHowever only installations using the TrueNAS SCALE Apps system are supported.</p>\n<p>For more information about this App, please check the docs on the TrueCharts <a href=\"https://truecharts.org/charts/stable/invidious\">website</a></p>\n<p><strong>This chart is not maintained by the upstream project and any issues with the chart should be raised <a href=\"https://github.com/truecharts/charts/issues/new/choose\">here</a></strong></p>\n<h2>Support</h2>\n<ul>\n<li>Please check our <a href=\"https://truecharts.org/manual/SCALE/guides/scale-intro\">quick-start guides for TrueNAS SCALE</a>.</li>\n<li>See the <a href=\"https://truecharts.org\">Website</a></li>\n<li>Check our <a href=\"https://discord.gg/tVsPTHWTtr\">Discord</a></li>\n<li>Open a <a href=\"https://github.com/truecharts/charts/issues/new/choose\">issue</a></li>\n</ul>\n<hr />\n<h2>Sponsor TrueCharts</h2>\n<p>TrueCharts can only exist due to the incredible effort of our staff.\nPlease consider making a <a href=\"https://truecharts.org/sponsor\">donation</a> or contributing back to the project any way you can!</p>\n<p><em>All Rights Reserved - The TrueCharts Project</em></p>",
"changelog": "<hr />\n<h2>title: Changelog</h2>\n<p><em>for the complete changelog, please refer to the website</em></p>\n<p><strong>Important:</strong></p>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.13...invidious-8.1.14\">invidious-8.1.14</a> (2024-02-12)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image quay.io/invidious/invidious to latest<a href=\"https://github.com/3b2e106\">@3b2e106</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/18215\">#18215</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.12...invidious-8.1.13\">invidious-8.1.13</a> (2024-02-03)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.30<a href=\"https://github.com/19ad5ec\">@19ad5ec</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17804\">#17804</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.11...invidious-8.1.12\">invidious-8.1.12</a> (2024-01-29)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image quay.io/invidious/invidious to latest<a href=\"https://github.com/fc25ef2\">@fc25ef2</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17749\">#17749</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.10...invidious-8.1.11\">invidious-8.1.11</a> (2024-01-26)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.29<a href=\"https://github.com/d7c41a3\">@d7c41a3</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17545\">#17545</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.9...invidious-8.1.10\">invidious-8.1.10</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.28<a href=\"https://github.com/918b4c5\">@918b4c5</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17478\">#17478</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.8...invidious-8.1.9\">invidious-8.1.9</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.26<a href=\"https://github.com/24c98f7\">@24c98f7</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17409\">#17409</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.7...invidious-8.1.8\">invidious-8.1.8</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update metadata in chart.yaml (<a href=\"https://github.com/truecharts/charts/issues/17457\">#17457</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.6...invidious-8.1.7\">invidious-8.1.7</a> (2024-01-14)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image quay.io/invidious/invidious to latest<a href=\"https://github.com/7da41b3\">@7da41b3</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17172\">#17172</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.5...invidious-8.1.6\">invidious-8.1.6</a> (2024-01-09)</h2>\n<h3>Chore</h3>"
},
"8.2.1": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/home/runner/work/catalog/catalog/stable/invidious/8.2.1",
"last_update": "2024-02-22 14:02:27",
"required_features": [
"definitions/certificate",
"definitions/timezone",
"definitions/gpuConfiguration",
"definitions/interface",
"normalize/interfaceConfiguration"
],
"human_version": "latest_8.2.1",
"version": "8.2.1",
"chart_metadata": {
"annotations": {
"max_scale_version": "24.04.0",
"min_scale_version": "23.10.0",
"truecharts.org/SCALE-support": "true",
"truecharts.org/category": "media",
"truecharts.org/max_helm_version": "3.14",
"truecharts.org/min_helm_version": "3.12",
"truecharts.org/train": "stable"
},
"apiVersion": "v2",
"appVersion": "latest",
"dependencies": [
{
"name": "common",
"version": "17.4.2",
"repository": "oci://tccr.io/truecharts",
"condition": "",
"alias": "",
"tags": [],
"import-values": []
}
],
"deprecated": false,
"description": "Open source alternative front-end to YouTube.",
"home": "https://truecharts.org/charts/stable/invidious",
"icon": "https://truecharts.org/img/hotlink-ok/chart-icons/invidious.png",
"keywords": [
"invidious",
"youtube",
"media"
],
"kubeVersion": ">=1.24.0-0",
"maintainers": [
{
"name": "TrueCharts",
"email": "info@truecharts.org",
"url": "https://truecharts.org"
}
],
"name": "invidious",
"sources": [
"https://github.com/iv-org/invidious",
"https://docs.invidious.io/installation/#docker",
"https://github.com/truecharts/charts/tree/master/charts/stable/invidious",
"https://quay.io/invidious/invidious"
],
"type": "application",
"version": "8.2.1"
},
"app_metadata": null,
"schema": {
"groups": [
{
"name": "Container Image",
"description": "Image to be used for container"
},
{
"name": "General Settings",
"description": "General Deployment Settings"
},
{
"name": "Workload Settings",
"description": "Workload Settings"
},
{
"name": "App Configuration",
"description": "App Specific Config Options"
},
{
"name": "Networking and Services",
"description": "Configure Network and Services for Container"
},
{
"name": "Storage and Persistence",
"description": "Persist and Share Data that is Separate from the Container"
},
{
"name": "Ingress",
"description": "Ingress Configuration"
},
{
"name": "Security and Permissions",
"description": "Configure Security Context and Permissions"
},
{
"name": "Resources and Devices",
"description": "Specify Resources/Devices to be Allocated to Workload"
},
{
"name": "Middlewares",
"description": "Traefik Middlewares"
},
{
"name": "Metrics",
"description": "Metrics"
},
{
"name": "Addons",
"description": "Addon Configuration"
},
{
"name": "Backup Configuration",
"description": "Configure Velero Backup Schedule"
},
{
"name": "Advanced",
"description": "Advanced Configuration"
},
{
"name": "Postgresql",
"description": "Postgresql"
},
{
"name": "Documentation",
"description": "Documentation"
}
],
"portals": {
"open": {
"protocols": [
"$kubernetes-resource_configmap_tcportal-open_protocol"
],
"host": [
"$kubernetes-resource_configmap_tcportal-open_host"
],
"ports": [
"$kubernetes-resource_configmap_tcportal-open_port"
]
}
},
"questions": [
{
"variable": "global",
"group": "General Settings",
"label": "Global Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "stopAll",
"label": "Stop All",
"description": "Stops All Running pods and hibernates cnpg",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "workload",
"group": "Workload Settings",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type (Advanced)",
"schema": {
"type": "string",
"default": "Deployment",
"enum": [
{
"value": "Deployment",
"description": "Deployment"
},
{
"value": "DaemonSet",
"description": "DaemonSet"
}
]
}
},
{
"variable": "replicas",
"label": "Replicas (Advanced)",
"description": "Set the number of Replicas",
"schema": {
"type": "int",
"show_if": [
[
"type",
"!=",
"DaemonSet"
]
],
"default": 1
}
},
{
"variable": "podSpec",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "containers",
"label": "Containers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Container",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "envList",
"label": "Extra Environment Variables",
"description": "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting...",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string"
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "extraArgs",
"label": "Extra Args",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "arg",
"label": "Arg",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "command",
"label": "Command",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "param",
"label": "Param",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "invidious",
"group": "App Configuration",
"label": "Invidious Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "network",
"label": "Network Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "inbound",
"label": "Inbound",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "external_port",
"label": "External Port",
"description": "When the invidious instance is behind a proxy, and the proxy listens on a different port than the instance does, this lets invidious know about it.",
"schema": {
"type": "int",
"required": true,
"min": 1,
"max": 65535,
"default": 10594
}
},
{
"variable": "https_only",
"label": "HTTPS Only",
"description": "Tell Invidious that it is behind a proxy that provides only HTTPS, so all links must use the https:// scheme. This setting MUST be set to true if invidious is behind a reverse proxy serving HTTPs.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "domain",
"label": "Domain",
"description": "Domain name under which this instance is hosted. This is used to craft absolute URLs to the instance",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "hsts",
"label": "HSTS",
"description": "Enable/Disable Strict-Transport-Security.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "outbound",
"label": "Outbound",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "disable_proxy",
"label": "Disable Proxy",
"description": "Disable proxying server-wide. Can be disable as a whole, or only for a single function.",
"schema": {
"type": "string",
"required": true,
"default": "false",
"enum": [
{
"value": "false",
"description": "false"
},
{
"value": "true",
"description": "true"
},
{
"value": "dash",
"description": "dash"
},
{
"value": "livestreams",
"description": "livestreams"
},
{
"value": "livestreams",
"description": "livestreams"
},
{
"value": "downloads",
"description": "downloads"
},
{
"value": "local",
"description": "local"
}
]
}
},
{
"variable": "pool_size",
"label": "Pool Size",
"description": "Size of the HTTP pool used to connect to youtube.",
"schema": {
"type": "int",
"required": true,
"min": 1,
"default": 100
}
},
{
"variable": "use_quic",
"label": "Use QUIC",
"description": "Enable/Disable the use of QUIC (HTTP/3) when connecting to the youtube API and websites",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "cookies",
"label": "Cookies",
"description": "Additional cookies to be sent when requesting the youtube API.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "cookie_entry",
"label": "Cookie Entry",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "force_resolve",
"label": "Force Resolve",
"description": "Force connection to youtube over a specific IP family.",
"schema": {
"type": "string",
"default": "",
"enum": [
{
"value": "",
"description": "No Force"
},
{
"value": "ipv4",
"description": "ipv4"
},
{
"value": "ipv6",
"description": "ipv6"
}
]
}
}
]
}
}
]
}
},
{
"variable": "logging",
"label": "Logging Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "output",
"label": "Output",
"description": "STDOUT or Path to log file. Can be absolute or relative to the invidious binary.",
"schema": {
"type": "string",
"required": true,
"default": "STDOUT"
}
},
{
"variable": "log_level",
"label": "Log Level",
"description": "Logging Verbosity.",
"schema": {
"type": "string",
"required": true,
"default": "Info",
"enum": [
{
"value": "Info",
"description": "Info"
},
{
"value": "Trace",
"description": "Trace"
},
{
"value": "Debug",
"description": "Debug"
},
{
"value": "Warn",
"description": "Warn"
},
{
"value": "Error",
"description": "Error"
},
{
"value": "Fatal",
"description": "Fatal"
},
{
"value": "Off",
"description": "Off"
},
{
"value": "All",
"description": "All"
}
]
}
}
]
}
},
{
"variable": "features",
"label": "Features Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "popular_enabled",
"label": "Popular Enabled",
"description": "Enable/Disable the \"Popular\" tab on the main page.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "statistics_enabled",
"label": "Statistics Enabled",
"description": "Enable/Disable statistics (available at /api/v1/stats).",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "users_accounts",
"label": "Users and Accounts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "registration_enabled",
"label": "Registration Enabled",
"description": "Allow/Forbid Invidious (local) account creation. Invidious accounts allow users to subscribe to channels and to create playlists without a Google account.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "login_enabled",
"label": "Login Enabled",
"description": "Allow/Forbid users to log-in. This setting affects the ability to connect with BOTH Google and Invidious (local) accounts.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "captcha_enabled",
"label": "Captcha Enabled",
"description": "Enable/Disable the captcha challenge on the login page.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "admins",
"label": "Admins",
"description": "List of usernames that will be granted administrator rights.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "adminEntry",
"label": "Admin Entry",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "enable_user_notifications",
"label": "User Notifications Enabled",
"description": "Enable/Disable user notifications.",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "background_jobs",
"label": "Background Jobs",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "channel_threads",
"label": "Channel Threads",
"description": "Number of threads to use when crawling channel videos (during subscriptions update).",
"schema": {
"type": "int",
"required": true,
"min": 1,
"default": 1
}
},
{
"variable": "channel_refresh_interval",
"label": "Channel Refresh Interval",
"description": "Time interval between two executions of the job that crawls channel videos (subscriptions update).",
"schema": {
"type": "string",
"required": true,
"default": "30m"
}
},
{
"variable": "full_refresh",
"label": "Full Refresh",
"description": "Forcefully dump and re-download the entire list of uploaded videos when crawling channel (during subscriptions update).",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "feed_threads",
"label": "Feed Threads",
"description": "Number of threads to use when updating RSS feeds.",
"schema": {
"type": "int",
"required": true,
"min": 1,
"default": 1
}
},
{
"variable": "decrypt_polling",
"label": "Decrypt Polling",
"description": "Enable/Disable the polling job that keeps the decryption function (for \"secured\" videos) up to date.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "jobs",
"label": "Jobs Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "clear_expired_items",
"label": "Clear Expired Items",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enable",
"label": "Enable",
"description": "Enable the database cleaning job",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "refresh_channels",
"label": "Refresh Channels",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enable",
"label": "Enable",
"description": "Enable the channels updater job",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "refresh_feeds",
"label": "Refresh Feeds",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enable",
"label": "Enable",
"description": "Enable the RSS feeds updater job",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
}
]
}
},
{
"variable": "captcha",
"label": "Captcha",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "captcha_api_url",
"label": "Captcha API URL",
"description": "URL of the captcha solving service.",
"schema": {
"type": "string",
"required": true,
"default": "https://api.anti-captcha.com"
}
},
{
"variable": "captcha_key",
"label": "Captcha API Key",
"description": "API key for the captcha solving service.",
"schema": {
"type": "string",
"private": true,
"default": ""
}
}
]
}
},
{
"variable": "miscellaneous",
"label": "Miscellaneous",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "banner",
"label": "Banner",
"description": "Custom banner displayed at the top of every page. This can used for instance announcements, e.g.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "use_pubsub_feeds",
"label": "Use PuBSub Feeds",
"description": "Subscribe to channels using PubSubHub (Google PubSubHubbub service). PubSubHub allows Invidious to be instantly notified when a new video is published on any subscribed channels",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dmca_content",
"label": "DMCA Content",
"description": "List of video IDs where the \"download\" widget must be disabled, in order to comply with DMCA requests.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "dmcaEntry",
"label": "DMCA Entry",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "cache_annotations",
"label": "Cache Annotations",
"description": "Cache video annotations in the database.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "playlist_length_limit",
"label": "Playlist Length Limit",
"description": "Maximum custom playlist length limit.",
"schema": {
"type": "int",
"required": true,
"default": 500
}
}
]
}
},
{
"variable": "default_user_preferences",
"label": "Default User Preferences",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "internationalization",
"label": "Internationalization",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "locale",
"label": "Locale",
"description": "Default user interface language (locale).",
"schema": {
"type": "string",
"required": true,
"default": "en-US",
"enum": [
{
"value": "ar",
"description": "Arabic"
},
{
"value": "da",
"description": "Danish"
},
{
"value": "de",
"description": "German"
},
{
"value": "en-US",
"description": "English, US"
},
{
"value": "el",
"description": "Greek"
},
{
"value": "eo",
"description": "Esperanto"
},
{
"value": "es",
"description": "Spanish"
},
{
"value": "fa",
"description": "Persian"
},
{
"value": "fi",
"description": "Finnish"
},
{
"value": "fr",
"description": "French"
},
{
"value": "he",
"description": "Hebrew"
},
{
"value": "hr",
"description": "Hungarian"
},
{
"value": "id",
"description": "Indonesian"
},
{
"value": "is",
"description": "Icelandic"
},
{
"value": "it",
"description": "Italian"
},
{
"value": "ja",
"description": "Japanese"
},
{
"value": "nb-NO",
"description": "Norwegian, Bomkmal"
},
{
"value": "nl",
"description": "Dutch"
},
{
"value": "pl",
"description": "Polish"
},
{
"value": "pt-BR",
"description": "Portuguese, Brazil"
},
{
"value": "pt-PT",
"description": "Portuguese, Portugal"
},
{
"value": "ro",
"description": "Romanian"
},
{
"value": "ru",
"description": "Russian"
},
{
"value": "sv",
"description": "Swedish"
},
{
"value": "tr",
"description": "Turkish"
},
{
"value": "uk",
"description": "Ukrainian"
},
{
"value": "zh-CN",
"description": "Chinese, China (Simplified Chinese)"
},
{
"value": "zh-TW",
"description": "Chinese, Taiwan (Traditional Chinese)"
}
]
}
},
{
"variable": "region",
"label": "Region",
"description": "Default geographical location for content.",
"schema": {
"type": "string",
"required": true,
"default": "US",
"enum": [
{
"value": "AE",
"description": "AE"
},
{
"value": "AR",
"description": "AR"
},
{
"value": "AT",
"description": "AT"
},
{
"value": "AU",
"description": "AU"
},
{
"value": "AZ",
"description": "AZ"
},
{
"value": "BA",
"description": "BA"
},
{
"value": "BD",
"description": "BD"
},
{
"value": "BE",
"description": "BE"
},
{
"value": "BG",
"description": "BG"
},
{
"value": "BH",
"description": "BH"
},
{
"value": "BO",
"description": "BO"
},
{
"value": "BR",
"description": "BR"
},
{
"value": "BY",
"description": "BY"
},
{
"value": "CA",
"description": "CA"
},
{
"value": "CH",
"description": "CH"
},
{
"value": "CL",
"description": "CL"
},
{
"value": "CO",
"description": "CO"
},
{
"value": "CR",
"description": "CR"
},
{
"value": "CY",
"description": "CY"
},
{
"value": "CZ",
"description": "CZ"
},
{
"value": "DE",
"description": "DE"
},
{
"value": "DK",
"description": "DK"
},
{
"value": "DO",
"description": "DO"
},
{
"value": "DZ",
"description": "DZ"
},
{
"value": "EC",
"description": "EC"
},
{
"value": "EE",
"description": "EE"
},
{
"value": "EG",
"description": "EG"
},
{
"value": "ES",
"description": "ES"
},
{
"value": "FI",
"description": "FI"
},
{
"value": "FR",
"description": "FR"
},
{
"value": "GB",
"description": "GB"
},
{
"value": "GE",
"description": "GE"
},
{
"value": "GH",
"description": "GH"
},
{
"value": "GR",
"description": "GR"
},
{
"value": "GT",
"description": "GT"
},
{
"value": "HK",
"description": "HK"
},
{
"value": "HN",
"description": "HN"
},
{
"value": "HR",
"description": "HR"
},
{
"value": "HU",
"description": "HU"
},
{
"value": "ID",
"description": "ID"
},
{
"value": "IE",
"description": "IE"
},
{
"value": "IL",
"description": "IL"
},
{
"value": "IN",
"description": "IN"
},
{
"value": "IQ",
"description": "IQ"
},
{
"value": "IS",
"description": "IS"
},
{
"value": "IT",
"description": "IT"
},
{
"value": "JM",
"description": "JM"
},
{
"value": "JO",
"description": "JO"
},
{
"value": "JP",
"description": "JP"
},
{
"value": "KE",
"description": "KE"
},
{
"value": "KR",
"description": "KR"
},
{
"value": "KW",
"description": "KW"
},
{
"value": "KZ",
"description": "KZ"
},
{
"value": "LB",
"description": "LB"
},
{
"value": "LI",
"description": "LI"
},
{
"value": "LK",
"description": "LK"
},
{
"value": "LT",
"description": "LT"
},
{
"value": "LU",
"description": "LU"
},
{
"value": "LV",
"description": "LV"
},
{
"value": "LY",
"description": "LY"
},
{
"value": "MA",
"description": "MA"
},
{
"value": "ME",
"description": "ME"
},
{
"value": "MK",
"description": "MK"
},
{
"value": "MT",
"description": "MT"
},
{
"value": "MX",
"description": "MX"
},
{
"value": "MY",
"description": "MY"
},
{
"value": "NG",
"description": "NG"
},
{
"value": "NI",
"description": "NI"
},
{
"value": "NL",
"description": "NL"
},
{
"value": "NO",
"description": "NO"
},
{
"value": "NP",
"description": "NP"
},
{
"value": "NZ",
"description": "NZ"
},
{
"value": "OM",
"description": "OM"
},
{
"value": "PA",
"description": "PA"
},
{
"value": "PE",
"description": "PE"
},
{
"value": "PG",
"description": "PG"
},
{
"value": "PH",
"description": "PH"
},
{
"value": "PK",
"description": "PK"
},
{
"value": "PL",
"description": "PL"
},
{
"value": "PR",
"description": "PR"
},
{
"value": "PT",
"description": "PT"
},
{
"value": "PY",
"description": "PY"
},
{
"value": "QA",
"description": "QA"
},
{
"value": "RO",
"description": "RO"
},
{
"value": "RS",
"description": "RS"
},
{
"value": "RU",
"description": "RU"
},
{
"value": "SA",
"description": "SA"
},
{
"value": "SE",
"description": "SE"
},
{
"value": "SG",
"description": "SG"
},
{
"value": "SI",
"description": "SI"
},
{
"value": "SK",
"description": "SK"
},
{
"value": "SN",
"description": "SN"
},
{
"value": "SV",
"description": "SV"
},
{
"value": "TH",
"description": "TH"
},
{
"value": "TN",
"description": "TN"
},
{
"value": "TR",
"description": "TR"
},
{
"value": "TW",
"description": "TW"
},
{
"value": "TZ",
"description": "TZ"
},
{
"value": "UA",
"description": "UA"
},
{
"value": "UG",
"description": "UG"
},
{
"value": "US",
"description": "US"
},
{
"value": "UY",
"description": "UY"
},
{
"value": "VE",
"description": "VE"
},
{
"value": "VN",
"description": "VN"
},
{
"value": "YE",
"description": "YE"
},
{
"value": "ZA",
"description": "ZA"
},
{
"value": "ZW",
"description": "ZW"
}
]
}
},
{
"variable": "captions",
"label": "Captions",
"description": "Top 3 preferred languages for video captions. Exactly 3 Captions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "captionEntry",
"label": "Caption Entry",
"schema": {
"type": "string",
"required": true,
"default": "",
"enum": [
{
"value": "English",
"description": "English"
},
{
"value": "English (auto-generated)",
"description": "English (auto-generated)"
},
{
"value": "Afrikaans",
"description": "Afrikaans"
},
{
"value": "Albanian",
"description": "Albanian"
},
{
"value": "Amharic",
"description": "Amharic"
},
{
"value": "Arabic",
"description": "Arabic"
},
{
"value": "Armenian",
"description": "Armenian"
},
{
"value": "Azerbaijani",
"description": "Azerbaijani"
},
{
"value": "Bangla",
"description": "Bangla"
},
{
"value": "Basque",
"description": "Basque"
},
{
"value": "Belarusian",
"description": "Belarusian"
},
{
"value": "Bosnian",
"description": "Bosnian"
},
{
"value": "Bulgarian",
"description": "Bulgarian"
},
{
"value": "Burmese",
"description": "Burmese"
},
{
"value": "Catalan",
"description": "Catalan"
},
{
"value": "Cebuano",
"description": "Cebuano"
},
{
"value": "Chinese (Simplified)",
"description": "Chinese (Simplified)"
},
{
"value": "Chinese (Traditional)",
"description": "Chinese (Traditional)"
},
{
"value": "Corsican",
"description": "Corsican"
},
{
"value": "Croatian",
"description": "Croatian"
},
{
"value": "Czech",
"description": "Czech"
},
{
"value": "Danish",
"description": "Danish"
},
{
"value": "Dutch",
"description": "Dutch"
},
{
"value": "Esperanto",
"description": "Esperanto"
},
{
"value": "Estonian",
"description": "Estonian"
},
{
"value": "Filipino",
"description": "Filipino"
},
{
"value": "Finnish",
"description": "Finnish"
},
{
"value": "French",
"description": "French"
},
{
"value": "Galician",
"description": "Galician"
},
{
"value": "Georgian",
"description": "Georgian"
},
{
"value": "German",
"description": "German"
},
{
"value": "Greek",
"description": "Greek"
},
{
"value": "Gujarati",
"description": "Gujarati"
},
{
"value": "Haitian Creole",
"description": "Haitian Creole"
},
{
"value": "Hausa",
"description": "Hausa"
},
{
"value": "Hawaiian",
"description": "Hawaiian"
},
{
"value": "Hebrew",
"description": "Hebrew"
},
{
"value": "Hindi",
"description": "Hindi"
},
{
"value": "Hmong",
"description": "Hmong"
},
{
"value": "Hungarian",
"description": "Hungarian"
},
{
"value": "Icelandic",
"description": "Icelandic"
},
{
"value": "Igbo",
"description": "Igbo"
},
{
"value": "Indonesian",
"description": "Indonesian"
},
{
"value": "Irish",
"description": "Irish"
},
{
"value": "Italian",
"description": "Italian"
},
{
"value": "Japanese",
"description": "Japanese"
},
{
"value": "Javanese",
"description": "Javanese"
},
{
"value": "Kannada",
"description": "Kannada"
},
{
"value": "Kazakh",
"description": "Kazakh"
},
{
"value": "Khmer",
"description": "Khmer"
},
{
"value": "Korean",
"description": "Korean"
},
{
"value": "Kurdish",
"description": "Kurdish"
},
{
"value": "Kyrgyz",
"description": "Kyrgyz"
},
{
"value": "Lao",
"description": "Lao"
},
{
"value": "Latin",
"description": "Latin"
},
{
"value": "Latvian",
"description": "Latvian"
},
{
"value": "Lithuanian",
"description": "Lithuanian"
},
{
"value": "Luxembourgish",
"description": "Luxembourgish"
},
{
"value": "Macedonian",
"description": "Macedonian"
},
{
"value": "Malagasy",
"description": "Malagasy"
},
{
"value": "Malay",
"description": "Malay"
},
{
"value": "Malayalam",
"description": "Malayalam"
},
{
"value": "Maltese",
"description": "Maltese"
},
{
"value": "Maori",
"description": "Maori"
},
{
"value": "Marathi",
"description": "Marathi"
},
{
"value": "Mongolian",
"description": "Mongolian"
},
{
"value": "Nepali",
"description": "Nepali"
},
{
"value": "Norwegian Bokm\u00e5l",
"description": "Norwegian Bokm\u00e5l"
},
{
"value": "Nyanja",
"description": "Nyanja"
},
{
"value": "Pashto",
"description": "Pashto"
},
{
"value": "Persian",
"description": "Persian"
},
{
"value": "Polish",
"description": "Polish"
},
{
"value": "Portuguese",
"description": "Portuguese"
},
{
"value": "Punjabi",
"description": "Punjabi"
},
{
"value": "Romanian",
"description": "Romanian"
},
{
"value": "Russian",
"description": "Russian"
},
{
"value": "Samoan",
"description": "Samoan"
},
{
"value": "Scottish Gaelic",
"description": "Scottish Gaelic"
},
{
"value": "Serbian",
"description": "Serbian"
},
{
"value": "Shona",
"description": "Shona"
},
{
"value": "Sindhi",
"description": "Sindhi"
},
{
"value": "Sinhala",
"description": "Sinhala"
},
{
"value": "Slovak",
"description": "Slovak"
},
{
"value": "Slovenian",
"description": "Slovenian"
},
{
"value": "Somali",
"description": "Somali"
},
{
"value": "Southern Sotho",
"description": "Southern Sotho"
},
{
"value": "Spanish",
"description": "Spanish"
},
{
"value": "Spanish (Latin America)",
"description": "Spanish (Latin America)"
},
{
"value": "Sundanese",
"description": "Sundanese"
},
{
"value": "Swahili",
"description": "Swahili"
},
{
"value": "Swedish",
"description": "Swedish"
},
{
"value": "Tajik",
"description": "Tajik"
},
{
"value": "Tamil",
"description": "Tamil"
},
{
"value": "Telugu",
"description": "Telugu"
},
{
"value": "Thai",
"description": "Thai"
},
{
"value": "Turkish",
"description": "Turkish"
},
{
"value": "Ukrainian",
"description": "Ukrainian"
},
{
"value": "Urdu",
"description": "Urdu"
},
{
"value": "Uzbek",
"description": "Uzbek"
},
{
"value": "Vietnamese",
"description": "Vietnamese"
},
{
"value": "Welsh",
"description": "Welsh"
},
{
"value": "Western Frisian",
"description": "Western Frisian"
},
{
"value": "Xhosa",
"description": "Xhosa"
},
{
"value": "Yiddish",
"description": "Yiddish"
},
{
"value": "Yoruba",
"description": "Yoruba"
},
{
"value": "Zulu",
"description": "Zulu"
}
]
}
}
]
}
}
]
}
},
{
"variable": "interface",
"label": "Interface",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "dark_mode",
"label": "Dark Mode",
"description": "Enable/Disable dark mode.",
"schema": {
"type": "string",
"required": true,
"default": "auto",
"enum": [
{
"value": "auto",
"description": "Auto"
},
{
"value": "dark",
"description": "Dark"
},
{
"value": "light",
"description": "Light"
}
]
}
},
{
"variable": "thin_mode",
"label": "Thin Mode",
"description": "Enable/Disable thin mode (no video thumbnails).",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "feed_menu",
"label": "Feed Menu",
"description": "List of feeds available on the home page. Defaults to all. Max 4 feed items",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "feedEntry",
"label": "Feed Entry",
"schema": {
"type": "string",
"required": true,
"default": "",
"enum": [
{
"value": "Popular",
"description": "Popular"
},
{
"value": "Trending",
"description": "Trending"
},
{
"value": "Subscriptions",
"description": "Subscriptions"
},
{
"value": "Playlists",
"description": "Playlists"
}
]
}
}
]
}
},
{
"variable": "default_home",
"label": "Default Home",
"description": "Default feed to display on the home page.",
"schema": {
"type": "string",
"default": "",
"enum": [
{
"value": "",
"description": "None"
},
{
"value": "Popular",
"description": "Popular"
},
{
"value": "Trending",
"description": "Trending"
},
{
"value": "Subscriptions",
"description": "Subscriptions"
},
{
"value": "Playlists",
"description": "Playlists"
}
]
}
},
{
"variable": "max_results",
"label": "Max Results",
"description": "Default number of results to display per page.",
"schema": {
"type": "int",
"required": true,
"default": 40
}
},
{
"variable": "annotations",
"label": "Annotations",
"description": "Show/hide annotations.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "annotations_subscribed",
"label": "Annotations Subscribed",
"description": "Show/hide subscribed annotations.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "comments",
"label": "Comments",
"description": "Type of comments to display below video. Exactly 2 Types",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "commentEntry",
"label": "Comment Entry",
"schema": {
"type": "string",
"required": true,
"default": "",
"enum": [
{
"value": "",
"description": "None"
},
{
"value": "youtube",
"description": "Youtube"
},
{
"value": "reddit",
"description": "Reddit"
}
]
}
}
]
}
},
{
"variable": "player_style",
"label": "Player Style",
"description": "Default player style.",
"schema": {
"type": "string",
"required": true,
"default": "invidious",
"enum": [
{
"value": "invidious",
"description": "Invidious"
},
{
"value": "youtube",
"description": "Youtube"
}
]
}
},
{
"variable": "related_videos",
"label": "Related Videos",
"description": "Show/Hide the \"related videos\" sidebar when watching a video.",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "video_player_behavior",
"label": "Video Player Behavior",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "autoplay",
"label": "Autoplay",
"description": "Automatically play videos on page load.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "continue",
"label": "Continue",
"description": "Automatically load the \"next\" video (either next in playlist or proposed) when the current video ends.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "continue_autoplay",
"label": "Continue Autoplay",
"description": "Autoplay next video by default.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "listen",
"label": "Listen",
"description": "Play videos in Audio-only mode by default.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "video_loop",
"label": "Video Loop",
"description": "Loop videos automatically.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "video_playback_settings",
"label": "Video Playback Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "quality",
"label": "Quality",
"description": "Default video quality.",
"schema": {
"type": "string",
"required": true,
"default": "hd720",
"enum": [
{
"value": "hd720",
"description": "HD720"
},
{
"value": "dash",
"description": "Dash"
},
{
"value": "medium",
"description": "Medium"
},
{
"value": "small",
"description": "Small"
}
]
}
},
{
"variable": "quality_dash",
"label": "Quality Dash",
"description": "Default dash video quality.",
"schema": {
"type": "string",
"show_if": [
[
"quality",
"=",
"dash"
]
],
"required": true,
"default": "auto",
"enum": [
{
"value": "auto",
"description": "Auto"
},
{
"value": "best",
"description": "Best"
},
{
"value": "4320p",
"description": "4320p"
},
{
"value": "2160p",
"description": "2160p"
},
{
"value": "1440p",
"description": "1440p"
},
{
"value": "1080p",
"description": "1080p"
},
{
"value": "720p",
"description": "720p"
},
{
"value": "480p",
"description": "480p"
},
{
"value": "480p",
"description": "480p"
},
{
"value": "360p",
"description": "360p"
},
{
"value": "240p",
"description": "240p"
},
{
"value": "144p",
"description": "144p"
},
{
"value": "worst",
"description": "Worst"
}
]
}
},
{
"variable": "speed",
"label": "Speed",
"description": "Default video playback speed.",
"schema": {
"type": "string",
"required": true,
"valid_chars": "^[0-9]+(\\.[0-9]{1,2})?$",
"default": "1.00"
}
},
{
"variable": "volume",
"label": "Volume",
"description": "Default volume.",
"schema": {
"type": "int",
"min": 1,
"max": 100,
"required": true,
"default": 100
}
},
{
"variable": "vr_mode",
"label": "VR Mode",
"description": "Allow 360\u00b0 videos to be played.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "subscription_feed",
"label": "Subscription Feed",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "latest_only",
"label": "Latest Only",
"description": "In the \"Subscription\" feed, only show the latest video of each channel the user is subscribed to.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "notifications_only",
"label": "Notifications Only",
"description": "Enable/Disable user subscriptions desktop notifications.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "unseen_only",
"label": "Unseen Only",
"description": "In the \"Subscription\" feed, Only show the videos that the user haven't watched yet.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "sort",
"label": "Sort",
"description": "Default sorting parameter for subscription feeds.",
"schema": {
"type": "string",
"required": true,
"default": "published",
"enum": [
{
"value": "alphabetically",
"description": "Alphabetically"
},
{
"value": "alphabetically - reverse",
"description": "Alphabetically - Reverse"
},
{
"value": "channel name",
"description": "Channel Name"
},
{
"value": "channel name - reverse",
"description": "Channel Name - Reverse"
},
{
"value": "published",
"description": "Published"
},
{
"value": "published - reverse",
"description": "Published - Reverse"
}
]
}
}
]
}
},
{
"variable": "miscellaneous",
"label": "Miscellaneous",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "local",
"label": "Local",
"description": "Proxy videos through instance by default.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "show_nick",
"label": "Show Nick",
"description": "Show the connected user's nick at the top right.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "automatic_instance_redirect",
"label": "Automatic Instance Redirect",
"description": "Automatically redirect to a random instance when the user uses any \"switch invidious instance\" link",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "extend_desc",
"label": "Extend Description",
"description": "Show the entire video description",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "TZ",
"label": "Timezone",
"group": "General Settings",
"schema": {
"type": "string",
"default": "America/Los_Angeles",
"$ref": [
"definitions/timezone"
],
"enum": [
{
"value": "Asia/Damascus",
"description": "'Asia/Damascus' timezone"
},
{
"value": "Asia/Saigon",
"description": "'Asia/Saigon' timezone"
}
]
}
},
{
"variable": "podOptions",
"group": "General Settings",
"label": "Global Pod Options (Advanced)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "expertPodOpts",
"label": "Expert - Pod Options",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "hostNetwork",
"label": "Host Networking",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dnsConfig",
"label": "DNS Configuration",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "options",
"label": "Options",
"schema": {
"type": "list",
"default": [
{
"name": "ndots",
"value": "1"
}
],
"items": [
{
"variable": "optionsEntry",
"label": "Option Entry",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "nameservers",
"label": "Nameservers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "nsEntry",
"label": "Nameserver Entry",
"schema": {
"type": "string",
"required": true
}
}
]
}
},
{
"variable": "searches",
"label": "Searches",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "searchEntry",
"label": "Search Entry",
"schema": {
"type": "string",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "imagePullSecretList",
"group": "General Settings",
"label": "Image Pull Secrets",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "pullsecretentry",
"label": "Pull Secret",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "data",
"label": "Data",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "registry",
"label": "Registry",
"schema": {
"type": "string",
"required": true,
"default": "https://index.docker.io/v1/"
}
},
{
"variable": "username",
"label": "Username",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "password",
"label": "Password",
"schema": {
"type": "string",
"required": true,
"private": true,
"default": ""
}
},
{
"variable": "email",
"label": "Email",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "service",
"group": "Networking and Services",
"label": "Configure Service(s)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Service",
"description": "The Primary service on which the healthcheck runs, often the webUI",
"schema": {
"additional_attrs": true,
"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 and Loadbalancer exposes the service using the system loadbalancer",
"schema": {
"type": "string",
"default": "LoadBalancer",
"enum": [
{
"value": "LoadBalancer",
"description": "LoadBalancer (Expose Ports)"
},
{
"value": "ClusterIP",
"description": "ClusterIP (Do Not Expose Ports)"
}
]
}
},
{
"variable": "loadBalancerIP",
"label": "LoadBalancer IP",
"description": "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB",
"schema": {
"show_if": [
[
"type",
"=",
"LoadBalancer"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "ports",
"label": "Service's Port(s) Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Service Port Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Port",
"description": "This port exposes the container port on the service",
"schema": {
"type": "int",
"default": 10594,
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "serviceexpert",
"group": "Networking and Services",
"label": "Show Expert Config",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "scaleExternalInterface",
"description": "Add External Interfaces",
"label": "Add external Interfaces",
"group": "Networking",
"schema": {
"type": "list",
"items": [
{
"variable": "interfaceConfiguration",
"description": "Interface Configuration",
"label": "Interface Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"$ref": [
"normalize/interfaceConfiguration"
],
"attrs": [
{
"variable": "hostInterface",
"description": "Please Specify Host Interface",
"label": "Host Interface",
"schema": {
"type": "string",
"required": true,
"$ref": [
"definitions/interface"
],
"enum": []
}
},
{
"variable": "ipam",
"description": "Define how IP Address will be managed",
"label": "IP Address Management",
"schema": {
"additional_attrs": true,
"type": "dict",
"required": true,
"attrs": [
{
"variable": "type",
"description": "Specify type for IPAM",
"label": "IPAM Type",
"schema": {
"type": "string",
"required": true,
"enum": [
{
"value": "dhcp",
"description": "Use DHCP"
},
{
"value": "static",
"description": "Use Static IP"
}
]
}
},
{
"variable": "staticIPConfigurations",
"label": "Static IP Addresses",
"schema": {
"type": "list",
"show_if": [
[
"type",
"=",
"static"
]
],
"items": [
{
"variable": "staticIP",
"label": "Static IP",
"schema": {
"type": "ipaddr",
"cidr": true
}
}
]
}
},
{
"variable": "staticRoutes",
"label": "Static Routes",
"schema": {
"type": "list",
"show_if": [
[
"type",
"=",
"static"
]
],
"items": [
{
"variable": "staticRouteConfiguration",
"label": "Static Route Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "destination",
"label": "Destination",
"schema": {
"type": "ipaddr",
"cidr": true,
"required": true
}
},
{
"variable": "gateway",
"label": "Gateway",
"schema": {
"type": "ipaddr",
"cidr": false,
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "serviceList",
"label": "Add Manual Custom Services",
"group": "Networking and Services",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "serviceListEntry",
"label": "Custom Service",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the service",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "type",
"label": "Service Type",
"description": "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer",
"schema": {
"type": "string",
"default": "LoadBalancer",
"enum": [
{
"value": "LoadBalancer",
"description": "LoadBalancer (Expose Ports)"
},
{
"value": "ClusterIP",
"description": "ClusterIP (Do Not Expose Ports)"
},
{
"value": "Simple",
"description": "Deprecated CHANGE THIS"
}
]
}
},
{
"variable": "loadBalancerIP",
"label": "LoadBalancer IP",
"description": "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB",
"schema": {
"show_if": [
[
"type",
"=",
"LoadBalancer"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "advancedsvcset",
"label": "Show Advanced Service Settings",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "externalIPs",
"label": "External IP's",
"description": "External IP's",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "externalIP",
"label": "External IP",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "ipFamilyPolicy",
"label": "IP Family Policy",
"description": "Specify the IP Policy",
"schema": {
"type": "string",
"default": "SingleStack",
"enum": [
{
"value": "SingleStack",
"description": "SingleStack"
},
{
"value": "PreferDualStack",
"description": "PreferDualStack"
},
{
"value": "RequireDualStack",
"description": "RequireDualStack"
}
]
}
},
{
"variable": "ipFamilies",
"label": "IP Families",
"description": "(Advanced) The IP Families that should be used",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ipFamily",
"label": "IP Family",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "portsList",
"label": "Additional Service Ports",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "portsListEntry",
"label": "Custom ports",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the Port",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Port Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "protocol",
"label": "Port Type",
"schema": {
"type": "string",
"default": "tcp",
"enum": [
{
"value": "http",
"description": "HTTP"
},
{
"value": "https",
"description": "HTTPS"
},
{
"value": "tcp",
"description": "TCP"
},
{
"value": "udp",
"description": "UDP"
}
]
}
},
{
"variable": "targetPort",
"label": "Target Port",
"description": "This port exposes the container port on the service",
"schema": {
"type": "int",
"required": true
}
},
{
"variable": "port",
"label": "Container Port",
"schema": {
"type": "int",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "persistenceList",
"label": "Additional App Storage",
"group": "Storage and Persistence",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "persistenceListEntry",
"label": "Custom Storage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the storage",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "type",
"label": "Type of Storage",
"description": "Sets the persistence type, Anything other than PVC could break rollback!",
"schema": {
"type": "string",
"default": "hostPath",
"enum": [
{
"value": "pvc",
"description": "PVC"
},
{
"value": "hostPath",
"description": "Host Path"
},
{
"value": "emptyDir",
"description": "emptyDir"
},
{
"value": "nfs",
"description": "NFS Share"
}
]
}
},
{
"variable": "server",
"label": "NFS Server",
"schema": {
"show_if": [
[
"type",
"=",
"nfs"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "path",
"label": "Path on NFS Server",
"schema": {
"show_if": [
[
"type",
"=",
"nfs"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "iscsi",
"label": "iSCSI Options",
"schema": {
"show_if": [
[
"type",
"=",
"iscsi"
]
],
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "targetPortal",
"label": "targetPortal",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "iqn",
"label": "iqn",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "lun",
"label": "lun",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "authSession",
"label": "authSession",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "username",
"label": "username",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "password",
"label": "password",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "usernameInitiator",
"label": "usernameInitiator",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "passwordInitiator",
"label": "passwordInitiator",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "authDiscovery",
"label": "authDiscovery",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "username",
"label": "username",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "password",
"label": "password",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "usernameInitiator",
"label": "usernameInitiator",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "passwordInitiator",
"label": "passwordInitiator",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "autoPermissions",
"label": "Automatic Permissions Configuration",
"description": "Automatically set permissions",
"schema": {
"show_if": [
[
"type",
"!=",
"pvc"
]
],
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "chown",
"label": "Run CHOWN",
"description": "It will run CHOWN on the path with the given fsGroup\n",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "chmod",
"label": "Run CHMOD",
"description": "It will run CHMOD on the path with the given value</br>\nFormat should be 3 digits, e.g. 770\n",
"schema": {
"type": "string",
"valid_chars": "[0-9]{3}",
"default": ""
}
},
{
"variable": "recursive",
"label": "Recursive",
"description": "It will run CHOWN and CHMOD recursively\n",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "readOnly",
"label": "Read Only",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "hostPath",
"label": "Host Path",
"description": "Path inside the container the storage is mounted",
"schema": {
"show_if": [
[
"type",
"=",
"hostPath"
]
],
"type": "hostpath"
}
},
{
"variable": "mountPath",
"label": "Mount Path",
"description": "Path inside the container the storage is mounted",
"schema": {
"type": "string",
"default": "",
"required": true,
"valid_chars": "^\\/([a-zA-Z0-9._-]+(\\s?[a-zA-Z0-9._-]+|\\/?))+$"
}
},
{
"variable": "medium",
"label": "EmptyDir Medium",
"schema": {
"show_if": [
[
"type",
"=",
"emptyDir"
]
],
"type": "string",
"default": "",
"enum": [
{
"value": "",
"description": "Default"
},
{
"value": "Memory",
"description": "Memory"
}
]
}
},
{
"variable": "size",
"label": "Size Quotum of Storage",
"schema": {
"show_if": [
[
"type",
"=",
"pvc"
]
],
"type": "string",
"default": "256Gi"
}
},
{
"variable": "storageClass",
"label": "storageClass (Advanced)",
"description": "sets the storageClass to something other than iX default. Only for advanced usecases!",
"schema": {
"show_if": [
[
"type",
"=",
"pvc"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "static",
"label": "Static Fixed PVC Bindings (Experimental)",
"description": "Link a PVC to a specific storage location",
"schema": {
"show_if": [
[
"type",
"=",
"pvc"
]
],
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "mode",
"label": "mode",
"description": "disabled: use normal dynamic PVCs\nsmb: connect to an SMB share\nnfs: connect to an NFS share\n",
"schema": {
"type": "string",
"default": "disabled",
"enum": [
{
"value": "disabled",
"description": "disabled"
},
{
"value": "smb",
"description": "smb"
},
{
"value": "nfs",
"description": "nfs"
}
]
}
},
{
"variable": "server",
"label": "Server",
"description": "server to connect to",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"!=",
"disabled"
]
],
"default": "myserver"
}
},
{
"variable": "share",
"label": "Share",
"description": "share to connect to",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"!=",
"disabled"
]
],
"default": "/myshare"
}
},
{
"variable": "user",
"label": "User",
"description": "connecting user",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"=",
"smb"
]
],
"default": "myuser"
}
},
{
"variable": "domain",
"label": "Domain",
"description": "user domain",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"=",
"smb"
]
],
"default": ""
}
},
{
"variable": "password",
"label": "Password",
"description": "connecting password",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"=",
"smb"
]
],
"default": ""
}
}
]
}
},
{
"variable": "volumeSnapshots",
"label": "Volume Snapshots (Experimental)",
"description": "Add an entry to the list to force creation of a volumeSnapshot of this PVC",
"schema": {
"show_if": [
[
"type",
"=",
"pvc"
]
],
"type": "list",
"default": [],
"items": [
{
"variable": "volumeSnapshotEntry",
"label": "Custom volumeSnapshot",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "WARNING: renaming this, means deletion of the snapshot with the old name!",
"schema": {
"type": "string",
"default": "mysnapshot",
"required": true
}
},
{
"variable": "volumeSnapshotClassName",
"label": "volumeSnapshot Class Name (Advanced)",
"description": "For use with PVCs using a non-default storageClass",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingress",
"label": "",
"group": "Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [
{
"path": "/",
"pathType": "Prefix"
}
],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests (advanced)",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace (optional)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
},
{
"variable": "homepage",
"label": "Homepage",
"description": "Connect ingress with Homepage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "name",
"label": "Name (Optional)",
"description": "Defaults to chart name",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "description",
"label": "Description (Optional)",
"description": "Defaults to chart description",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "icon",
"label": "Icon (Optional)",
"description": "Defaults to chart icon",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "group",
"label": "Group",
"schema": {
"type": "string",
"required": true,
"default": "default",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "widget",
"label": "Widget Settings",
"schema": {
"type": "dict",
"additional_attrs": true,
"show_if": [
[
"enabled",
"=",
true
]
],
"attrs": [
{
"variable": "enabled",
"label": "Enable Widget",
"description": "When disabled all widget annotations are skipped.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "custom",
"label": "Options",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "key",
"label": "API-key (key)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "customkv",
"label": "Custom Options",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "option",
"label": "Option",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "ingressClassName",
"label": "(Advanced/Optional) IngressClass Name",
"schema": {
"type": "string",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": ""
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": [],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your cert-manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Certificate Secret (Advanced)",
"schema": {
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingressList",
"label": "Add Manual Custom Ingresses",
"group": "Ingress",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ingressListEntry",
"label": "Custom Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "ingressClassName",
"label": "IngressClass Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
},
{
"variable": "overrideService",
"label": "Linked Service",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Service Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "port",
"label": "Service Port",
"schema": {
"type": "int"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Secret (Advanced)",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
},
{
"variable": "homepage",
"label": "Homepage",
"description": "Connect ingress with Homepage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "name",
"label": "Name",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "description",
"label": "Description",
"description": "defaults to chart description",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "group",
"label": "Group",
"schema": {
"type": "string",
"required": true,
"default": "default",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "securityContext",
"group": "Security and Permissions",
"label": "Security Context",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "container",
"label": "Container",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "runAsUser",
"label": "runAsUser",
"description": "The UserID of the user running the application",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "runAsGroup",
"label": "runAsGroup",
"description": "The groupID of the user running the application",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "PUID",
"label": "Process User ID - PUID",
"description": "When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps",
"schema": {
"type": "int",
"show_if": [
[
"runAsUser",
"=",
0
]
],
"default": 568
}
},
{
"variable": "UMASK",
"label": "UMASK",
"description": "When supported by the container, this sets the UMASK for the App. Not supported by all Apps",
"schema": {
"type": "string",
"default": "0022"
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "privileged",
"label": "Privileged mode",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "readOnlyRootFilesystem",
"label": "ReadOnly Root Filesystem",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
}
]
}
},
{
"variable": "pod",
"label": "Pod",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "fsGroupChangePolicy",
"label": "When should we take ownership?",
"schema": {
"type": "string",
"default": "OnRootMismatch",
"enum": [
{
"value": "OnRootMismatch",
"description": "OnRootMismatch"
},
{
"value": "Always",
"description": "Always"
}
]
}
},
{
"variable": "supplementalGroups",
"label": "Supplemental Groups",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "supplementalGroupsEntry",
"label": "Supplemental Group",
"schema": {
"type": "int"
}
}
]
}
},
{
"variable": "fsGroup",
"label": "fsGroup",
"description": "The group that should own ALL storage.",
"schema": {
"type": "int",
"default": 568
}
}
]
}
}
]
}
},
{
"variable": "resources",
"group": "Resources and Devices",
"label": "Resource Limits",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "limits",
"label": "Advanced Limit Resource Consumption",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "cpu",
"label": "CPU",
"description": "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "4000m",
"valid_chars": "^(?!^0(\\.0|m|)$)([0-9]+)(\\.[0-9]|m?)$"
}
},
{
"variable": "memory",
"label": "RAM",
"description": "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "8Gi",
"valid_chars": "^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$"
}
},
{
"variable": "intel.com/i915",
"label": "Add Intel i915 GPUs",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "nvidia.com/gpu",
"label": "Add NVIDIA GPUs (Experimental)",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "amd.com/gpu",
"label": "Add AMD GPUs",
"schema": {
"type": "int",
"default": 0
}
}
]
}
},
{
"variable": "requests",
"label": "Minimum Resources Required (request)",
"schema": {
"additional_attrs": true,
"type": "dict",
"hidden": true,
"attrs": [
{
"variable": "cpu",
"label": "CPU",
"description": "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "10m",
"hidden": true,
"valid_chars": "^(?!^0(\\.0|m|)$)([0-9]+)(\\.[0-9]|m?)$"
}
},
{
"variable": "memory",
"label": "RAM",
"description": "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "50Mi",
"hidden": true,
"valid_chars": "^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$"
}
}
]
}
}
]
}
},
{
"variable": "deviceList",
"label": "Mount USB Devices",
"group": "Resources and Devices",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "deviceListEntry",
"label": "Device",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the Storage",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "type",
"label": "(Advanced) Type of Storage",
"description": "Sets the persistence type",
"schema": {
"type": "string",
"default": "device",
"hidden": true
}
},
{
"variable": "readOnly",
"label": "readOnly",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "hostPath",
"label": "Host Device Path",
"description": "Path to the device on the host system",
"schema": {
"type": "path"
}
},
{
"variable": "mountPath",
"label": "Container Device Path",
"description": "Path inside the container the device is mounted",
"schema": {
"type": "string",
"default": "/dev/ttyACM0"
}
}
]
}
}
]
}
},
{
"variable": "scaleGPU",
"label": "GPU Configuration",
"group": "Resources and Devices",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "scaleGPUEntry",
"label": "GPU",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "gpu",
"label": "Select GPU",
"schema": {
"additional_attrs": true,
"type": "dict",
"$ref": [
"definitions/gpuConfiguration"
],
"attrs": []
}
},
{
"variable": "workaround",
"label": "Workaround",
"schema": {
"type": "string",
"default": "workaround",
"hidden": true
}
}
]
}
}
]
}
},
{
"variable": "cnpg",
"group": "Postgresql",
"label": "CloudNative-PG (CNPG)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Postgresql Database",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hibernate",
"label": "Hibernate",
"description": "enable to safely hibernate and shutdown the postgresql cluster",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "mode",
"label": "Mode",
"description": "Cluster mode of operation. Available modes: standalone - default mode. Creates new or updates an existing CNPG cluster. recovery - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup replica - Creates a replica cluster from an existing CNPG cluster. # TODO.",
"schema": {
"type": "string",
"default": "standalone",
"enum": [
{
"value": "standalone",
"description": "standalone"
},
{
"value": "replica",
"description": "replica"
},
{
"value": "recovery",
"description": "recovery"
}
]
}
},
{
"variable": "cluster",
"label": "Cluster Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "instances",
"label": "Instances",
"schema": {
"type": "int",
"default": 1
}
},
{
"variable": "singleNode",
"label": "singleNode",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "storage",
"label": "Storage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "size",
"label": "Size",
"schema": {
"type": "string",
"default": "256Gi"
}
}
]
}
},
{
"variable": "walStorage",
"label": "WAL Storage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "size",
"label": "Size",
"schema": {
"type": "string",
"default": "256Gi"
}
}
]
}
}
]
}
},
{
"variable": "monitoring",
"label": "Monitoring Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enablePodMonitor",
"label": "enablePodMonitor",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "disableDefaultQueries",
"label": "disableDefaultQueries",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "pooler",
"label": "Pooler Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "instances",
"label": "Instances",
"schema": {
"type": "int",
"default": 1
}
},
{
"variable": "createRO",
"label": "Create ReadOnly Instance",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "recovery",
"label": "Recovery Settings (Experimental)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "endpointURL",
"label": "endpointURL",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "method",
"label": "method",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": "object_store"
}
},
{
"variable": "backupName",
"label": "backupName",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "provider",
"label": "provider",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": "s3",
"enum": [
{
"value": "s3",
"description": "S3"
},
{
"value": "azure",
"description": "Azure"
},
{
"value": "google",
"description": "Google"
}
]
}
},
{
"variable": "s3",
"label": "s3",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"s3"
]
],
"attrs": [
{
"variable": "region",
"label": "region",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "bucket",
"label": "bucket",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "accessKey",
"label": "accessKey",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "secretKey",
"label": "secretKey",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "azure",
"label": "azure (EXTREMELY EXPERIMENTAL)",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"azure"
]
],
"attrs": [
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "connectionString",
"label": "connectionString",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageAccount",
"label": "storageAccount",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageKey",
"label": "storageKey",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageSasToken",
"label": "storageSasToken",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "containerName",
"label": "containerName",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "serviceName",
"label": "serviceName",
"schema": {
"type": "string",
"default": "blob"
}
},
{
"variable": "inheritFromAzureAD",
"label": "inheritFromAzureAD",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "google",
"label": "google (EXTREMELY EXPERIMENTAL)",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"google"
]
],
"attrs": [
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "bucket",
"label": "bucket",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "gkeEnvironment",
"label": "gkeEnvironment",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "applicationCredentials",
"label": "applicationCredentials",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "backups",
"label": "Backup Settings (Experimental)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "endpointURL",
"label": "endpointURL",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "destinationPath",
"label": "destinationPath",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "retentionPolicy",
"label": "retentionPolicy",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": "30d"
}
},
{
"variable": "provider",
"label": "provider",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": "s3",
"enum": [
{
"value": "s3",
"description": "S3"
},
{
"value": "azure",
"description": "Azure"
},
{
"value": "google",
"description": "Google"
}
]
}
},
{
"variable": "s3",
"label": "s3",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"s3"
]
],
"attrs": [
{
"variable": "region",
"label": "region",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "bucket",
"label": "bucket",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "accessKey",
"label": "accessKey",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "secretKey",
"label": "secretKey",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "azure",
"label": "azure (EXTREMELY EXPERIMENTAL)",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"azure"
]
],
"attrs": [
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "connectionString",
"label": "connectionString",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageAccount",
"label": "storageAccount",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageKey",
"label": "storageKey",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "storageSasToken",
"label": "storageSasToken",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "containerName",
"label": "containerName",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "serviceName",
"label": "serviceName",
"schema": {
"type": "string",
"default": "blob"
}
},
{
"variable": "inheritFromAzureAD",
"label": "inheritFromAzureAD",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "google",
"label": "google (EXTREMELY EXPERIMENTAL)",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"google"
]
],
"attrs": [
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "bucket",
"label": "bucket",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "gkeEnvironment",
"label": "gkeEnvironment",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "applicationCredentials",
"label": "applicationCredentials",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "scheduledBackups",
"label": "ScheduledBackups",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "backupschedule",
"label": "BackupSchedule",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "daily-backup",
"required": true
}
},
{
"variable": "schedule",
"label": "schedule",
"schema": {
"type": "string",
"required": true,
"default": "0 0 0 * * *"
}
},
{
"variable": "backupOwnerReference",
"label": "backupOwnerReference",
"schema": {
"type": "string",
"required": true,
"default": "self"
}
},
{
"variable": "immediate",
"label": "immediate",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "suspend",
"label": "suspend",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "manualBackups",
"label": "manualBackups",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "backup",
"label": "Backup",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "networkPolicy",
"group": "Advanced",
"label": "(Advanced) Network Policy",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "netPolicyEntry",
"label": "Network Policy Entry",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "policyType",
"label": "Policy Type",
"schema": {
"type": "string",
"default": "",
"enum": [
{
"value": "",
"description": "Default"
},
{
"value": "ingress",
"description": "Ingress"
},
{
"value": "egress",
"description": "Egress"
},
{
"value": "ingress-egress",
"description": "Ingress and Egress"
}
]
}
},
{
"variable": "egress",
"label": "Egress",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "egressEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "to",
"label": "To",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "toEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "ipBlock",
"label": "IP Block",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "cidr",
"label": "CIDR",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "except",
"label": "Except",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "exceptint",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "namespaceSelector",
"label": "Namespace Selector",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "matchExpressions",
"label": "Match Expressions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "expressionEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string"
}
},
{
"variable": "operator",
"label": "Operator",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "In",
"description": "In"
},
{
"value": "NotIn",
"description": "NotIn"
},
{
"value": "Exists",
"description": "Exists"
},
{
"value": "DoesNotExist",
"description": "DoesNotExist"
}
]
}
},
{
"variable": "values",
"label": "Values",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "value",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "podSelector",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "matchExpressions",
"label": "Match Expressions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "expressionEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string"
}
},
{
"variable": "operator",
"label": "Operator",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "In",
"description": "In"
},
{
"value": "NotIn",
"description": "NotIn"
},
{
"value": "Exists",
"description": "Exists"
},
{
"value": "DoesNotExist",
"description": "DoesNotExist"
}
]
}
},
{
"variable": "values",
"label": "Values",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "value",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ports",
"label": "Ports",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "portsEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Port",
"schema": {
"type": "int"
}
},
{
"variable": "endPort",
"label": "End Port",
"schema": {
"type": "int"
}
},
{
"variable": "protocol",
"label": "Protocol",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "TCP",
"description": "TCP"
},
{
"value": "UDP",
"description": "UDP"
},
{
"value": "SCTP",
"description": "SCTP"
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingress",
"label": "Ingress",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ingressEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "from",
"label": "From",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "fromEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "ipBlock",
"label": "IP Block",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "cidr",
"label": "CIDR",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "except",
"label": "Except",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "exceptint",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "namespaceSelector",
"label": "Namespace Selector",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "matchExpressions",
"label": "Match Expressions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "expressionEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string"
}
},
{
"variable": "operator",
"label": "Operator",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "In",
"description": "In"
},
{
"value": "NotIn",
"description": "NotIn"
},
{
"value": "Exists",
"description": "Exists"
},
{
"value": "DoesNotExist",
"description": "DoesNotExist"
}
]
}
},
{
"variable": "values",
"label": "Values",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "value",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "podSelector",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "matchExpressions",
"label": "Match Expressions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "expressionEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string"
}
},
{
"variable": "operator",
"label": "Operator",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "In",
"description": "In"
},
{
"value": "NotIn",
"description": "NotIn"
},
{
"value": "Exists",
"description": "Exists"
},
{
"value": "DoesNotExist",
"description": "DoesNotExist"
}
]
}
},
{
"variable": "values",
"label": "Values",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "value",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ports",
"label": "Ports",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "portsEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Port",
"schema": {
"type": "int"
}
},
{
"variable": "endPort",
"label": "End Port",
"schema": {
"type": "int"
}
},
{
"variable": "protocol",
"label": "Protocol",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "TCP",
"description": "TCP"
},
{
"value": "UDP",
"description": "UDP"
},
{
"value": "SCTP",
"description": "SCTP"
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "addons",
"group": "Addons",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "codeserver",
"label": "Codeserver",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "service",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Service Type",
"description": "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer",
"schema": {
"type": "string",
"default": "LoadBalancer",
"enum": [
{
"value": "NodePort",
"description": "Deprecated CHANGE THIS"
},
{
"value": "ClusterIP",
"description": "ClusterIP"
},
{
"value": "LoadBalancer",
"description": "LoadBalancer"
}
]
}
},
{
"variable": "loadBalancerIP",
"label": "LoadBalancer IP",
"description": "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB",
"schema": {
"show_if": [
[
"type",
"=",
"LoadBalancer"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "ports",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "codeserver",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Port",
"schema": {
"type": "int",
"default": 36107
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingress",
"label": "Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [
{
"path": "/",
"pathType": "Prefix"
}
],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests (advanced)",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace (optional)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "ingressClassName",
"label": "(Advanced/Optional) IngressClass Name",
"schema": {
"type": "string",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": ""
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": [],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your cert-manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Certificate Secret (Advanced)",
"schema": {
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"type": "string",
"default": ""
}
},
{
"variable": "scaleCert",
"label": "Use TrueNAS SCALE Certificate (Deprecated)",
"schema": {
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"type": "int",
"$ref": [
"definitions/certificate"
],
"enum": [
{
"value": null,
"description": "No Certificate"
}
],
"default": null,
"null": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "envList",
"label": "Codeserver Environment Variables",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "netshoot",
"label": "Netshoot",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "envList",
"label": "Netshoot Environment Variables",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "vpn",
"label": "VPN",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type",
"schema": {
"type": "string",
"default": "disabled",
"enum": [
{
"value": "disabled",
"description": "disabled"
},
{
"value": "gluetun",
"description": "Gluetun"
},
{
"value": "tailscale",
"description": "Tailscale"
},
{
"value": "openvpn",
"description": "OpenVPN (Deprecated)"
},
{
"value": "wireguard",
"description": "Wireguard (Deprecated)"
}
]
}
},
{
"variable": "openvpn",
"label": "OpenVPN Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"type",
"=",
"openvpn"
]
],
"attrs": [
{
"variable": "username",
"label": "Authentication Username (Optional)",
"description": "Authentication Username, Optional",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "password",
"label": "Authentication Password",
"description": "Authentication Credentials",
"schema": {
"type": "string",
"show_if": [
[
"username",
"!=",
""
]
],
"default": "",
"required": true
}
}
]
}
},
{
"variable": "tailscale",
"label": "Tailscale Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"type",
"=",
"tailscale"
]
],
"attrs": [
{
"variable": "authkey",
"label": "Authentication Key",
"description": "Provide an auth key to automatically authenticate the node as your user account.",
"schema": {
"type": "string",
"private": true,
"default": ""
}
},
{
"variable": "auth_once",
"label": "Auth Once",
"description": "Only attempt to log in if not already logged in.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "accept_dns",
"label": "Accept DNS",
"description": "Accept DNS configuration from the admin console.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "userspace",
"label": "Userspace",
"description": "Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "routes",
"label": "Routes",
"description": "Expose physical subnet routes to your entire Tailscale network.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "dest_ip",
"label": "Destination IP",
"description": "Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "sock5_server",
"label": "Sock5 Server",
"description": "The address on which to listen for SOCKS5 proxying into the tailscale net.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "outbound_http_proxy_listen",
"label": "Outbound HTTP Proxy Listen",
"description": "The address on which to listen for HTTP proxying into the tailscale net.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "extra_args",
"label": "Extra Args",
"description": "Extra Args",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "daemon_extra_args",
"label": "Tailscale Daemon Extra Args",
"description": "Tailscale Daemon Extra Args",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "killSwitch",
"label": "Enable Killswitch",
"schema": {
"type": "boolean",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": true
}
},
{
"variable": "excludedNetworks_IPv4",
"label": "Killswitch Excluded IPv4 networks",
"description": "List of Killswitch Excluded IPv4 Addresses",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "networkv4",
"label": "IPv4 Network",
"schema": {
"type": "string",
"required": true
}
}
]
}
},
{
"variable": "excludedNetworks_IPv6",
"label": "Killswitch Excluded IPv6 networks",
"description": "List of Killswitch Excluded IPv6 Addresses",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "networkv6",
"label": "IPv6 Network",
"schema": {
"type": "string",
"required": true
}
}
]
}
},
{
"variable": "configFile",
"label": "VPN Config File Location",
"schema": {
"type": "string",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": ""
}
},
{
"variable": "envList",
"label": "VPN Environment Variables",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"required": true,
"max_length": 10240
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "docs",
"group": "Documentation",
"label": "Please read the documentation at https://truecharts.org",
"description": "Please read the documentation at <br /><a href=\"https://truecharts.org\">https://truecharts.org</a>",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "confirmDocs",
"label": "I have checked the documentation",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "donateNag",
"group": "Documentation",
"label": "Please consider supporting TrueCharts, see https://truecharts.org/sponsor",
"description": "Please consider supporting TrueCharts, see <br /><a href=\"https://truecharts.org/sponsor\">https://truecharts.org/sponsor</a>",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "confirmDonate",
"label": "I have considered donating",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
}
]
}
}
]
},
"app_readme": "<p>Open source alternative front-end to YouTube.</p>\n<p>This App is supplied by TrueCharts, for more information visit the manual: <a href=\"https://truecharts.org/charts/stable/invidious\">https://truecharts.org/charts/stable/invidious</a></p>\n<hr />\n<p>TrueCharts can only exist due to the incredible effort of our staff.\nPlease consider making a <a href=\"https://truecharts.org/sponsor\">donation</a> or contributing back to the project any way you can!</p>",
"detailed_readme": "<hr />\n<h2>title: README</h2>\n<h2>General Info</h2>\n<p>TrueCharts can be installed as both <em>normal</em> Helm Charts or as Apps on TrueNAS SCALE.\nHowever only installations using the TrueNAS SCALE Apps system are supported.</p>\n<p>For more information about this App, please check the docs on the TrueCharts <a href=\"https://truecharts.org/charts/stable/invidious\">website</a></p>\n<p><strong>This chart is not maintained by the upstream project and any issues with the chart should be raised <a href=\"https://github.com/truecharts/charts/issues/new/choose\">here</a></strong></p>\n<h2>Support</h2>\n<ul>\n<li>Please check our <a href=\"https://truecharts.org/manual/SCALE/guides/scale-intro\">quick-start guides for TrueNAS SCALE</a>.</li>\n<li>See the <a href=\"https://truecharts.org\">Website</a></li>\n<li>Check our <a href=\"https://discord.gg/tVsPTHWTtr\">Discord</a></li>\n<li>Open a <a href=\"https://github.com/truecharts/charts/issues/new/choose\">issue</a></li>\n</ul>\n<hr />\n<h2>Sponsor TrueCharts</h2>\n<p>TrueCharts can only exist due to the incredible effort of our staff.\nPlease consider making a <a href=\"https://truecharts.org/sponsor\">donation</a> or contributing back to the project any way you can!</p>\n<p><em>All Rights Reserved - The TrueCharts Project</em></p>",
"changelog": "<hr />\n<h2>title: Changelog</h2>\n<p><em>for the complete changelog, please refer to the website</em></p>\n<p><strong>Important:</strong></p>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.13...invidious-8.1.14\">invidious-8.1.14</a> (2024-02-12)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image quay.io/invidious/invidious to latest<a href=\"https://github.com/3b2e106\">@3b2e106</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/18215\">#18215</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.12...invidious-8.1.13\">invidious-8.1.13</a> (2024-02-03)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.30<a href=\"https://github.com/19ad5ec\">@19ad5ec</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17804\">#17804</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.11...invidious-8.1.12\">invidious-8.1.12</a> (2024-01-29)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image quay.io/invidious/invidious to latest<a href=\"https://github.com/fc25ef2\">@fc25ef2</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17749\">#17749</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.10...invidious-8.1.11\">invidious-8.1.11</a> (2024-01-26)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.29<a href=\"https://github.com/d7c41a3\">@d7c41a3</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17545\">#17545</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.9...invidious-8.1.10\">invidious-8.1.10</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.28<a href=\"https://github.com/918b4c5\">@918b4c5</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17478\">#17478</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.8...invidious-8.1.9\">invidious-8.1.9</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.26<a href=\"https://github.com/24c98f7\">@24c98f7</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17409\">#17409</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.7...invidious-8.1.8\">invidious-8.1.8</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update metadata in chart.yaml (<a href=\"https://github.com/truecharts/charts/issues/17457\">#17457</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.6...invidious-8.1.7\">invidious-8.1.7</a> (2024-01-14)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image quay.io/invidious/invidious to latest<a href=\"https://github.com/7da41b3\">@7da41b3</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17172\">#17172</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/invidious-8.1.5...invidious-8.1.6\">invidious-8.1.6</a> (2024-01-09)</h2>\n<h3>Chore</h3>"
},
"8.2.0": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/home/runner/work/catalog/catalog/stable/invidious/8.2.0",
"last_update": "2024-02-22 14:02:27",
"required_features": [
"definitions/certificate",
"definitions/timezone",
"definitions/gpuConfiguration",
"definitions/interface",
"normalize/interfaceConfiguration"
],
"human_version": "latest_8.2.0",
"version": "8.2.0",
"chart_metadata": {
"annotations": {
"max_scale_version": "23.10.2",
"min_scale_version": "23.10.0",
"truecharts.org/SCALE-support": "true",
"truecharts.org/category": "media",
"truecharts.org/max_helm_version": "3.14",
"truecharts.org/min_helm_version": "3.12",
"truecharts.org/train": "stable"
},
"apiVersion": "v2",
"appVersion": "latest",
"dependencies": [
{
"name": "common",
"version": "17.4.2",
"repository": "oci://tccr.io/truecharts",
"condition": "",
"alias": "",
"tags": [],
"import-values": []
}
],
"deprecated": false,
"description": "Open source alternative front-end to YouTube.",
"home": "https://truecharts.org/charts/stable/invidious",
"icon": "https://truecharts.org/img/hotlink-ok/chart-icons/invidious.png",
"keywords": [
"invidious",
"youtube",
"media"
],
"kubeVersion": ">=1.24.0-0",
"maintainers": [
{
"name": "TrueCharts",
"email": "info@truecharts.org",
"url": "https://truecharts.org"
}
],
"name": "invidious",
"sources": [
"https://github.com/iv-org/invidious",
"https://docs.invidious.io/installation/#docker",
"https://github.com/truecharts/charts/tree/master/charts/stable/invidious",
"https://quay.io/invidious/invidious"
],
"type": "application",
"version": "8.2.0"
},
"app_metadata": null,
"schema": {
"groups": [
{
"name": "Container Image",
"description": "Image to be used for container"
},
{
"name": "General Settings",
"description": "General Deployment Settings"
},
{
"name": "Workload Settings",
"description": "Workload Settings"
},
{
"name": "App Configuration",
"description": "App Specific Config Options"
},
{
"name": "Networking and Services",
"description": "Configure Network and Services for Container"
},
{
"name": "Storage and Persistence",
"description": "Persist and Share Data that is Separate from the Container"
},
{
"name": "Ingress",
"description": "Ingress Configuration"
},
{
"name": "Security and Permissions",
"description": "Configure Security Context and Permissions"
},
{
"name": "Resources and Devices",
"description": "Specify Resources/Devices to be Allocated to Workload"
},
{
"name": "Middlewares",
"description": "Traefik Middlewares"
},
{
"name": "Metrics",
"description": "Metrics"
},
{
"name": "Addons",
"description": "Addon Configuration"
},
{
"name": "Backup Configuration",
"description": "Configure Velero Backup Schedule"
},
{
"name": "Advanced",
"description": "Advanced Configuration"
},
{
"name": "Postgresql",
"description": "Postgresql"
},
{
"name": "Documentation",
"description": "Documentation"
}
],
"portals": {
"open": {
"protocols": [
"$kubernetes-resource_configmap_tcportal-open_protocol"
],
"host": [
"$kubernetes-resource_configmap_tcportal-open_host"
],
"ports": [
"$kubernetes-resource_configmap_tcportal-open_port"
]
}
},
"questions": [
{
"variable": "global",
"group": "General Settings",
"label": "Global Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "stopAll",
"label": "Stop All",
"description": "Stops All Running pods and hibernates cnpg",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "workload",
"group": "Workload Settings",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type (Advanced)",
"schema": {
"type": "string",
"default": "Deployment",
"enum": [
{
"value": "Deployment",
"description": "Deployment"
},
{
"value": "DaemonSet",
"description": "DaemonSet"
}
]
}
},
{
"variable": "replicas",
"label": "Replicas (Advanced)",
"description": "Set the number of Replicas",
"schema": {
"type": "int",
"show_if": [
[
"type",
"!=",
"DaemonSet"
]
],
"default": 1
}
},
{
"variable": "podSpec",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "containers",
"label": "Containers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Container",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "envList",
"label": "Extra Environment Variables",
"description": "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting...",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string"
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "extraArgs",
"label": "Extra Args",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "arg",
"label": "Arg",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "command",
"label": "Command",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "param",
"label": "Param",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "invidious",
"group": "App Configuration",
"label": "Invidious Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "network",
"label": "Network Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "inbound",
"label": "Inbound",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "external_port",
"label": "External Port",
"description": "When the invidious instance is behind a proxy, and the proxy listens on a different port than the instance does, this lets invidious know about it.",
"schema": {
"type": "int",
"required": true,
"min": 1,
"max": 65535,
"default": 10594
}
},
{
"variable": "https_only",
"label": "HTTPS Only",
"description": "Tell Invidious that it is behind a proxy that provides only HTTPS, so all links must use the https:// scheme. This setting MUST be set to true if invidious is behind a reverse proxy serving HTTPs.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "domain",
"label": "Domain",
"description": "Domain name under which this instance is hosted. This is used to craft absolute URLs to the instance",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "hsts",
"label": "HSTS",
"description": "Enable/Disable Strict-Transport-Security.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "outbound",
"label": "Outbound",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "disable_proxy",
"label": "Disable Proxy",
"description": "Disable proxying server-wide. Can be disable as a whole, or only for a single function.",
"schema": {
"type": "string",
"required": true,
"default": "false",
"enum": [
{
"value": "false",
"description": "false"
},
{
"value": "true",
"description": "true"
},
{
"value": "dash",
"description": "dash"
},
{
"value": "livestreams",
"description": "livestreams"
},
{
"value": "livestreams",
"description": "livestreams"
},
{
"value": "downloads",
"description": "downloads"
},
{
"value": "local",
"description": "local"
}
]
}
},
{
"variable": "pool_size",
"label": "Pool Size",
"description": "Size of the HTTP pool used to connect to youtube.",
"schema": {
"type": "int",
"required": true,
"min": 1,
"default": 100
}
},
{
"variable": "use_quic",
"label": "Use QUIC",
"description": "Enable/Disable the use of QUIC (HTTP/3) when connecting to the youtube API and websites",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "cookies",
"label": "Cookies",
"description": "Additional cookies to be sent when requesting the youtube API.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "cookie_entry",
"label": "Cookie Entry",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "force_resolve",
"label": "Force Resolve",
"description": "Force connection to youtube over a specific IP family.",
"schema": {
"type": "string",
"default": "",
"enum": [
{
"value": "",
"description": "No Force"
},
{
"value": "ipv4",
"description": "ipv4"
},
{
"value": "ipv6",
"description": "ipv6"
}
]
}
}
]
}
}
]
}
},
{
"variable": "logging",
"label": "Logging Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "output",
"label": "Output",
"description": "STDOUT or Path to log file. Can be absolute or relative to the invidious binary.",
"schema": {
"type": "string",
"required": true,
"default": "STDOUT"
}
},
{
"variable": "log_level",
"label": "Log Level",
"description": "Logging Verbosity.",
"schema": {
"type": "string",
"required": true,
"default": "Info",
"enum": [
{
"value": "Info",
"description": "Info"
},
{
"value": "Trace",
"description": "Trace"
},
{
"value": "Debug",
"description": "Debug"
},
{
"value": "Warn",
"description": "Warn"
},
{
"value": "Error",
"description": "Error"
},
{
"value": "Fatal",
"description": "Fatal"
},
{
"value": "Off",
"description": "Off"
},
{
"value": "All",
"description": "All"
}
]
}
}
]
}
},
{
"variable": "features",
"label": "Features Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "popular_enabled",
"label": "Popular Enabled",
"description": "Enable/Disable the \"Popular\" tab on the main page.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "statistics_enabled",
"label": "Statistics Enabled",
"description": "Enable/Disable statistics (available at /api/v1/stats).",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "users_accounts",
"label": "Users and Accounts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "registration_enabled",
"label": "Registration Enabled",
"description": "Allow/Forbid Invidious (local) account creation. Invidious accounts allow users to subscribe to channels and to create playlists without a Google account.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "login_enabled",
"label": "Login Enabled",
"description": "Allow/Forbid users to log-in. This setting affects the ability to connect with BOTH Google and Invidious (local) accounts.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "captcha_enabled",
"label": "Captcha Enabled",
"description": "Enable/Disable the captcha challenge on the login page.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "admins",
"label": "Admins",
"description": "List of usernames that will be granted administrator rights.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "adminEntry",
"label": "Admin Entry",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "enable_user_notifications",
"label": "User Notifications Enabled",
"description": "Enable/Disable user notifications.",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "background_jobs",
"label": "Background Jobs",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "channel_threads",
"label": "Channel Threads",
"description": "Number of threads to use when crawling channel videos (during subscriptions update).",
"schema": {
"type": "int",
"required": true,
"min": 1,
"default": 1
}
},
{
"variable": "channel_refresh_interval",
"label": "Channel Refresh Interval",
"description": "Time interval between two executions of the job that crawls channel videos (subscriptions update).",
"schema": {
"type": "string",
"required": true,
"default": "30m"
}
},
{
"variable": "full_refresh",
"label": "Full Refresh",
"description": "Forcefully dump and re-download the entire list of uploaded videos when crawling channel (during subscriptions update).",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "feed_threads",
"label": "Feed Threads",
"description": "Number of threads to use when updating RSS feeds.",
"schema": {
"type": "int",
"required": true,
"min": 1,
"default": 1
}
},
{
"variable": "decrypt_polling",
"label": "Decrypt Polling",
"description": "Enable/Disable the polling job that keeps the decryption function (for \"secured\" videos) up to date.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "jobs",
"label": "Jobs Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "clear_expired_items",
"label": "Clear Expired Items",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enable",
"label": "Enable",
"description": "Enable the database cleaning job",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "refresh_channels",
"label": "Refresh Channels",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enable",
"label": "Enable",
"description": "Enable the channels updater job",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "refresh_feeds",
"label": "Refresh Feeds",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enable",
"label": "Enable",
"description": "Enable the RSS feeds updater job",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
}
]
}
},
{
"variable": "captcha",
"label": "Captcha",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "captcha_api_url",
"label": "Captcha API URL",
"description": "URL of the captcha solving service.",
"schema": {
"type": "string",
"required": true,
"default": "https://api.anti-captcha.com"
}
},
{
"variable": "captcha_key",
"label": "Captcha API Key",
"description": "API key for the captcha solving service.",
"schema": {
"type": "string",
"private": true,
"default": ""
}
}
]
}
},
{
"variable": "miscellaneous",
"label": "Miscellaneous",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "banner",
"label": "Banner",
"description": "Custom banner displayed at the top of every page. This can used for instance announcements, e.g.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "use_pubsub_feeds",
"label": "Use PuBSub Feeds",
"description": "Subscribe to channels using PubSubHub (Google PubSubHubbub service). PubSubHub allows Invidious to be instantly notified when a new video is published on any subscribed channels",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dmca_content",
"label": "DMCA Content",
"description": "List of video IDs where the \"download\" widget must be disabled, in order to comply with DMCA requests.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "dmcaEntry",
"label": "DMCA Entry",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "cache_annotations",
"label": "Cache Annotations",
"description": "Cache video annotations in the database.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "playlist_length_limit",
"label": "Playlist Length Limit",
"description": "Maximum custom playlist length limit.",
"schema": {
"type": "int",
"required": true,
"default": 500
}
}
]
}
},
{
"variable": "default_user_preferences",
"label": "Default User Preferences",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "internationalization",
"label": "Internationalization",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "locale",
"label": "Locale",
"description": "Default user interface language (locale).",
"schema": {
"type": "string",
"required": true,
"default": "en-US",
"enum": [
{
"value": "ar",
"description": "Arabic"
},
{
"value": "da",
"description": "Danish"
},
{
"value": "de",
"description": "German"
},
{
"value": "en-US",
"description": "English, US"
},
{
"value": "el",
"description": "Greek"
},
{
"value": "eo",
"description": "Esperanto"
},
{
"value": "es",
"description": "Spanish"
},
{
"value": "fa",
"description": "Persian"
},
{
"value": "fi",
"description": "Finnish"
},
{
"value": "fr",
"description": "French"
},
{
"value": "he",
"description": "Hebrew"
},
{
"value": "hr",
"description": "Hungarian"
},
{
"value": "id",
"description": "Indonesian"
},
{
"value": "is",
"description": "Icelandic"
},
{
"value": "it",
"description": "Italian"
},
{
"value": "ja",
"description": "Japanese"
},
{
"value": "nb-NO",
"description": "Norwegian, Bomkmal"
},
{
"value": "nl",
"description": "Dutch"
},
{
"value": "pl",
"description": "Polish"
},
{
"value": "pt-BR",
"description": "Portuguese, Brazil"
},
{
"value": "pt-PT",
"description": "Portuguese, Portugal"
},
{
"value": "ro",
"description": "Romanian"
},
{
"value": "ru",
"description": "Russian"
},
{
"value": "sv",
"description": "Swedish"
},
{
"value": "tr",
"description": "Turkish"
},
{
"value": "uk",
"description": "Ukrainian"
},
{
"value": "zh-CN",
"description": "Chinese, China (Simplified Chinese)"
},
{
"value": "zh-TW",
"description": "Chinese, Taiwan (Traditional Chinese)"
}
]
}
},
{
"variable": "region",
"label": "Region",
"description": "Default geographical location for content.",
"schema": {
"type": "string",
"required": true,
"default": "US",
"enum": [
{
"value": "AE",
"description": "AE"
},
{
"value": "AR",
"description": "AR"
},
{
"value": "AT",
"description": "AT"
},
{
"value": "AU",
"description": "AU"
},
{
"value": "AZ",
"description": "AZ"
},
{
"value": "BA",
"description": "BA"
},
{
"value": "BD",
"description": "BD"
},
{
"value": "BE",
"description": "BE"
},
{
"value": "BG",
"description": "BG"
},
{
"value": "BH",
"description": "BH"
},
{
"value": "BO",
"description": "BO"
},
{
"value": "BR",
"description": "BR"
},
{
"value": "BY",
"description": "BY"
},
{
"value": "CA",
"description": "CA"
},
{
"value": "CH",
"description": "CH"
},
{
"value": "CL",
"description": "CL"
},
{
"value": "CO",
"description": "CO"
},
{
"value": "CR",
"description": "CR"
},
{
"value": "CY",
"description": "CY"
},
{
"value": "CZ",
"description": "CZ"
},
{
"value": "DE",
"description": "DE"
},
{
"value": "DK",
"description": "DK"
},
{
"value": "DO",
"description": "DO"
},
{
"value": "DZ",
"description": "DZ"
},
{
"value": "EC",
"description": "EC"
},
{
"value": "EE",
"description": "EE"
},
{
"value": "EG",
"description": "EG"
},
{
"value": "ES",
"description": "ES"
},
{
"value": "FI",
"description": "FI"
},
{
"value": "FR",
"description": "FR"
},
{
"value": "GB",
"description": "GB"
},
{
"value": "GE",
"description": "GE"
},
{
"value": "GH",
"description": "GH"
},
{
"value": "GR",
"description": "GR"
},
{
"value": "GT",
"description": "GT"
},
{
"value": "HK",
"description": "HK"
},
{
"value": "HN",
"description": "HN"
},
{
"value": "HR",
"description": "HR"
},
{
"value": "HU",
"description": "HU"
},
{
"value": "ID",
"description": "ID"
},
{
"value": "IE",
"description": "IE"
},
{
"value": "IL",
"description": "IL"
},
{
"value": "IN",
"description": "IN"
},
{
"value": "IQ",
"description": "IQ"
},
{
"value": "IS",
"description": "IS"
},
{
"value": "IT",
"description": "IT"
},
{
"value": "JM",
"description": "JM"
},
{
"value": "JO",
"description": "JO"
},
{
"value": "JP",
"description": "JP"
},
{
"value": "KE",
"description": "KE"
},
{
"value": "KR",
"description": "KR"
},
{
"value": "KW",
"description": "KW"
},
{
"value": "KZ",
"description": "KZ"
},
{
"value": "LB",
"description": "LB"
},
{
"value": "LI",
"description": "LI"
},
{
"value": "LK",
"description": "LK"
},
{
"value": "LT",
"description": "LT"
},
{
"value": "LU",
"description": "LU"
},
{
"value": "LV",
"description": "LV"
},
{
"value": "LY",
"description": "LY"
},
{
"value": "MA",
"description": "MA"
},
{
"value": "ME",
"description": "ME"
},
{
"value": "MK",
"description": "MK"
},
{
"value": "MT",
"description": "MT"
},
{
"value": "MX",
"description": "MX"
},
{
"value": "MY",
"description": "MY"
},
{
"value": "NG",
"description": "NG"
},
{
"value": "NI",
"description": "NI"
},
{
"value": "NL",
"description": "NL"
},
{
"value": "NO",
"description": "NO"
},
{
"value": "NP",
"description": "NP"
},
{
"value": "NZ",
"description": "NZ"
},
{
"value": "OM",
"description": "OM"
},
{
"value": "PA",
"description": "PA"
},
{
"value": "PE",
"description": "PE"
},
{
"value": "PG",
"description": "PG"
},
{
"value": "PH",
"description": "PH"
},
{
"value": "PK",
"description": "PK"
},
{
"value": "PL",
"description": "PL"
},
{
"value": "PR",
"description": "PR"
},
{
"value": "PT",
"description": "PT"
},
{
"value": "PY",
"description": "PY"
},
{
"value": "QA",
"description": "QA"
},
{
"value": "RO",
"description": "RO"
},
{
"value": "RS",
"description": "RS"
},
{
"value": "RU",
"description": "RU"
},
{
"value": "SA",
"description": "SA"
},
{
"value": "SE",
"description": "SE"
},
{
"value": "SG",
"description": "SG"
},
{
"value": "SI",
"description": "SI"
},
{
"value": "SK",
"description": "SK"
},
{
"value": "SN",
"description": "SN"
},
{
"value": "SV",
"description": "SV"
},
{
"value": "TH",
"description": "TH"
},
{
"value": "TN",
"description": "TN"
},
{
"value": "TR",
"description": "TR"
},
{
"value": "TW",
"description": "TW"
},
{
"value": "TZ",
"description": "TZ"
},
{
"value": "UA",
"description": "UA"
},
{
"value": "UG",
"description": "UG"
},
{
"value": "US",
"description": "US"
},
{
"value": "UY",
"description": "UY"
},
{
"value": "VE",
"description": "VE"
},
{
"value": "VN",
"description": "VN"
},
{
"value": "YE",
"description": "YE"
},
{
"value": "ZA",
"description": "ZA"
},
{
"value": "ZW",
"description": "ZW"
}
]
}
},
{
"variable": "captions",
"label": "Captions",
"description": "Top 3 preferred languages for video captions. Exactly 3 Captions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "captionEntry",
"label": "Caption Entry",
"schema": {
"type": "string",
"required": true,
"default": "",
"enum": [
{
"value": "English",
"description": "English"
},
{
"value": "English (auto-generated)",
"description": "English (auto-generated)"
},
{
"value": "Afrikaans",
"description": "Afrikaans"
},
{
"value": "Albanian",
"description": "Albanian"
},
{
"value": "Amharic",
"description": "Amharic"
},
{
"value": "Arabic",
"description": "Arabic"
},
{
"value": "Armenian",
"description": "Armenian"
},
{
"value": "Azerbaijani",
"description": "Azerbaijani"
},
{
"value": "Bangla",
"description": "Bangla"
},
{
"value": "Basque",
"description": "Basque"
},
{
"value": "Belarusian",
"description": "Belarusian"
},
{
"value": "Bosnian",
"description": "Bosnian"
},
{
"value": "Bulgarian",
"description": "Bulgarian"
},
{
"value": "Burmese",
"description": "Burmese"
},
{
"value": "Catalan",
"description": "Catalan"
},
{
"value": "Cebuano",
"description": "Cebuano"
},
{
"value": "Chinese (Simplified)",
"description": "Chinese (Simplified)"
},
{
"value": "Chinese (Traditional)",
"description": "Chinese (Traditional)"
},
{
"value": "Corsican",
"description": "Corsican"
},
{
"value": "Croatian",
"description": "Croatian"
},
{
"value": "Czech",
"description": "Czech"
},
{
"value": "Danish",
"description": "Danish"
},
{
"value": "Dutch",
"description": "Dutch"
},
{
"value": "Esperanto",
"description": "Esperanto"
},
{
"value": "Estonian",
"description": "Estonian"
},
{
"value": "Filipino",
"description": "Filipino"
},
{
"value": "Finnish",
"description": "Finnish"
},
{
"value": "French",
"description": "French"
},
{
"value": "Galician",
"description": "Galician"
},
{
"value": "Georgian",
"description": "Georgian"
},
{
"value": "German",
"description": "German"
},
{
"value": "Greek",
"description": "Greek"
},
{
"value": "Gujarati",
"description": "Gujarati"
},
{
"value": "Haitian Creole",
"description": "Haitian Creole"
},
{
"value": "Hausa",
"description": "Hausa"
},
{
"value": "Hawaiian",
"description": "Hawaiian"
},
{
"value": "Hebrew",
"description": "Hebrew"
},
{
"value": "Hindi",
"description": "Hindi"
},
{
"value": "Hmong",
"description": "Hmong"
},
{
"value": "Hungarian",
"description": "Hungarian"
},
{
"value": "Icelandic",
"description": "Icelandic"
},
{
"value": "Igbo",
"description": "Igbo"
},
{
"value": "Indonesian",
"description": "Indonesian"
},
{
"value": "Irish",
"description": "Irish"
},
{
"value": "Italian",
"description": "Italian"
},
{
"value": "Japanese",
"description": "Japanese"
},
{
"value": "Javanese",
"description": "Javanese"
},
{
"value": "Kannada",
"description": "Kannada"
},
{
"value": "Kazakh",
"description": "Kazakh"
},
{
"value": "Khmer",
"description": "Khmer"
},
{
"value": "Korean",
"description": "Korean"
},
{
"value": "Kurdish",
"description": "Kurdish"
},
{
"value": "Kyrgyz",
"description": "Kyrgyz"
},
{
"value": "Lao",
"description": "Lao"
},
{
"value": "Latin",
"description": "Latin"
},
{
"value": "Latvian",
"description": "Latvian"
},
{
"value": "Lithuanian",
"description": "Lithuanian"
},
{
"value": "Luxembourgish",
"description": "Luxembourgish"
},
{
"value": "Macedonian",
"description": "Macedonian"
},
{
"value": "Malagasy",
"description": "Malagasy"
},
{
"value": "Malay",
"description": "Malay"
},
{
"value": "Malayalam",
"description": "Malayalam"
},
{
"value": "Maltese",
"description": "Maltese"
},
{
"value": "Maori",
"description": "Maori"
},
{
"value": "Marathi",
"description": "Marathi"
},
{
"value": "Mongolian",
"description": "Mongolian"
},
{
"value": "Nepali",
"description": "Nepali"
},
{
"value": "Norwegian Bokm\u00e5l",
"description": "Norwegian Bokm\u00e5l"
},
{
"value": "Nyanja",
"description": "Nyanja"
},
{
"value": "Pashto",
"description": "Pashto"
},
{
"value": "Persian",
"description": "Persian"
},
{
"value": "Polish",
"description": "Polish"
},
{
"value": "Portuguese",
"description": "Portuguese"
},
{
"value": "Punjabi",
"description": "Punjabi"
},
{
"value": "Romanian",
"description": "Romanian"
},
{
"value": "Russian",
"description": "Russian"
},
{
"value": "Samoan",
"description": "Samoan"
},
{
"value": "Scottish Gaelic",
"description": "Scottish Gaelic"
},
{
"value": "Serbian",
"description": "Serbian"
},
{
"value": "Shona",
"description": "Shona"
},
{
"value": "Sindhi",
"description": "Sindhi"
},
{
"value": "Sinhala",
"description": "Sinhala"
},
{
"value": "Slovak",
"description": "Slovak"
},
{
"value": "Slovenian",
"description": "Slovenian"
},
{
"value": "Somali",
"description": "Somali"
},
{
"value": "Southern Sotho",
"description": "Southern Sotho"
},
{
"value": "Spanish",
"description": "Spanish"
},
{
"value": "Spanish (Latin America)",
"description": "Spanish (Latin America)"
},
{
"value": "Sundanese",
"description": "Sundanese"
},
{
"value": "Swahili",
"description": "Swahili"
},
{
"value": "Swedish",
"description": "Swedish"
},
{
"value": "Tajik",
"description": "Tajik"
},
{
"value": "Tamil",
"description": "Tamil"
},
{
"value": "Telugu",
"description": "Telugu"
},
{
"value": "Thai",
"description": "Thai"
},
{
"value": "Turkish",
"description": "Turkish"
},
{
"value": "Ukrainian",
"description": "Ukrainian"
},
{
"value": "Urdu",
"description": "Urdu"
},
{
"value": "Uzbek",
"description": "Uzbek"
},
{
"value": "Vietnamese",
"description": "Vietnamese"
},
{
"value": "Welsh",
"description": "Welsh"
},
{
"value": "Western Frisian",
"description": "Western Frisian"
},
{
"value": "Xhosa",
"description": "Xhosa"
},
{
"value": "Yiddish",
"description": "Yiddish"
},
{
"value": "Yoruba",
"description": "Yoruba"
},
{
"value": "Zulu",
"description": "Zulu"
}
]
}
}
]
}
}
]
}
},
{
"variable": "interface",
"label": "Interface",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "dark_mode",
"label": "Dark Mode",
"description": "Enable/Disable dark mode.",
"schema": {
"type": "string",
"required": true,
"default": "auto",
"enum": [
{
"value": "auto",
"description": "Auto"
},
{
"value": "dark",
"description": "Dark"
},
{
"value": "light",
"description": "Light"
}
]
}
},
{
"variable": "thin_mode",
"label": "Thin Mode",
"description": "Enable/Disable thin mode (no video thumbnails).",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "feed_menu",
"label": "Feed Menu",
"description": "List of feeds available on the home page. Defaults to all. Max 4 feed items",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "feedEntry",
"label": "Feed Entry",
"schema": {
"type": "string",
"required": true,
"default": "",
"enum": [
{
"value": "Popular",
"description": "Popular"
},
{
"value": "Trending",
"description": "Trending"
},
{
"value": "Subscriptions",
"description": "Subscriptions"
},
{
"value": "Playlists",
"description": "Playlists"
}
]
}
}
]
}
},
{
"variable": "default_home",
"label": "Default Home",
"description": "Default feed to display on the home page.",
"schema": {
"type": "string",
"default": "",
"enum": [
{
"value": "",
"description": "None"
},
{
"value": "Popular",
"description": "Popular"
},
{
"value": "Trending",
"description": "Trending"
},
{
"value": "Subscriptions",
"description": "Subscriptions"
},
{
"value": "Playlists",
"description": "Playlists"
}
]
}
},
{
"variable": "max_results",
"label": "Max Results",
"description": "Default number of results to display per page.",
"schema": {
"type": "int",
"required": true,
"default": 40
}
},
{
"variable": "annotations",
"label": "Annotations",
"description": "Show/hide annotations.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "annotations_subscribed",
"label": "Annotations Subscribed",
"description": "Show/hide subscribed annotations.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "comments",
"label": "Comments",
"description": "Type of comments to display below video. Exactly 2 Types",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "commentEntry",
"label": "Comment Entry",
"schema": {
"type": "string",
"required": true,
"default": "",
"enum": [
{
"value": "",
"description": "None"
},
{
"value": "youtube",
"description": "Youtube"
},
{
"value": "reddit",
"description": "Reddit"
}
]
}
}
]
}
},
{
"variable": "player_style",
"label": "Player Style",
"description": "Default player style.",
"schema": {
"type": "string",
"required": true,
"default": "invidious",
"enum": [
{
"value": "invidious",
"description": "Invidious"
},
{
"value": "youtube",
"description": "Youtube"
}
]
}
},
{
"variable": "related_videos",
"label": "Related Videos",
"description": "Show/Hide the \"related videos\" sidebar when watching a video.",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "video_player_behavior",
"label": "Video Player Behavior",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "autoplay",
"label": "Autoplay",
"description": "Automatically play videos on page load.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "continue",
"label": "Continue",
"description": "Automatically load the \"next\" video (either next in playlist or proposed) when the current video ends.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "continue_autoplay",
"label": "Continue Autoplay",
"description": "Autoplay next video by default.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "listen",
"label": "Listen",
"description": "Play videos in Audio-only mode by default.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "video_loop",
"label": "Video Loop",
"description": "Loop videos automatically.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "video_playback_settings",
"label": "Video Playback Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "quality",
"label": "Quality",
"description": "Default video quality.",
"schema": {
"type": "string",
"required": true,
"default": "hd720",
"enum": [
{
"value": "hd720",
"description": "HD720"
},
{
"value": "dash",
"description": "Dash"
},
{
"value": "medium",
"description": "Medium"
},
{
"value": "small",
"description": "Small"
}
]
}
},
{
"variable": "quality_dash",
"label": "Quality Dash",
"description": "Default dash video quality.",
"schema": {
"type": "string",
"show_if": [
[
"quality",
"=",
"dash"
]
],
"required": true,
"default": "auto",
"enum": [
{
"value": "auto",
"description": "Auto"
},
{
"value": "best",
"description": "Best"
},
{
"value": "4320p",
"description": "4320p"
},
{
"value": "2160p",
"description": "2160p"
},
{
"value": "1440p",
"description": "1440p"
},
{
"value": "1080p",
"description": "1080p"
},
{
"value": "720p",
"description": "720p"
},
{
"value": "480p",
"description": "480p"
},
{
"value": "480p",
"description": "480p"
},
{
"value": "360p",
"description": "360p"
},
{
"value": "240p",
"description": "240p"
},
{
"value": "144p",
"description": "144p"
},
{
"value": "worst",
"description": "Worst"
}
]
}
},
{
"variable": "speed",
"label": "Speed",
"description": "Default video playback speed.",
"schema": {
"type": "string",
"required": true,
"valid_chars": "^[0-9]+(\\.[0-9]{1,2})?$",
"default": "1.00"
}
},
{
"variable": "volume",
"label": "Volume",
"description": "Default volume.",
"schema": {
"type": "int",
"min": 1,
"max": 100,
"required": true,
"default": 100
}
},
{
"variable": "vr_mode",
"label": "VR Mode",
"description": "Allow 360\u00b0 videos to be played.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "subscription_feed",
"label": "Subscription Feed",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "latest_only",
"label": "Latest Only",
"description": "In the \"Subscription\" feed, only show the latest video of each channel the user is subscribed to.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "notifications_only",
"label": "Notifications Only",
"description": "Enable/Disable user subscriptions desktop notifications.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "unseen_only",
"label": "Unseen Only",
"description": "In the \"Subscription\" feed, Only show the videos that the user haven't watched yet.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "sort",
"label": "Sort",
"description": "Default sorting parameter for subscription feeds.",
"schema": {
"type": "string",
"required": true,
"default": "published",
"enum": [
{
"value": "alphabetically",
"description": "Alphabetically"
},
{
"value": "alphabetically - reverse",
"description": "Alphabetically - Reverse"
},
{
"value": "channel name",
"description": "Channel Name"
},
{
"value": "channel name - reverse",
"description": "Channel Name - Reverse"
},
{
"value": "published",
"description": "Published"
},
{
"value": "published - reverse",
"description": "Published - Reverse"
}
]
}
}
]
}
},
{
"variable": "miscellaneous",
"label": "Miscellaneous",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "local",
"label": "Local",
"description": "Proxy videos through instance by default.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "show_nick",
"label": "Show Nick",
"description": "Show the connected user's nick at the top right.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "automatic_instance_redirect",
"label": "Automatic Instance Redirect",
"description": "Automatically redirect to a random instance when the user uses any \"switch invidious instance\" link",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "extend_desc",
"label": "Extend Description",
"description": "Show the entire video description",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "TZ",
"label": "Timezone",
"group": "General Settings",
"schema": {
"type": "string",
"default": "America/Los_Angeles",
"$ref": [
"definitions/timezone"
],
"enum": [
{
"value": "Asia/Damascus",
"description": "'Asia/Damascus' timezone"
},
{
"value": "Asia/Saigon",
"description": "'Asia/Saigon' timezone"
}
]
}
},
{
"variable": "podOptions",
"group": "General Settings",
"label": "Global Pod Options (Advanced)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "expertPodOpts",
"label": "Expert - Pod Options",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "hostNetwork",
"label": "Host Networking",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dnsConfig",
"label": "DNS Configuration",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "options",
"label": "Options",
"schema": {
"type": "list",
"default": [
{
"name": "ndots",
"value": "1"
}
],
"items": [
{
"variable": "optionsEntry",
"label": "Option Entry",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "nameservers",
"label": "Nameservers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "nsEntry",
"label": "Nameserver Entry",
"schema": {
"type": "string",
"required": true
}
}
]
}
},
{
"variable": "searches",
"label": "Searches",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "searchEntry",
"label": "Search Entry",
"schema": {
"type": "string",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "imagePullSecretList",
"group": "General Settings",
"label": "Image Pull Secrets",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "pullsecretentry",
"label": "Pull Secret",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "data",
"label": "Data",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "registry",
"label": "Registry",
"schema": {
"type": "string",
"required": true,
"default": "https://index.docker.io/v1/"
}
},
{
"variable": "username",
"label": "Username",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "password",
"label": "Password",
"schema": {
"type": "string",
"required": true,
"private": true,
"default": ""
}
},
{
"variable": "email",
"label": "Email",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "service",
"group": "Networking and Services",
"label": "Configure Service(s)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Service",
"description": "The Primary service on which the healthcheck runs, often the webUI",
"schema": {
"additional_attrs": true,
"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 and Loadbalancer exposes the service using the system loadbalancer",
"schema": {
"type": "string",
"default": "LoadBalancer",
"enum": [
{
"value": "LoadBalancer",
"description": "LoadBalancer (Expose Ports)"
},
{
"value": "ClusterIP",
"description": "ClusterIP (Do Not Expose Ports)"
}
]
}
},
{
"variable": "loadBalancerIP",
"label": "LoadBalancer IP",
"description": "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB",
"schema": {
"show_if": [
[
"type",
"=",
"LoadBalancer"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "ports",
"label": "Service's Port(s) Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Service Port Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Port",
"description": "This port exposes the container port on the service",
"schema": {
"type": "int",
"default": 10594,
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "serviceexpert",
"group": "Networking and Services",
"label": "Show Expert Config",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "scaleExternalInterface",
"description": "Add External Interfaces",
"label": "Add external Interfaces",
"group": "Networking",
"schema": {
"type": "list",
"items": [
{
"variable": "interfaceConfiguration",
"description": "Interface Configuration",
"label": "Interface Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"$ref": [
"normalize/interfaceConfiguration"
],
"attrs": [
{
"variable": "hostInterface",
"description": "Please Specify Host Interface",
"label": "Host Interface",
"schema": {
"type": "string",
"required": true,
"$ref": [
"definitions/interface"
],
"enum": []
}
},
{
"variable": "ipam",
"description": "Define how IP Address will be managed",
"label": "IP Address Management",
"schema": {
"additional_attrs": true,
"type": "dict",
"required": true,
"attrs": [
{
"variable": "type",
"description": "Specify type for IPAM",
"label": "IPAM Type",
"schema": {
"type": "string",
"required": true,
"enum": [
{
"value": "dhcp",
"description": "Use DHCP"
},
{
"value": "static",
"description": "Use Static IP"
}
]
}
},
{
"variable": "staticIPConfigurations",
"label": "Static IP Addresses",
"schema": {
"type": "list",
"show_if": [
[
"type",
"=",
"static"
]
],
"items": [
{
"variable": "staticIP",
"label": "Static IP",
"schema": {
"type": "ipaddr",
"cidr": true
}
}
]
}
},
{
"variable": "staticRoutes",
"label": "Static Routes",
"schema": {
"type": "list",
"show_if": [
[
"type",
"=",
"static"
]
],
"items": [
{
"variable": "staticRouteConfiguration",
"label": "Static Route Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "destination",
"label": "Destination",
"schema": {
"type": "ipaddr",
"cidr": true,
"required": true
}
},
{
"variable": "gateway",
"label": "Gateway",
"schema": {
"type": "ipaddr",
"cidr": false,
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "serviceList",
"label": "Add Manual Custom Services",
"group": "Networking and Services",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "serviceListEntry",
"label": "Custom Service",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the service",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "type",
"label": "Service Type",
"description": "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer",
"schema": {
"type": "string",
"default": "LoadBalancer",
"enum": [
{
"value": "LoadBalancer",
"description": "LoadBalancer (Expose Ports)"
},
{
"value": "ClusterIP",
"description": "ClusterIP (Do Not Expose Ports)"
},
{
"value": "Simple",
"description": "Deprecated CHANGE THIS"
}
]
}
},
{
"variable": "loadBalancerIP",
"label": "LoadBalancer IP",
"description": "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB",
"schema": {
"show_if": [
[
"type",
"=",
"LoadBalancer"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "advancedsvcset",
"label": "Show Advanced Service Settings",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "externalIPs",
"label": "External IP's",
"description": "External IP's",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "externalIP",
"label": "External IP",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "ipFamilyPolicy",
"label": "IP Family Policy",
"description": "Specify the IP Policy",
"schema": {
"type": "string",
"default": "SingleStack",
"enum": [
{
"value": "SingleStack",
"description": "SingleStack"
},
{
"value": "PreferDualStack",
"description": "PreferDualStack"
},
{
"value": "RequireDualStack",
"description": "RequireDualStack"
}
]
}
},
{
"variable": "ipFamilies",
"label": "IP Families",
"description": "(Advanced) The IP Families that should be used",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ipFamily",
"label": "IP Family",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "portsList",
"label": "Additional Service Ports",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "portsListEntry",
"label": "Custom ports",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the Port",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Port Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "protocol",
"label": "Port Type",
"schema": {
"type": "string",
"default": "tcp",
"enum": [
{
"value": "http",
"description": "HTTP"
},
{
"value": "https",
"description": "HTTPS"
},
{
"value": "tcp",
"description": "TCP"
},
{
"value": "udp",
"description": "UDP"
}
]
}
},
{
"variable": "targetPort",
"label": "Target Port",
"description": "This port exposes the container port on the service",
"schema": {
"type": "int",
"required": true
}
},
{
"variable": "port",
"label": "Container Port",
"schema": {
"type": "int",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "persistenceList",
"label": "Additional App Storage",
"group": "Storage and Persistence",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "persistenceListEntry",
"label": "Custom Storage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the storage",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "type",
"label": "Type of Storage",
"description": "Sets the persistence type, Anything other than PVC could break rollback!",
"schema": {
"type": "string",
"default": "hostPath",
"enum": [
{
"value": "pvc",
"description": "PVC"
},
{
"value": "hostPath",
"description": "Host Path"
},
{
"value": "emptyDir",
"description": "emptyDir"
},
{
"value": "nfs",
"description": "NFS Share"
}
]
}
},
{
"variable": "server",
"label": "NFS Server",
"schema": {
"show_if": [
[
"type",
"=",
"nfs"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "path",
"label": "Path on NFS Server",
"schema": {
"show_if": [
[
"type",
"=",
"nfs"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "iscsi",
"label": "iSCSI Options",
"schema": {
"show_if": [
[
"type",
"=",
"iscsi"
]
],
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "targetPortal",
"label": "targetPortal",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "iqn",
"label": "iqn",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "lun",
"label": "lun",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "authSession",
"label": "authSession",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "username",
"label": "username",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "password",
"label": "password",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "usernameInitiator",
"label": "usernameInitiator",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "passwordInitiator",
"label": "passwordInitiator",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "authDiscovery",
"label": "authDiscovery",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "username",
"label": "username",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "password",
"label": "password",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "usernameInitiator",
"label": "usernameInitiator",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "passwordInitiator",
"label": "passwordInitiator",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "autoPermissions",
"label": "Automatic Permissions Configuration",
"description": "Automatically set permissions",
"schema": {
"show_if": [
[
"type",
"!=",
"pvc"
]
],
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "chown",
"label": "Run CHOWN",
"description": "It will run CHOWN on the path with the given fsGroup\n",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "chmod",
"label": "Run CHMOD",
"description": "It will run CHMOD on the path with the given value</br>\nFormat should be 3 digits, e.g. 770\n",
"schema": {
"type": "string",
"valid_chars": "[0-9]{3}",
"default": ""
}
},
{
"variable": "recursive",
"label": "Recursive",
"description": "It will run CHOWN and CHMOD recursively\n",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "readOnly",
"label": "Read Only",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "hostPath",
"label": "Host Path",
"description": "Path inside the container the storage is mounted",
"schema": {
"show_if": [
[
"type",
"=",
"hostPath"
]
],
"type": "hostpath"
}
},
{
"variable": "mountPath",
"label": "Mount Path",
"description": "Path inside the container the storage is mounted",
"schema": {
"type": "string",
"default": "",
"required": true,
"valid_chars": "^\\/([a-zA-Z0-9._-]+(\\s?[a-zA-Z0-9._-]+|\\/?))+$"
}
},
{
"variable": "medium",
"label": "EmptyDir Medium",
"schema": {
"show_if": [
[
"type",
"=",
"emptyDir"
]
],
"type": "string",
"default": "",
"enum": [
{
"value": "",
"description": "Default"
},
{
"value": "Memory",
"description": "Memory"
}
]
}
},
{
"variable": "size",
"label": "Size Quotum of Storage",
"schema": {
"show_if": [
[
"type",
"=",
"pvc"
]
],
"type": "string",
"default": "256Gi"
}
},
{
"variable": "storageClass",
"label": "storageClass (Advanced)",
"description": "sets the storageClass to something other than iX default. Only for advanced usecases!",
"schema": {
"show_if": [
[
"type",
"=",
"pvc"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "static",
"label": "Static Fixed PVC Bindings (Experimental)",
"description": "Link a PVC to a specific storage location",
"schema": {
"show_if": [
[
"type",
"=",
"pvc"
]
],
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "mode",
"label": "mode",
"description": "disabled: use normal dynamic PVCs\nsmb: connect to an SMB share\nnfs: connect to an NFS share\n",
"schema": {
"type": "string",
"default": "disabled",
"enum": [
{
"value": "disabled",
"description": "disabled"
},
{
"value": "smb",
"description": "smb"
},
{
"value": "nfs",
"description": "nfs"
}
]
}
},
{
"variable": "server",
"label": "Server",
"description": "server to connect to",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"!=",
"disabled"
]
],
"default": "myserver"
}
},
{
"variable": "share",
"label": "Share",
"description": "share to connect to",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"!=",
"disabled"
]
],
"default": "/myshare"
}
},
{
"variable": "user",
"label": "User",
"description": "connecting user",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"=",
"smb"
]
],
"default": "myuser"
}
},
{
"variable": "domain",
"label": "Domain",
"description": "user domain",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"=",
"smb"
]
],
"default": ""
}
},
{
"variable": "password",
"label": "Password",
"description": "connecting password",
"schema": {
"type": "string",
"show_if": [
[
"mode",
"=",
"smb"
]
],
"default": ""
}
}
]
}
},
{
"variable": "volumeSnapshots",
"label": "Volume Snapshots (Experimental)",
"description": "Add an entry to the list to force creation of a volumeSnapshot of this PVC",
"schema": {
"show_if": [
[
"type",
"=",
"pvc"
]
],
"type": "list",
"default": [],
"items": [
{
"variable": "volumeSnapshotEntry",
"label": "Custom volumeSnapshot",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "WARNING: renaming this, means deletion of the snapshot with the old name!",
"schema": {
"type": "string",
"default": "mysnapshot",
"required": true
}
},
{
"variable": "volumeSnapshotClassName",
"label": "volumeSnapshot Class Name (Advanced)",
"description": "For use with PVCs using a non-default storageClass",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingress",
"label": "",
"group": "Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [
{
"path": "/",
"pathType": "Prefix"
}
],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests (advanced)",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace (optional)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
},
{
"variable": "homepage",
"label": "Homepage",
"description": "Connect ingress with Homepage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "name",
"label": "Name (Optional)",
"description": "Defaults to chart name",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "description",
"label": "Description (Optional)",
"description": "Defaults to chart description",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "icon",
"label": "Icon (Optional)",
"description": "Defaults to chart icon",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "group",
"label": "Group",
"schema": {
"type": "string",
"required": true,
"default": "default",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "widget",
"label": "Widget Settings",
"schema": {
"type": "dict",
"additional_attrs": true,
"show_if": [
[
"enabled",
"=",
true
]
],
"attrs": [
{
"variable": "enabled",
"label": "Enable Widget",
"description": "When disabled all widget annotations are skipped.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "custom",
"label": "Options",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "key",
"label": "API-key (key)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "customkv",
"label": "Custom Options",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "option",
"label": "Option",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "ingressClassName",
"label": "(Advanced/Optional) IngressClass Name",
"schema": {
"type": "string",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": ""
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": [],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your cert-manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Certificate Secret (Advanced)",
"schema": {
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingressList",
"label": "Add Manual Custom Ingresses",
"group": "Ingress",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ingressListEntry",
"label": "Custom Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "ingressClassName",
"label": "IngressClass Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
},
{
"variable": "overrideService",
"label": "Linked Service",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Service Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "port",
"label": "Service Port",
"schema": {
"type": "int"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Secret (Advanced)",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
},
{
"variable": "homepage",
"label": "Homepage",
"description": "Connect ingress with Homepage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "name",
"label": "Name",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "description",
"label": "Description",
"description": "defaults to chart description",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "group",
"label": "Group",
"schema": {
"type": "string",
"required": true,
"default": "default",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "securityContext",
"group": "Security and Permissions",
"label": "Security Context",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "container",
"label": "Container",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "runAsUser",
"label": "runAsUser",
"description": "The UserID of the user running the application",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "runAsGroup",
"label": "runAsGroup",
"description": "The groupID of the user running the application",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "PUID",
"label": "Process User ID - PUID",
"description": "When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps",
"schema": {
"type": "int",
"show_if": [
[
"runAsUser",
"=",
0
]
],
"default": 568
}
},
{
"variable": "UMASK",
"label": "UMASK",
"description": "When supported by the container, this sets the UMASK for the App. Not supported by all Apps",
"schema": {
"type": "string",
"default": "0022"
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "privileged",
"label": "Privileged mode",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "readOnlyRootFilesystem",
"label": "ReadOnly Root Filesystem",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
}
]
}
},
{
"variable": "pod",
"label": "Pod",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "fsGroupChangePolicy",
"label": "When should we take ownership?",
"schema": {
"type": "string",
"default": "OnRootMismatch",
"enum": [
{
"value": "OnRootMismatch",
"description": "OnRootMismatch"
},
{
"value": "Always",
"description": "Always"
}
]
}
},
{
"variable": "supplementalGroups",
"label": "Supplemental Groups",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "supplementalGroupsEntry",
"label": "Supplemental Group",
"schema": {
"type": "int"
}
}
]
}
},
{
"variable": "fsGroup",
"label": "fsGroup",
"description": "The group that should own ALL storage.",
"schema": {
"type": "int",
"default": 568
}
}
]
}
}
]
}
},
{
"variable": "resources",
"group": "Resources and Devices",
"label": "Resource Limits",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "limits",
"label": "Advanced Limit Resource Consumption",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "cpu",
"label": "CPU",
"description": "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "4000m",
"valid_chars": "^(?!^0(\\.0|m|)$)([0-9]+)(\\.[0-9]|m?)$"
}
},
{
"variable": "memory",
"label": "RAM",
"description": "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "8Gi",
"valid_chars": "^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$"
}
},
{
"variable": "intel.com/i915",
"label": "Add Intel i915 GPUs",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "nvidia.com/gpu",
"label": "Add NVIDIA GPUs (Experimental)",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "amd.com/gpu",
"label": "Add AMD GPUs",
"schema": {
"type": "int",
"default": 0
}
}
]
}
},
{
"variable": "requests",
"label": "Minimum Resources Required (request)",
"schema": {
"additional_attrs": true,
"type": "dict",
"hidden": true,
"attrs": [
{
"variable": "cpu",
"label": "CPU",
"description": "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "10m",
"hidden": true,
"valid_chars": "^(?!^0(\\.0|m|)$)([0-9]+)(\\.[0-9]|m?)$"
}
},
{
"variable": "memory",
"label": "RAM",
"description": "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "50Mi",
"hidden": true,
"valid_chars": "^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$"
}
}
]
}
}
]
}
},
{
"variable": "deviceList",
"label": "Mount USB Devices",
"group": "Resources and Devices",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "deviceListEntry",
"label": "Device",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the Storage",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "type",
"label": "(Advanced) Type of Storage",
"description": "Sets the persistence type",
"schema": {
"type": "string",
"default": "device",
"hidden": true
}
},
{
"variable": "readOnly",
"label": "readOnly",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "hostPath",
"label": "Host Device Path",
"description": "Path to the device on the host system",
"schema": {
"type": "path"
}
},
{
"variable": "mountPath",
"label": "Container Device Path",
"description": "Path inside the container the device is mounted",
"schema": {
"type": "string",
"default": "/dev/ttyACM0"
}
}
]
}
}
]
}
},
{
"variable": "scaleGPU",
"label": "GPU Configuration",
"group": "Resources and Devices",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "scaleGPUEntry",
"label": "GPU",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "gpu",
"label": "Select GPU",
"schema": {
"additional_attrs": true,
"type": "dict",
"$ref": [
"definitions/gpuConfiguration"
],
"attrs": []
}
},
{
"variable": "workaround",
"label": "Workaround",
"schema": {
"type": "string",
"default": "workaround",
"hidden": true
}
}
]
}
}
]
}
},
{
"variable": "cnpg",
"group": "Postgresql",
"label": "CloudNative-PG (CNPG)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Postgresql Database",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hibernate",
"label": "Hibernate",
"description": "enable to safely hibernate and shutdown the postgresql cluster",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "mode",
"label": "Mode",
"description": "Cluster mode of operation. Available modes: standalone - default mode. Creates new or updates an existing CNPG cluster. recovery - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup replica - Creates a replica cluster from an existing CNPG cluster. # TODO.",
"schema": {
"type": "string",
"default": "standalone",
"enum": [
{
"value": "standalone",
"description": "standalone"
},
{
"value": "replica",
"description": "replica"
},
{
"value": "recovery",
"description": "recovery"
}
]
}
},
{
"variable": "cluster",
"label": "Cluster Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "instances",
"label": "Instances",
"schema": {
"type": "int",
"default": 1
}
},
{
"variable": "singleNode",
"label": "singleNode",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "storage",
"label": "Storage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "size",
"label": "Size",
"schema": {
"type": "string",
"default": "256Gi"
}
}
]
}
},
{
"variable": "walStorage",
"label": "WAL Storage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "size",
"label": "Size",
"schema": {
"type": "string",
"default": "256Gi"
}
}
]
}
}
]
}
},
{
"variable": "monitoring",
"label": "Monitoring Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enablePodMonitor",
"label": "enablePodMonitor",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "disableDefaultQueries",
"label": "disableDefaultQueries",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "pooler",
"label": "Pooler Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "instances",
"label": "Instances",
"schema": {
"type": "int",
"default": 1
}
},
{
"variable": "createRO",
"label": "Create ReadOnly Instance",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "recovery",
"label": "Recovery Settings (Experimental)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "endpointURL",
"label": "endpointURL",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "method",
"label": "method",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": "object_store"
}
},
{
"variable": "backupName",
"label": "backupName",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "provider",
"label": "provider",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": "s3",
"enum": [
{
"value": "s3",
"description": "S3"
},
{
"value": "azure",
"description": "Azure"
},
{
"value": "google",
"description": "Google"
}
]
}
},
{
"variable": "s3",
"label": "s3",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"s3"
]
],
"attrs": [
{
"variable": "region",
"label": "region",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "bucket",
"label": "bucket",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "accessKey",
"label": "accessKey",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "secretKey",
"label": "secretKey",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "azure",
"label": "azure (EXTREMELY EXPERIMENTAL)",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"azure"
]
],
"attrs": [
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "connectionString",
"label": "connectionString",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageAccount",
"label": "storageAccount",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageKey",
"label": "storageKey",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageSasToken",
"label": "storageSasToken",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "containerName",
"label": "containerName",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "serviceName",
"label": "serviceName",
"schema": {
"type": "string",
"default": "blob"
}
},
{
"variable": "inheritFromAzureAD",
"label": "inheritFromAzureAD",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "google",
"label": "google (EXTREMELY EXPERIMENTAL)",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"google"
]
],
"attrs": [
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "bucket",
"label": "bucket",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "gkeEnvironment",
"label": "gkeEnvironment",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "applicationCredentials",
"label": "applicationCredentials",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "backups",
"label": "Backup Settings (Experimental)",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "endpointURL",
"label": "endpointURL",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "destinationPath",
"label": "destinationPath",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "retentionPolicy",
"label": "retentionPolicy",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": "30d"
}
},
{
"variable": "provider",
"label": "provider",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": "s3",
"enum": [
{
"value": "s3",
"description": "S3"
},
{
"value": "azure",
"description": "Azure"
},
{
"value": "google",
"description": "Google"
}
]
}
},
{
"variable": "s3",
"label": "s3",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"s3"
]
],
"attrs": [
{
"variable": "region",
"label": "region",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "bucket",
"label": "bucket",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "accessKey",
"label": "accessKey",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "secretKey",
"label": "secretKey",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "azure",
"label": "azure (EXTREMELY EXPERIMENTAL)",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"azure"
]
],
"attrs": [
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "connectionString",
"label": "connectionString",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageAccount",
"label": "storageAccount",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "storageKey",
"label": "storageKey",
"schema": {
"type": "string",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": ""
}
},
{
"variable": "storageSasToken",
"label": "storageSasToken",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "containerName",
"label": "containerName",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "serviceName",
"label": "serviceName",
"schema": {
"type": "string",
"default": "blob"
}
},
{
"variable": "inheritFromAzureAD",
"label": "inheritFromAzureAD",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "google",
"label": "google (EXTREMELY EXPERIMENTAL)",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"provider",
"=",
"google"
]
],
"attrs": [
{
"variable": "path",
"label": "path",
"schema": {
"type": "string",
"default": "/"
}
},
{
"variable": "bucket",
"label": "bucket",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "gkeEnvironment",
"label": "gkeEnvironment",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "applicationCredentials",
"label": "applicationCredentials",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "scheduledBackups",
"label": "ScheduledBackups",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "backupschedule",
"label": "BackupSchedule",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "daily-backup",
"required": true
}
},
{
"variable": "schedule",
"label": "schedule",
"schema": {
"type": "string",
"required": true,
"default": "0 0 0 * * *"
}
},
{
"variable": "backupOwnerReference",
"label": "backupOwnerReference",
"schema": {
"type": "string",
"required": true,
"default": "self"
}
},
{
"variable": "immediate",
"label": "immediate",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "suspend",
"label": "suspend",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "manualBackups",
"label": "manualBackups",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "backup",
"label": "Backup",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "networkPolicy",
"group": "Advanced",
"label": "(Advanced) Network Policy",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "netPolicyEntry",
"label": "Network Policy Entry",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "policyType",
"label": "Policy Type",
"schema": {
"type": "string",
"default": "",
"enum": [
{
"value": "",
"description": "Default"
},
{
"value": "ingress",
"description": "Ingress"
},
{
"value": "egress",
"description": "Egress"
},
{
"value": "ingress-egress",
"description": "Ingress and Egress"
}
]
}
},
{
"variable": "egress",
"label": "Egress",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "egressEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "to",
"label": "To",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "toEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "ipBlock",
"label": "IP Block",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "cidr",
"label": "CIDR",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "except",
"label": "Except",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "exceptint",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "namespaceSelector",
"label": "Namespace Selector",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "matchExpressions",
"label": "Match Expressions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "expressionEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string"
}
},
{
"variable": "operator",
"label": "Operator",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "In",
"description": "In"
},
{
"value": "NotIn",
"description": "NotIn"
},
{
"value": "Exists",
"description": "Exists"
},
{
"value": "DoesNotExist",
"description": "DoesNotExist"
}
]
}
},
{
"variable": "values",
"label": "Values",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "value",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "podSelector",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "matchExpressions",
"label": "Match Expressions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "expressionEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string"
}
},
{
"variable": "operator",
"label": "Operator",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "In",
"description": "In"
},
{
"value": "NotIn",
"description": "NotIn"
},
{
"value": "Exists",
"description": "Exists"
},
{
"value": "DoesNotExist",
"description": "DoesNotExist"
}
]
}
},
{
"variable": "values",
"label": "Values",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "value",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ports",
"label": "Ports",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "portsEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Port",
"schema": {
"type": "int"
}
},
{
"variable": "endPort",
"label": "End Port",
"schema": {
"type": "int"
}
},
{
"variable": "protocol",
"label": "Protocol",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "TCP",
"description": "TCP"
},
{
"value": "UDP",
"description": "UDP"
},
{
"value": "SCTP",
"description": "SCTP"
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingress",
"label": "Ingress",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ingressEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "from",
"label": "From",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "fromEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "ipBlock",
"label": "IP Block",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "cidr",
"label": "CIDR",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "except",
"label": "Except",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "exceptint",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "namespaceSelector",
"label": "Namespace Selector",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "matchExpressions",
"label": "Match Expressions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "expressionEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string"
}
},
{
"variable": "operator",
"label": "Operator",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "In",
"description": "In"
},
{
"value": "NotIn",
"description": "NotIn"
},
{
"value": "Exists",
"description": "Exists"
},
{
"value": "DoesNotExist",
"description": "DoesNotExist"
}
]
}
},
{
"variable": "values",
"label": "Values",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "value",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "podSelector",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "matchExpressions",
"label": "Match Expressions",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "expressionEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string"
}
},
{
"variable": "operator",
"label": "Operator",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "In",
"description": "In"
},
{
"value": "NotIn",
"description": "NotIn"
},
{
"value": "Exists",
"description": "Exists"
},
{
"value": "DoesNotExist",
"description": "DoesNotExist"
}
]
}
},
{
"variable": "values",
"label": "Values",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "value",
"label": "",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ports",
"label": "Ports",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "portsEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Port",
"schema": {
"type": "int"
}
},
{
"variable": "endPort",
"label": "End Port",
"schema": {
"type": "int"
}
},
{
"variable": "protocol",
"label": "Protocol",
"schema": {
"type": "string",
"default": "TCP",
"enum": [
{
"value": "TCP",
"description": "TCP"
},
{
"value": "UDP",
"description": "UDP"
},
{
"value": "SCTP",
"description": "SCTP"
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "addons",
"group": "Addons",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "codeserver",
"label": "Codeserver",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "service",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Service Type",
"description": "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer",
"schema": {
"type": "string",
"default": "LoadBalancer",
"enum": [
{
"value": "NodePort",
"description": "Deprecated CHANGE THIS"
},
{
"value": "ClusterIP",
"description": "ClusterIP"
},
{
"value": "LoadBalancer",
"description": "LoadBalancer"
}
]
}
},
{
"variable": "loadBalancerIP",
"label": "LoadBalancer IP",
"description": "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB",
"schema": {
"show_if": [
[
"type",
"=",
"LoadBalancer"
]
],
"type": "string",
"default": ""
}
},
{
"variable": "ports",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "codeserver",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Port",
"schema": {
"type": "int",
"default": 36107
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingress",
"label": "Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [
{
"path": "/",
"pathType": "Prefix"
}
],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests (advanced)",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace (optional)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "ingressClassName",
"label": "(Advanced/Optional) IngressClass Name",
"schema": {
"type": "string",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": ""
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": [],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your cert-manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Certificate Secret (Advanced)",
"schema": {
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"type": "string",
"default": ""
}
},
{
"variable": "scaleCert",
"label": "Use TrueNAS SCALE Certificate (Deprecated)",
"schema": {
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"type": "int",
"$ref": [
"definitions/certificate"
],
"enum": [
{
"value": null,
"description": "No Certificate"
}
],
"default": null,
"null": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "envList",
"label": "Codeserver Environment Variables",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "netshoot",
"label": "Netshoot",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "envList",
"label": "Netshoot Environment Variables",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "vpn",
"label": "VPN",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type",
"schema": {
"type": "string",
"default": "disabled",
"enum": [
{
"value": "disabled",
"description": "disabled"
},
{
"value": "gluetun",
"description": "Gluetun"
},
{
"value": "tailscale",
"description": "Tailscale"
},
{
"value": "openvpn",
"description": "OpenVPN (Deprecated)"
},
{
"value": "wireguard",
"description": "Wireguard (Deprecated)"
}
]
}
},
{
"variable": "openvpn",
"label": "OpenVPN Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"type",
"=",
"openvpn"
]
],
"attrs": [
{
"variable": "username",
"label": "Authentication Username (Optional)",
"description": "Authentication Username, Optional",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "password",
"label": "Authentication Password",
"description": "Authentication Credentials",
"schema": {
"type": "string",
"show_if": [
[
"username",
"!=",
""
]
],
"default": "",
"required": true
}
}
]
}
},
{
"variable": "tailscale",
"label": "Tailscale Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"show_if": [
[
"type",
"=",
"tailscale"
]
],
"attrs": [
{
"variable": "authkey",
"label": "Authentication Key",
"description": "Provide an auth key to automatically authenticate the node as your user account.",
"schema": {
"type": "string",
"private": true,
"default": ""
}
},
{
"variable": "auth_once",
"label": "Auth Once",
"description": "Only attempt to log in if not already logged in.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "accept_dns",
"label": "Accept DNS",
"description": "Accept DNS configuration from the admin console.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "userspace",
"label": "Userspace",
"description": "Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "routes",
"label": "Routes",
"description": "Expose physical subnet routes to your entire Tailscale network.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "dest_ip",
"label": "Destination IP",
"description": "Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "sock5_server",
"label": "Sock5 Server",
"description": "The address on which to listen for SOCKS5 proxying into the tailscale net.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "outbound_http_proxy_listen",
"label": "Outbound HTTP Proxy Listen",
"description": "The address on which to listen for HTTP proxying into the tailscale net.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "extra_args",
"label": "Extra Args",
"description": "Extra Args",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "daemon_extra_args",
"label": "Tailscale Daemon Extra Args",
"description": "Tailscale Daemon Extra Args",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "killSwitch",
"label": "Enable Killswitch",
"schema": {
"type": "boolean",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": true
}
},
{
"variable": "excludedNetworks_IPv4",
"label": "Killswitch Excluded IPv4 networks",
"description": "List of Killswitch Excluded IPv4 Addresses",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "networkv4",
"label": "IPv4 Network",
"schema": {
"type": "string",
"required": true
}
}
]
}
},
{
"variable": "excludedNetworks_IPv6",
"label": "Killswitch Excluded IPv6 networks",
"description": "List of Killswitch Excluded IPv6 Addresses",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "networkv6",
"label": "IPv6 Network",
"schema": {
"type": "string",
"required": true
}
}
]
}
},
{
"variable": "configFile",
"label": "VPN Config File Location",
"schema": {
"type": "string",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": ""
}
},
{
"variable": "envList",
"label": "VPN Environment Variables",
"schema": {
"type": "list",
"show_if": [
[
"type",
"!=",
"disabled"
]
],
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"required": true,
"max_length": 10240
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "docs",
"group": "Documentation",
"label": "Please read the documentation at https://truecharts.org",
"description": "Please read the documentation at <br /><a href=\"https://truecharts.org\">https://truecharts.org</a>",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "confirmDocs",
"label": "I have checked the documentation",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "donateNag",
"group": "Documentation",
"label": "Please consider supporting TrueCharts, see https://truecharts.org/sponsor",
"description": "Please consider supporting TrueCharts, see <br /><a href=\"https://truecharts.org/sponsor\">https://truecharts.org/sponsor</a>",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "confirmDonate",
"label": "I have considered donating",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
}
]
}
}
]
},
"app_readme": "<p>Open source alternative front-end to YouTube.</p>\n<p>This App is supplied by TrueCharts, for more information visit the manual: <a href=\"https://truecharts.org/charts/stable/invidious\">https://truecharts.org/charts/stable/invidious</a></p>\n<hr />\n<p>TrueCharts can only exist due to the incredible effort of our staff.\nPlease consider making a <a href=\"https://truecharts.org/sponsor\">donation</a> or contributing back to the project any way you can!</p>",
"detailed_readme": "<hr />\n<h2>title: README</h2>\n<h2>General Info</h2>\n<p>TrueCharts can be installed as both <em>normal</em> Helm Charts or as Apps on TrueNAS SCALE.\nHowever only installations using the TrueNAS SCALE Apps system are supported.</p>\n<p>For more information about this App, please check the docs on the TrueCharts <a href=\"https://truecharts.org/charts/stable/invidious\">website</a></p>\n<p><strong>This chart is not maintained by the upstream project and any issues with the chart should be raised <a href=\"https://github.com/truecharts/charts/issues/new/choose\">here</a></strong></p>\n<h2>Support</h2>\n<ul>\n<li>Please check our <a href=\"https://truecharts.org/manual/SCALE/guides/scale-intro\">quick-start guides for TrueNAS SCALE</a>.</li>\n<li>See the <a href=\"https://truecharts.org\">Website</a></li>\n<li>Check our <a href=\"https://discord.gg/tVsPTHWTtr\">Discord</a></li>\n<li>Open a <a href=\"https://github.com/truecharts/charts/issues/new/choose\">issue</a></li>\n</ul>\n<hr />\n<h2>Sponsor TrueCharts</h2>\n<p>TrueCharts can only exist due to the incredible effort of our staff.\nPlease consider making a <a href=\"https://truecharts.org/sponsor\">donation</a> or contributing back to the project any way you can!</p>\n<p><em>All Rights Reserved - The TrueCharts Project</em></p>",
"changelog": null
}
}