mirror of
https://github.com/MAGICGrants/truenas-apps.git
synced 2026-01-08 04:03:51 -05:00
659 lines
26 KiB
YAML
659 lines
26 KiB
YAML
groups:
|
|
- name: Hoppscotch Configuration
|
|
description: Configure Hoppscotch
|
|
- name: Network Configuration
|
|
description: Configure Network for Hoppscotch
|
|
- name: Storage Configuration
|
|
description: Configure Storage for Hoppscotch
|
|
- name: Labels Configuration
|
|
description: Configure Labels for Hoppscotch
|
|
- name: Resources Configuration
|
|
description: Configure Resources for Hoppscotch
|
|
|
|
questions:
|
|
- variable: hoppscotch
|
|
label: ""
|
|
group: Hoppscotch 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_17_image
|
|
description: Postgres 17
|
|
- value: postgres_18_image
|
|
description: Postgres 18
|
|
- variable: db_password
|
|
label: Database Password
|
|
description: The password for Hoppscotch.
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
private: true
|
|
- variable: data_encryption_key
|
|
label: Data encryption key
|
|
description: Key to encrypt "sensitive" data.
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
min_length: 32
|
|
max_length: 32
|
|
required: true
|
|
private: true
|
|
|
|
- variable: urls
|
|
label: ""
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: frontend
|
|
label: Frontend URL
|
|
description: |
|
|
The URL the frontend will be accessible from.</br>
|
|
Format: http(s)://(sub.)domain.tld(:port)</br>
|
|
If your NOT using a reverse proxy (like nginx) you need to
|
|
specify the same port as below!</br>
|
|
Examples:</br>
|
|
https://example.com:33000</br>
|
|
https://frontend.hopp.example.com</br>
|
|
https://frontend.hopp.example.com:33000
|
|
schema:
|
|
type: uri
|
|
default: ""
|
|
required: true
|
|
- variable: backend
|
|
label: Backend URL
|
|
description: |
|
|
The URL the backend will be accessible from.</br>
|
|
Format: http(s)://(sub.)domain.tld(:port)</br>
|
|
If your NOT using a reverse proxy (like nginx) you need to
|
|
specify the same port as below!</br>
|
|
Examples:</br>
|
|
https://example.com:33170</br>
|
|
https://backend.hopp.example.com</br>
|
|
https://backend.hopp.example.com:33170
|
|
schema:
|
|
type: uri
|
|
default: ""
|
|
required: true
|
|
- variable: admin
|
|
label: Admin URL
|
|
description: |
|
|
The URL the admin panel will be accessible from.</br>
|
|
Format: http(s)://(sub.)domain.tld(:port)</br>
|
|
If your NOT using a reverse proxy (like nginx) you need to
|
|
specify the same port as below!</br>
|
|
Examples:</br>
|
|
https://example.com:3300</br>
|
|
https://backend.hopp.example.com</br>
|
|
https://backend.hopp.example.com:3300
|
|
schema:
|
|
type: uri
|
|
default: ""
|
|
required: true
|
|
- variable: app_bundle
|
|
label: App Bundle URL
|
|
description: |
|
|
The URL the app bundle will be accessible from.</br>
|
|
Format: http(s)://(sub.)domain.tld(:port)</br>
|
|
If your NOT using a reverse proxy (like nginx) you need to
|
|
specify the same port as below!</br>
|
|
Examples:</br>
|
|
https://example.com:33200</br>
|
|
https://app.hopp.example.com</br>
|
|
https://app.hopp.example.com:33200
|
|
schema:
|
|
type: uri
|
|
default: ""
|
|
required: 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: frontend_web_port
|
|
label: WebUI Port
|
|
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: 33000
|
|
show_if: [["bind_mode", "=", "published"]]
|
|
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: backend_web_port
|
|
label: Backend Port
|
|
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: 33170
|
|
show_if: [["bind_mode", "=", "published"]]
|
|
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: admin_web_port
|
|
label: Admin WebUI Port
|
|
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: 33100
|
|
show_if: [["bind_mode", "=", "published"]]
|
|
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: app_bundle_port
|
|
label: App Bundle Port
|
|
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: 33200
|
|
show_if: [["bind_mode", "=", "published"]]
|
|
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: postgres_data
|
|
label: Hoppscotch Data Storage
|
|
description: The path to store Hoppscotch Postgres Data.
|
|
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: []
|
|
- 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: backend
|
|
description: backend
|
|
- value: frontend
|
|
description: frontend
|
|
- value: admin
|
|
description: admin
|
|
- 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 Hoppscotch.
|
|
schema:
|
|
type: int
|
|
default: 2
|
|
required: true
|
|
- variable: memory
|
|
label: Memory (in MB)
|
|
description: Memory limit for Hoppscotch.
|
|
schema:
|
|
type: int
|
|
default: 4096
|
|
required: true
|