mirror of
https://github.com/MAGICGrants/truenas-apps.git
synced 2026-01-08 04:03:51 -05:00
638 lines
25 KiB
YAML
638 lines
25 KiB
YAML
groups:
|
|
- name: Invidious Configuration
|
|
description: Configure Invidious
|
|
- name: Network Configuration
|
|
description: Configure Network for Invidious
|
|
- name: Storage Configuration
|
|
description: Configure Storage for Invidious
|
|
- name: Labels Configuration
|
|
description: Configure Labels for Invidious
|
|
- name: Resources Configuration
|
|
description: Configure Resources for Invidious
|
|
|
|
questions:
|
|
- variable: invidious
|
|
label: ""
|
|
group: Invidious Configuration
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: postgres_image_selector
|
|
label: Postgres Image (CAUTION)
|
|
description: |
|
|
If you are changing this after the postgres directory has been initialized,</br>
|
|
STOP! and make sure you have a backup of your data.</br>
|
|
Changing this will trigger an one way database upgrade.</br>
|
|
You can only select newer versions of postgres.</br>
|
|
Selecting an older version will refuse to start.</br>
|
|
If something goes wrong, you will have to restore from backup.
|
|
schema:
|
|
type: string
|
|
default: postgres_18_image
|
|
required: true
|
|
enum:
|
|
- value: postgres_15_image
|
|
description: Postgres 15 (Deprecated)
|
|
- value: postgres_17_image
|
|
description: Postgres 17
|
|
- value: postgres_18_image
|
|
description: Postgres 18
|
|
- variable: db_password
|
|
label: Database Password
|
|
description: The password for Invidious.
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
private: true
|
|
- variable: hmac_secret
|
|
label: HMAC Secret
|
|
description: The HMAC secret for Invidious.
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
private: true
|
|
- variable: companion_key
|
|
label: Companion Key
|
|
description: The key for Invidious Companion.
|
|
schema:
|
|
type: string
|
|
min_length: 16
|
|
max_length: 16
|
|
valid_chars: "^[a-zA-Z0-9]+$"
|
|
valid_chars_error: Companion key can only contain alphanumeric characters (a-z, A-Z, 0-9)
|
|
default: ""
|
|
required: true
|
|
private: true
|
|
- variable: admins
|
|
label: Admins
|
|
description: List of usernames that will be granted administrator rights.
|
|
schema:
|
|
type: list
|
|
default: []
|
|
items:
|
|
- variable: admin
|
|
label: Admin
|
|
schema:
|
|
type: string
|
|
required: true
|
|
- variable: registration_enabled
|
|
label: Registration Enabled
|
|
description: Enable registration for Invidious.
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
- variable: login_enabled
|
|
label: Login Enabled
|
|
description: Enable login for Invidious.
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
- variable: captcha_enabled
|
|
label: Captcha Enabled
|
|
description: Enable captcha for Invidious.
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
- variable: additional_envs
|
|
label: Additional Environment Variables
|
|
schema:
|
|
type: list
|
|
default: []
|
|
items:
|
|
- variable: env
|
|
label: Environment Variable
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: name
|
|
label: Name
|
|
schema:
|
|
type: string
|
|
required: true
|
|
- variable: value
|
|
label: Value
|
|
schema:
|
|
type: string
|
|
|
|
- variable: network
|
|
label: ""
|
|
group: Network Configuration
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: web_port
|
|
label: WebUI Port
|
|
description: The port for Invidious WebUI
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: bind_mode
|
|
label: Port Bind Mode
|
|
description: |
|
|
The port bind mode.</br>
|
|
- Publish: The port will be published on the host for external access.</br>
|
|
- Expose: The port will be exposed for inter-container communication.</br>
|
|
- None: The port will not be exposed or published.</br>
|
|
Note: If the Dockerfile defines an EXPOSE directive,
|
|
the port will still be exposed for inter-container communication regardless of this setting.
|
|
schema:
|
|
type: string
|
|
default: "published"
|
|
enum:
|
|
- value: "published"
|
|
description: Publish port on the host for external access
|
|
- value: "exposed"
|
|
description: Expose port for inter-container communication
|
|
- value: ""
|
|
description: None
|
|
- variable: port_number
|
|
label: Port Number
|
|
schema:
|
|
type: int
|
|
default: 31008
|
|
min: 1
|
|
max: 65535
|
|
required: true
|
|
- variable: host_ips
|
|
label: Host IPs
|
|
description: IPs on the host to bind this port
|
|
schema:
|
|
type: list
|
|
show_if: [["bind_mode", "=", "published"]]
|
|
default: []
|
|
items:
|
|
- variable: host_ip
|
|
label: Host IP
|
|
schema:
|
|
type: string
|
|
required: true
|
|
$ref:
|
|
- definitions/node_bind_ip
|
|
|
|
- variable: storage
|
|
label: ""
|
|
group: Storage Configuration
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: config
|
|
label: Config Storage
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: type
|
|
label: Type
|
|
description: |
|
|
ixVolume: Is dataset created automatically by the system.</br>
|
|
Host Path: Is a path that already exists on the system.
|
|
schema:
|
|
type: string
|
|
required: true
|
|
default: "ix_volume"
|
|
enum:
|
|
- value: "host_path"
|
|
description: Host Path (Path that already exists on the system)
|
|
- value: "ix_volume"
|
|
description: ixVolume (Dataset created automatically by the system)
|
|
- variable: ix_volume_config
|
|
label: ixVolume Configuration
|
|
description: The configuration for the ixVolume dataset.
|
|
schema:
|
|
type: dict
|
|
show_if: [["type", "=", "ix_volume"]]
|
|
$ref:
|
|
- "normalize/ix_volume"
|
|
attrs:
|
|
- variable: acl_enable
|
|
label: Enable ACL
|
|
description: Enable ACL for the storage.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: dataset_name
|
|
label: Dataset Name
|
|
description: The name of the dataset to use for storage.
|
|
schema:
|
|
type: string
|
|
required: true
|
|
hidden: true
|
|
default: "config"
|
|
- variable: acl_entries
|
|
label: ACL Configuration
|
|
schema:
|
|
type: dict
|
|
show_if: [["acl_enable", "=", true]]
|
|
attrs: []
|
|
- variable: host_path_config
|
|
label: Host Path Configuration
|
|
schema:
|
|
type: dict
|
|
show_if: [["type", "=", "host_path"]]
|
|
attrs:
|
|
- variable: acl_enable
|
|
label: Enable ACL
|
|
description: Enable ACL for the storage.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: acl
|
|
label: ACL Configuration
|
|
schema:
|
|
type: dict
|
|
show_if: [["acl_enable", "=", true]]
|
|
attrs: []
|
|
$ref:
|
|
- "normalize/acl"
|
|
- variable: path
|
|
label: Host Path
|
|
description: The host path to use for storage.
|
|
schema:
|
|
type: hostpath
|
|
show_if: [["acl_enable", "=", false]]
|
|
required: true
|
|
- variable: companion_cache
|
|
label: Companion Cache Storage
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: type
|
|
label: Type
|
|
description: |
|
|
ixVolume: Is dataset created automatically by the system.</br>
|
|
Host Path: Is a path that already exists on the system.
|
|
schema:
|
|
type: string
|
|
required: true
|
|
default: "ix_volume"
|
|
enum:
|
|
- value: "host_path"
|
|
description: Host Path (Path that already exists on the system)
|
|
- value: "ix_volume"
|
|
description: ixVolume (Dataset created automatically by the system)
|
|
- variable: ix_volume_config
|
|
label: ixVolume Configuration
|
|
description: The configuration for the ixVolume dataset.
|
|
schema:
|
|
type: dict
|
|
show_if: [["type", "=", "ix_volume"]]
|
|
$ref:
|
|
- "normalize/ix_volume"
|
|
attrs:
|
|
- variable: acl_enable
|
|
label: Enable ACL
|
|
description: Enable ACL for the storage.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: dataset_name
|
|
label: Dataset Name
|
|
description: The name of the dataset to use for storage.
|
|
schema:
|
|
type: string
|
|
required: true
|
|
hidden: true
|
|
default: "companion_cache"
|
|
- variable: acl_entries
|
|
label: ACL Configuration
|
|
schema:
|
|
type: dict
|
|
show_if: [["acl_enable", "=", true]]
|
|
attrs: []
|
|
- variable: host_path_config
|
|
label: Host Path Configuration
|
|
schema:
|
|
type: dict
|
|
show_if: [["type", "=", "host_path"]]
|
|
attrs:
|
|
- variable: acl_enable
|
|
label: Enable ACL
|
|
description: Enable ACL for the storage.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: acl
|
|
label: ACL Configuration
|
|
schema:
|
|
type: dict
|
|
show_if: [["acl_enable", "=", true]]
|
|
attrs: []
|
|
$ref:
|
|
- "normalize/acl"
|
|
- variable: path
|
|
label: Host Path
|
|
description: The host path to use for storage.
|
|
schema:
|
|
type: hostpath
|
|
show_if: [["acl_enable", "=", false]]
|
|
required: true
|
|
- variable: postgres_data
|
|
label: Postgres Data Storage
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: type
|
|
label: Type
|
|
description: |
|
|
ixVolume: Is dataset created automatically by the system.</br>
|
|
Host Path: Is a path that already exists on the system.
|
|
schema:
|
|
type: string
|
|
required: true
|
|
default: "ix_volume"
|
|
enum:
|
|
- value: "host_path"
|
|
description: Host Path (Path that already exists on the system)
|
|
- value: "ix_volume"
|
|
description: ixVolume (Dataset created automatically by the system)
|
|
- variable: ix_volume_config
|
|
label: ixVolume Configuration
|
|
description: The configuration for the ixVolume dataset.
|
|
schema:
|
|
type: dict
|
|
show_if: [["type", "=", "ix_volume"]]
|
|
$ref:
|
|
- "normalize/ix_volume"
|
|
attrs:
|
|
- variable: acl_enable
|
|
label: Enable ACL
|
|
description: Enable ACL for the storage.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: dataset_name
|
|
label: Dataset Name
|
|
description: The name of the dataset to use for storage.
|
|
schema:
|
|
type: string
|
|
required: true
|
|
hidden: true
|
|
default: "postgres_data"
|
|
- variable: acl_entries
|
|
label: ACL Configuration
|
|
schema:
|
|
type: dict
|
|
show_if: [["acl_enable", "=", true]]
|
|
attrs: []
|
|
- variable: host_path_config
|
|
label: Host Path Configuration
|
|
schema:
|
|
type: dict
|
|
show_if: [["type", "=", "host_path"]]
|
|
attrs:
|
|
- variable: acl_enable
|
|
label: Enable ACL
|
|
description: Enable ACL for the storage.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: acl
|
|
label: ACL Configuration
|
|
schema:
|
|
type: dict
|
|
show_if: [["acl_enable", "=", true]]
|
|
attrs: []
|
|
$ref:
|
|
- "normalize/acl"
|
|
- variable: path
|
|
label: Host Path
|
|
description: The host path to use for storage.
|
|
schema:
|
|
type: hostpath
|
|
show_if: [["acl_enable", "=", false]]
|
|
required: true
|
|
- variable: auto_permissions
|
|
label: Automatic Permissions
|
|
description: |
|
|
Automatically set permissions for the host path.
|
|
Enabling this, will check the top level directory,</br>
|
|
If it finds incorrect permissions, it will `chown` the
|
|
host path to the user and group required for the
|
|
postgres container.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
show_if: [["acl_enable", "=", false]]
|
|
- variable: additional_storage
|
|
label: Additional Storage
|
|
schema:
|
|
type: list
|
|
default: []
|
|
items:
|
|
- variable: storageEntry
|
|
label: Storage Entry
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: type
|
|
label: Type
|
|
description: |
|
|
ixVolume: Is dataset created automatically by the system.</br>
|
|
Host Path: Is a path that already exists on the system.</br>
|
|
SMB Share: Is a SMB share that is mounted to as a volume.</br>
|
|
NFS Share: Is a NFS share that is mounted to as a volume.
|
|
schema:
|
|
type: string
|
|
required: true
|
|
default: "ix_volume"
|
|
enum:
|
|
- value: "host_path"
|
|
description: Host Path (Path that already exists on the system)
|
|
- value: "ix_volume"
|
|
description: ixVolume (Dataset created automatically by the system)
|
|
- value: "cifs"
|
|
description: SMB/CIFS Share (Mounts a volume to a SMB share)
|
|
- value: "nfs"
|
|
description: NFS Share (Mounts a volume to a NFS share)
|
|
- variable: read_only
|
|
label: Read Only
|
|
description: Mount the volume as read only.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: mount_path
|
|
label: Mount Path
|
|
description: The path inside the container to mount the storage.
|
|
schema:
|
|
type: path
|
|
required: true
|
|
- variable: host_path_config
|
|
label: Host Path Configuration
|
|
schema:
|
|
type: dict
|
|
show_if: [["type", "=", "host_path"]]
|
|
attrs:
|
|
- variable: acl_enable
|
|
label: Enable ACL
|
|
description: Enable ACL for the storage.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: acl
|
|
label: ACL Configuration
|
|
schema:
|
|
type: dict
|
|
show_if: [["acl_enable", "=", true]]
|
|
attrs: []
|
|
$ref:
|
|
- "normalize/acl"
|
|
- variable: path
|
|
label: Host Path
|
|
description: The host path to use for storage.
|
|
schema:
|
|
type: hostpath
|
|
show_if: [["acl_enable", "=", false]]
|
|
required: true
|
|
- variable: ix_volume_config
|
|
label: ixVolume Configuration
|
|
description: The configuration for the ixVolume dataset.
|
|
schema:
|
|
type: dict
|
|
show_if: [["type", "=", "ix_volume"]]
|
|
$ref:
|
|
- "normalize/ix_volume"
|
|
attrs:
|
|
- variable: acl_enable
|
|
label: Enable ACL
|
|
description: Enable ACL for the storage.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: dataset_name
|
|
label: Dataset Name
|
|
description: The name of the dataset to use for storage.
|
|
schema:
|
|
type: string
|
|
required: true
|
|
default: "storage_entry"
|
|
- variable: acl_entries
|
|
label: ACL Configuration
|
|
schema:
|
|
type: dict
|
|
show_if: [["acl_enable", "=", true]]
|
|
attrs: []
|
|
$ref:
|
|
- "normalize/acl"
|
|
- variable: cifs_config
|
|
label: SMB Configuration
|
|
description: The configuration for the SMB dataset.
|
|
schema:
|
|
type: dict
|
|
show_if: [["type", "=", "cifs"]]
|
|
attrs:
|
|
- variable: server
|
|
label: Server
|
|
description: The server to mount the SMB share.
|
|
schema:
|
|
type: string
|
|
required: true
|
|
- variable: path
|
|
label: Path
|
|
description: The path to mount the SMB share.
|
|
schema:
|
|
type: string
|
|
required: true
|
|
- variable: username
|
|
label: Username
|
|
description: The username to use for the SMB share.
|
|
schema:
|
|
type: string
|
|
required: true
|
|
- variable: password
|
|
label: Password
|
|
description: The password to use for the SMB share.
|
|
schema:
|
|
type: string
|
|
required: true
|
|
private: true
|
|
- variable: domain
|
|
label: Domain
|
|
description: The domain to use for the SMB share.
|
|
schema:
|
|
type: string
|
|
- variable: nfs_config
|
|
label: NFS Configuration
|
|
description: The configuration for the NFS dataset.
|
|
schema:
|
|
type: dict
|
|
show_if: [["type", "=", "nfs"]]
|
|
attrs:
|
|
- variable: server
|
|
label: Server
|
|
description: The server to mount the NFS share.
|
|
schema:
|
|
type: string
|
|
required: true
|
|
- variable: path
|
|
label: Path
|
|
description: The path to mount the NFS share.
|
|
schema:
|
|
type: string
|
|
required: true
|
|
- variable: labels
|
|
label: ""
|
|
group: Labels Configuration
|
|
schema:
|
|
type: list
|
|
default: []
|
|
items:
|
|
- variable: label
|
|
label: Label
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: key
|
|
label: Key
|
|
schema:
|
|
type: string
|
|
required: true
|
|
- variable: value
|
|
label: Value
|
|
schema:
|
|
type: string
|
|
required: true
|
|
- variable: containers
|
|
label: Containers
|
|
description: Containers where the label should be applied
|
|
schema:
|
|
type: list
|
|
items:
|
|
- variable: container
|
|
label: Container
|
|
schema:
|
|
type: string
|
|
required: true
|
|
enum:
|
|
- value: invidious
|
|
description: invidious
|
|
- value: companion
|
|
description: companion
|
|
- value: postgres
|
|
description: postgres
|
|
- variable: resources
|
|
label: ""
|
|
group: Resources Configuration
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: limits
|
|
label: Limits
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: cpus
|
|
label: CPUs
|
|
description: CPUs limit for Invidious.
|
|
schema:
|
|
type: int
|
|
default: 2
|
|
required: true
|
|
- variable: memory
|
|
label: Memory (in MB)
|
|
description: Memory limit for Invidious.
|
|
schema:
|
|
type: int
|
|
default: 4096
|
|
required: true
|