diff --git a/stable/invidious/5.0.0/CHANGELOG.md b/stable/invidious/5.0.0/CHANGELOG.md new file mode 100644 index 00000000000..684e428c053 --- /dev/null +++ b/stable/invidious/5.0.0/CHANGELOG.md @@ -0,0 +1,13 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [invidious-5.0.0](https://github.com/truecharts/charts/compare/invidious-4.0.0...invidious-5.0.0) (2023-06-03) + +### Feat + +- return to stable ([#9341](https://github.com/truecharts/charts/issues/9341)) + + \ No newline at end of file diff --git a/stable/invidious/5.0.0/Chart.yaml b/stable/invidious/5.0.0/Chart.yaml new file mode 100644 index 00000000000..b4986331af0 --- /dev/null +++ b/stable/invidious/5.0.0/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: "latest" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 12.10.4 +description: Open source alternative front-end to YouTube. +home: https://truecharts.org/charts/incubator/invidious +icon: https://truecharts.org/img/hotlink-ok/chart-icons/invidious.png +keywords: + - invidious + - youtube + - media +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: invidious +sources: + - https://github.com/truecharts/charts/tree/master/charts/incubator/invidious + - https://github.com/iv-org/invidious + - https://docs.invidious.io/installation/#docker +version: 5.0.0 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/invidious/5.0.0/LICENSE b/stable/invidious/5.0.0/LICENSE new file mode 100644 index 00000000000..33a8cbb23f0 --- /dev/null +++ b/stable/invidious/5.0.0/LICENSE @@ -0,0 +1,106 @@ +Business Source License 1.1 + +Parameters + +Licensor: The TrueCharts Project, it's owner and it's contributors +Licensed Work: The TrueCharts "Blocky" Helm Chart +Additional Use Grant: You may use the licensed work in production, as long + as it is directly sourced from a TrueCharts provided + official repository, catalog or source. You may also make private + modification to the directly sourced licenced work, + when used in production. + + The following cases are, due to their nature, also + defined as 'production use' and explicitly prohibited: + - Bundling, including or displaying the licensed work + with(in) another work intended for production use, + with the apparent intend of facilitating and/or + promoting production use by third parties in + violation of this license. + +Change Date: 2050-01-01 + +Change License: 3-clause BSD license + +For information about alternative licensing arrangements for the Software, +please contact: legal@truecharts.org + +Notice + +The Business Source License (this document, or the “License”) is not an Open +Source license. However, the Licensed Work will eventually be made available +under an Open Source License, as stated in this License. + +License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved. +“Business Source License” is a trademark of MariaDB Corporation Ab. + +----------------------------------------------------------------------------- + +Business Source License 1.1 + +Terms + +The Licensor hereby grants you the right to copy, modify, create derivative +works, redistribute, and make non-production use of the Licensed Work. The +Licensor may make an Additional Use Grant, above, permitting limited +production use. + +Effective on the Change Date, or the fourth anniversary of the first publicly +available distribution of a specific version of the Licensed Work under this +License, whichever comes first, the Licensor hereby grants you rights under +the terms of the Change License, and the rights granted in the paragraph +above terminate. + +If your use of the Licensed Work does not comply with the requirements +currently in effect as described in this License, you must purchase a +commercial license from the Licensor, its affiliated entities, or authorized +resellers, or you must refrain from using the Licensed Work. + +All copies of the original and modified Licensed Work, and derivative works +of the Licensed Work, are subject to this License. This License applies +separately for each version of the Licensed Work and the Change Date may vary +for each version of the Licensed Work released by Licensor. + +You must conspicuously display this License on each original or modified copy +of the Licensed Work. If you receive the Licensed Work in original or +modified form from a third party, the terms and conditions set forth in this +License apply to your use of that work. + +Any use of the Licensed Work in violation of this License will automatically +terminate your rights under this License for the current and all other +versions of the Licensed Work. + +This License does not grant you any right in any trademark or logo of +Licensor or its affiliates (provided that you may use a trademark or logo of +Licensor as expressly required by this License). + +TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +TITLE. + +MariaDB hereby grants you permission to use this License’s text to license +your works, and to refer to it using the trademark “Business Source License”, +as long as you comply with the Covenants of Licensor below. + +Covenants of Licensor + +In consideration of the right to use this License’s text and the “Business +Source License” name and trademark, Licensor covenants to MariaDB, and to all +other recipients of the licensed work to be provided by Licensor: + +1. To specify as the Change License the GPL Version 2.0 or any later version, + or a license that is compatible with GPL Version 2.0 or a later version, + where “compatible” means that software provided under the Change License can + be included in a program with software provided under GPL Version 2.0 or a + later version. Licensor may specify additional Change Licenses without + limitation. + +2. To either: (a) specify an additional grant of rights to use that does not + impose any additional restriction on the right granted in this License, as + the Additional Use Grant; or (b) insert the text “None”. + +3. To specify a Change Date. + +4. Not to modify this License in any other way. diff --git a/stable/invidious/5.0.0/README.md b/stable/invidious/5.0.0/README.md new file mode 100644 index 00000000000..63d5d2c8fdc --- /dev/null +++ b/stable/invidious/5.0.0/README.md @@ -0,0 +1,27 @@ +# README + +## General Info + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/incubator/) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +*All Rights Reserved - The TrueCharts Project* diff --git a/stable/invidious/5.0.0/app-changelog.md b/stable/invidious/5.0.0/app-changelog.md new file mode 100644 index 00000000000..de8cba5b6ed --- /dev/null +++ b/stable/invidious/5.0.0/app-changelog.md @@ -0,0 +1,9 @@ + + +## [invidious-5.0.0](https://github.com/truecharts/charts/compare/invidious-4.0.0...invidious-5.0.0) (2023-06-03) + +### Feat + +- return to stable ([#9341](https://github.com/truecharts/charts/issues/9341)) + + \ No newline at end of file diff --git a/stable/invidious/5.0.0/app-readme.md b/stable/invidious/5.0.0/app-readme.md new file mode 100644 index 00000000000..b24a454cfd1 --- /dev/null +++ b/stable/invidious/5.0.0/app-readme.md @@ -0,0 +1,8 @@ +Open source alternative front-end to YouTube. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/invidious](https://truecharts.org/charts/stable/invidious) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! diff --git a/stable/invidious/5.0.0/charts/common-12.10.4.tgz b/stable/invidious/5.0.0/charts/common-12.10.4.tgz new file mode 100644 index 00000000000..66771bb2ec5 Binary files /dev/null and b/stable/invidious/5.0.0/charts/common-12.10.4.tgz differ diff --git a/stable/invidious/5.0.0/ix_values.yaml b/stable/invidious/5.0.0/ix_values.yaml new file mode 100644 index 00000000000..e2aa557cb99 --- /dev/null +++ b/stable/invidious/5.0.0/ix_values.yaml @@ -0,0 +1,177 @@ +image: + repository: tccr.io/truecharts/invidious + pullPolicy: IfNotPresent + tag: latest@sha256:3bb9e44e7d69baf91728c0a88115ef5fdb3adc91432b851e11e4d0e78bbe6e7a + +securityContext: + container: + readOnlyRootFilesystem: false + runAsNonRoot: false + runAsGroup: 0 + runAsUser: 0 + +service: + main: + ports: + main: + port: 10594 + protocol: http + +workload: + main: + podSpec: + initContainers: + dbseed: + type: install + enabled: true + imageSelector: postgresClientImage + env: + POSTGRES_DB: + secretKeyRef: + name: cnpg-main-urls + key: std + POSTGRES_USER: "{{ .Values.cnpg.main.user }}" + # PG* variables are for the psql client + PGPORT: "5432" + PGPASSWORD: + secretKeyRef: + name: cnpg-main-user + key: password + command: ["sh", "-c"] + args: + - | + echo "Starting DB Seed..." + mkdir -p invidious && cd invidious + + echo "Fetching seed files..." + git init && \ + git remote add invidious https://github.com/iv-org/invidious.git && \ + git fetch invidious && \ + # Fetch config and docker dirs + git checkout invidious/master -- docker config + + # Move config into docker dir + echo "Preparing directory structure..." + mv -fv config docker + + echo "Performing the seed..." + cd docker + ./init-invidious-db.sh + containers: + main: + probes: + liveness: + type: http + readiness: + type: http + startup: + type: http + envFrom: + - configMapRef: + name: invidious-config + +invidious: + network: + inbound: + external_port: 10594 + https_only: false + domain: "" + hsts: true + outbound: + disable_proxy: false + pool_size: 100 + use_quic: false + cookies: [] + force_resolve: "ipv4" + + logging: + output: STDOUT + log_level: "Info" + + features: + popular_enabled: true + statistics_enabled: false + + users_accounts: + registration_enabled: true + login_enabled: true + captcha_enabled: true + admins: [] + + background_jobs: + channel_threads: 1 + channel_refresh_interval: 30m + full_refresh: false + feed_threads: 1 + decrypt_polling: false + + jobs: + clear_expired_items: + enable: true + refresh_channels: + enable: true + refresh_feeds: + enable: true + + captcha: + captcha_api_url: "https://api.anti-captcha.com" + captcha_key: "" + + miscellaneous: + banner: "" + use_pubsub_feeds: false + hmac_key: "" + dmca_content: [] + cache_annotations: false + playlist_length_limit: 500 + + default_user_preferences: + internationalization: + locale: en-US + region: US + captions: [] + interface: + dark_mode: dark + thin_mode: false + feed_menu: [] + default_home: Popular + max_results: 40 + annotations: false + annotations_subscribed: false + comments: [] + player_style: invidious + related_videos: true + video_player_behavior: + autoplay: false + continue: false + continue_autoplay: true + listen: false + video_loop: false + video_playback_settings: + quality: hd720 + quality_dash: auto + speed: 1.00 + volume: 100 + vr_mode: true + subscription_feed: + latest_only: false + notifications_only: false + unseen_only: false + sort: published + miscellaneous: + local: false + show_nick: true + automatic_instance_redirect: false + extend_desc: false + +cnpg: + main: + enabled: true + database: invidious + # DB User cannot be changed + # hardcoded from upstream + username: kemal + +portal: + open: + enabled: true diff --git a/stable/invidious/5.0.0/questions.yaml b/stable/invidious/5.0.0/questions.yaml new file mode 100644 index 00000000000..5b627f3eb07 --- /dev/null +++ b/stable/invidious/5.0.0/questions.yaml @@ -0,0 +1,3052 @@ +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: 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: 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: hmac_key + label: HMAC Key + description: HMAC signing key used for CSRF tokens and pubsub subscriptions verification. + schema: + type: string + private: true + default: "" + - 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ål + description: Norwegian Bokmål + - 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° 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: "Etc/UTC" + $ref: + - "definitions/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: 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: + type: dict + $ref: + - "normalize/interfaceConfiguration" + attrs: + - variable: hostInterface + description: Please Specify Host Interface + label: Host Interface + schema: + type: string + required: true + $ref: + - "definitions/interface" + - variable: ipam + description: Define how IP Address will be managed + label: IP Address Management + schema: + 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: [] + 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: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + 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 + show_subquestions_if: true + subquestions: + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: secretName + label: Use Custom 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: service + 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: clusterIssuer + label: clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + show_if: [["clusterIssuer", "=", ""]] + 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: clusterIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["clusterIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["clusterIssuer", "=", ""]] + default: "" + - variable: entrypoint + label: Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: 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: + # Settings from questions.yaml get appended here on a per-app basis + - 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 + # Settings from questions.yaml get appended here on a per-app basis + - 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 + # Settings from questions.yaml get appended here on a per-app basis + - 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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - 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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true +# - variable: horizontalPodAutoscaler +# group: Advanced +# label: (Advanced) Horizontal Pod Autoscaler +# schema: +# type: list +# default: [] +# items: +# - variable: hpaEntry +# label: HPA 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: target +# label: Target +# description: Deployment name, Defaults to Main Deployment +# schema: +# type: string +# default: "" +# - variable: minReplicas +# label: Minimum Replicas +# schema: +# type: int +# default: 1 +# - variable: maxReplicas +# label: Maximum Replicas +# schema: +# type: int +# default: 5 +# - variable: targetCPUUtilizationPercentage +# label: Target CPU Utilization Percentage +# schema: +# type: int +# default: 80 +# - variable: targetMemoryUtilizationPercentage +# label: Target Memory Utilization Percentage +# schema: +# type: int +# default: 80 + - 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: 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: + 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: + 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 + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + 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 +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/stable/invidious/5.0.0/templates/_config.tpl b/stable/invidious/5.0.0/templates/_config.tpl new file mode 100644 index 00000000000..77632e1fe14 --- /dev/null +++ b/stable/invidious/5.0.0/templates/_config.tpl @@ -0,0 +1,175 @@ +{{/* Define the configmap */}} +{{- define "invidious.config" -}} + +{{- $vNet := .Values.invidious.network }} +{{- $vLog := .Values.invidious.logging }} +{{- $vFeat := .Values.invidious.features }} +{{- $vUserAcc := .Values.invidious.users_accounts }} +{{- $vBgJobs := .Values.invidious.background_jobs }} +{{- $vJobs := .Values.invidious.jobs }} +{{- $vCaptca := .Values.invidious.captcha }} +{{- $vMisc := .Values.invidious.miscellaneous }} +{{- $vLoc := .Values.invidious.default_user_preferences.internationalization }} +{{- $vUI := .Values.invidious.default_user_preferences.interface }} +{{- $vVidBeh := .Values.invidious.default_user_preferences.video_player_behavior }} +{{- $vVidPlay := .Values.invidious.default_user_preferences.video_playback_settings }} +{{- $vSubFeed := .Values.invidious.default_user_preferences.subscription_feed }} +{{- $vUserMisc := .Values.invidious.default_user_preferences.miscellaneous }} +enabled: true +data: + INVIDIOUS_CONFIG: | + # Database + check_tables: true + db: + user: {{ .Values.cnpg.main.user }} + dbname: {{ .Values.cnpg.main.database }} + password: {{ .Values.cnpg.main.creds.password }} + host: {{ .Values.cnpg.main.creds.host }} + port: 5432 + + # Network + host_binding: 0.0.0.0 + port: {{ .Values.service.main.ports.main.port }} + external_port: {{ $vNet.inbound.external_port }} + https_only: {{ $vNet.inbound.https_only }} + domain: {{ $vNet.inbound.domain }} + hsts: {{ $vNet.inbound.hsts }} + disable_proxy: {{ $vNet.outbound.disable_proxy }} + pool_size: {{ $vNet.outbound.pool_size }} + use_quic: {{ $vNet.outbound.use_quic }} + cookies: {{ join "; " $vNet.outbound.cookies }} + force_resolve: {{ $vNet.outbound.force_resolve }} + + # Logging + output: {{ $vLog.output }} + log_level: {{ $vLog.log_level }} + + # Features + popular_enabled: {{ $vFeat.popular_enabled }} + statistics_enabled: {{ $vFeat.statistics_enabled }} + + # Users and Accounts + registration_enabled: {{ $vUserAcc.registration_enabled }} + login_enabled: {{ $vUserAcc.login_enabled }} + captcha_enabled: {{ $vUserAcc.captcha_enabled }} + {{- if $vUserAcc.admins }} + admins: + {{- range $vUserAcc.admins }} + - {{ . }} + {{- end }} + {{- else }} + admins: [""] + {{- end }} + + # Background Jobs + channel_threads: {{ $vBgJobs.channel_threads }} + channel_refresh_interval: {{ $vBgJobs.channel_refresh_interval }} + full_refresh: {{ $vBgJobs.full_refresh }} + feed_threads: {{ $vBgJobs.feed_threads }} + decrypt_polling: {{ $vBgJobs.decrypt_polling }} + + # Jobs + jobs: + clear_expired_items: + enable: {{ $vJobs.clear_expired_items.enable }} + refresh_channels: + enable: {{ $vJobs.refresh_channels.enable }} + refresh_feeds: + enable: {{ $vJobs.refresh_feeds.enable }} + + # Captcha + captcha_api_url: {{ $vCaptca.captca_api_url }} + captcha_key: {{ $vCaptca.captca_key }} + + # Miscellaneaous + banner: {{ $vMisc.banner }} + use_pubsub_feeds: {{ $vMisc.use_pubsub_feeds }} + hmac_key: {{ $vMisc.hmac_key }} + {{- if $vMisc.dmca_content }} + dmca_content: + {{- range $vMisc.dmca_content }} + - {{ . }} + {{- end }} + {{- else }} + dmca_content: [""] + {{- end }} + cache_annotations: {{ $vMisc.cache_annotations }} + playlist_length_limit: {{ $vMisc.playlist_length_limit }} + modified_source_code_url: "" + + # Default User Preferences + default_user_preferences: + + # Internationalization + locale: {{ $vLoc.locale }} + region: {{ $vLoc.region }} + {{- with $vLoc.captions -}} + {{- if ne (len .) 3 -}} + {{- fail "Exactly 3 entries are required for Captions" -}} + {{- end }} + captions: + {{- range $c := . }} + - {{ $c }} + {{- end -}} + {{- else }} + captions: ["","",""] + {{- end }} + + # Interface + dark_mode: {{ $vUI.dark_mode }} + thin_mode: {{ $vUI.thin_mode }} + {{- with $vUI.feed_menu }} + {{- if gt (len . ) 4 -}} + {{- fail "Max 4 Feed menu items are accepted" -}} + {{- end }} + feed_menu: + {{- range $f := . }} + - {{ $f }} + {{- end -}} + {{- else }} + feed_menu: ["Popular", "Trending", "Subscriptions", "Playlists"] + {{- end }} + default_home: {{ $vUI.default_home }} + max_results: {{ $vUI.max_results }} + annotations: {{ $vUI.annotations }} + annotations_subscribed: {{ $vUI.annotations_subscribed }} + {{- with $vUI.comments }} + {{- if ne (len .) 2 -}} + {{- fail "Exactly 2 entries are required for comments" -}} + {{- end }} + comments: + {{- range $c := . }} + - {{ $c }} + {{- end }} + {{- else }} + comments: ["youtube", ""] + {{- end }} + player_style: {{ $vUI.player_style }} + related_videos: {{ $vUI.related_videos }} + + # Video Player Behaviour + autoplay: {{ $vVidBeh.autoplay }} + continue: {{ $vVidBeh.continue }} + continue_autoplay: {{ $vVidBeh.continue_autoplay }} + listen: {{ $vVidBeh.listen }} + video_loop: {{ $vVidBeh.video_loop }} + + # Video Playback Settigns + quality: {{ $vVidPlay.quality }} + quality_dash: {{ $vVidPlay.quality_dash }} + speed: {{ printf "%.2f" ($vVidPlay.speed | float64) }} + volume: {{ $vVidPlay.volume }} + vr_mode: {{ $vVidPlay.vr_mode }} + + # Subscription Feed + latest_only: {{ $vSubFeed.latest_only }} + notifications_only: {{ $vSubFeed.notifications_only }} + unseen_only: {{ $vSubFeed.unseen_only }} + sort: {{ $vSubFeed.sort }} + + # Miscellaneous + local: {{ $vUserMisc.local }} + show_nick: {{ $vUserMisc.show_nick }} + automatic_instance_redirect: {{ $vUserMisc.automatic_instance_redirect }} + extend_desc: {{ $vUserMisc.extend_desc }} +{{- end -}} diff --git a/stable/invidious/5.0.0/templates/common.yaml b/stable/invidious/5.0.0/templates/common.yaml new file mode 100644 index 00000000000..572b59322e4 --- /dev/null +++ b/stable/invidious/5.0.0/templates/common.yaml @@ -0,0 +1,11 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . }} + +{{/* Render configmap for invidious */}} +{{- $configmapFile := include "invidious.config" . | fromYaml -}} +{{- if $configmapFile -}} + {{- $_ := set .Values.configmap "invidious-config" $configmapFile -}} +{{- end -}} + +{{/* Render the templates */}} +{{ include "tc.v1.common.loader.apply" . }} diff --git a/stable/invidious/5.0.0/values.yaml b/stable/invidious/5.0.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/invidious/item.yaml b/stable/invidious/item.yaml new file mode 100644 index 00000000000..16f09a264c1 --- /dev/null +++ b/stable/invidious/item.yaml @@ -0,0 +1,4 @@ +icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/invidious.png +categories: +- media +