mirror of
https://github.com/MAGICGrants/truenas-apps.git
synced 2026-01-08 04:03:51 -05:00
642 lines
24 KiB
YAML
642 lines
24 KiB
YAML
groups:
|
|
- name: Briefkasten Configuration
|
|
description: Configure Briefkasten
|
|
- name: User and Group Configuration
|
|
description: Configure User and Group for Briefkasten
|
|
- name: Network Configuration
|
|
description: Configure Network for Briefkasten
|
|
- name: Storage Configuration
|
|
description: Configure Storage for Briefkasten
|
|
- name: Labels Configuration
|
|
description: Configure Labels for Briefkasten
|
|
- name: Resources Configuration
|
|
description: Configure Resources for Briefkasten
|
|
|
|
questions:
|
|
- variable: TZ
|
|
group: Briefkasten Configuration
|
|
label: Timezone
|
|
schema:
|
|
type: string
|
|
default: Etc/UTC
|
|
required: true
|
|
$ref:
|
|
- definitions/timezone
|
|
|
|
- variable: briefkasten
|
|
label: ""
|
|
group: Briefkasten 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: nextauth_secret
|
|
label: NextAuth Secret
|
|
description: The secret used to encrypt the JWT token.
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
private: true
|
|
- variable: postgres_password
|
|
label: Postgres Password
|
|
description: The password for Postgres.
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
private: true
|
|
- variable: nextauth_url
|
|
label: NextAuth URL
|
|
description: |
|
|
The URL that Briefkasten will be accessible from.</br>
|
|
Example: </br>
|
|
http://server.ip:30080</br>
|
|
https://Briefkasten.example.com
|
|
schema:
|
|
type: uri
|
|
default: ""
|
|
required: true
|
|
- variable: smtp
|
|
label: SMTP Auth Provider
|
|
description: Configure SMTP for Briefkasten.
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: enabled
|
|
label: Enabled
|
|
description: Enable SMTP for auth.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: server
|
|
label: SMTP Server
|
|
description: The SMTP server to use.
|
|
schema:
|
|
type: string
|
|
show_if: [["enabled", "=", true]]
|
|
default: ""
|
|
required: true
|
|
- variable: from
|
|
label: SMTP From
|
|
description: The SMTP from address to use.
|
|
schema:
|
|
type: string
|
|
show_if: [["enabled", "=", true]]
|
|
default: ""
|
|
required: true
|
|
- variable: github
|
|
label: GitHub Auth Provider
|
|
description: Configure GitHub for Briefkasten.
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: enabled
|
|
label: Enabled
|
|
description: Enable GitHub for auth.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: id
|
|
label: GitHub Client ID
|
|
description: The GitHub Client ID.
|
|
schema:
|
|
type: string
|
|
show_if: [["enabled", "=", true]]
|
|
default: ""
|
|
required: true
|
|
- variable: secret
|
|
label: GitHub Client Secret
|
|
description: The GitHub Client Secret.
|
|
schema:
|
|
type: string
|
|
show_if: [["enabled", "=", true]]
|
|
default: ""
|
|
private: true
|
|
required: true
|
|
- variable: google
|
|
label: Google Auth Provider
|
|
description: Configure Google for Briefkasten.
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: enabled
|
|
label: Enabled
|
|
description: Enable Google for auth.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: id
|
|
label: Google Client ID
|
|
description: The Google Client ID.
|
|
schema:
|
|
type: string
|
|
show_if: [["enabled", "=", true]]
|
|
default: ""
|
|
required: true
|
|
- variable: secret
|
|
label: Google Client Secret
|
|
description: The Google Client Secret.
|
|
schema:
|
|
type: string
|
|
show_if: [["enabled", "=", true]]
|
|
default: ""
|
|
private: true
|
|
required: true
|
|
- variable: keycloak
|
|
label: Keycloak Auth Provider
|
|
description: Configure Keycloak for Briefkasten.
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: enabled
|
|
label: Enabled
|
|
description: Enable Keycloak for auth.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: name
|
|
label: Keycloak Name
|
|
description: The Keycloak Name.
|
|
schema:
|
|
type: string
|
|
show_if: [["enabled", "=", true]]
|
|
default: ""
|
|
required: true
|
|
- variable: id
|
|
label: Keycloak Client ID
|
|
description: The Keycloak Client ID.
|
|
schema:
|
|
type: string
|
|
show_if: [["enabled", "=", true]]
|
|
default: ""
|
|
required: true
|
|
- variable: secret
|
|
label: Keycloak Client Secret
|
|
description: The Keycloak Client Secret.
|
|
schema:
|
|
type: string
|
|
show_if: [["enabled", "=", true]]
|
|
default: ""
|
|
private: true
|
|
required: true
|
|
- variable: issuer
|
|
label: Keycloak Issuer
|
|
description: The Keycloak Issuer.
|
|
schema:
|
|
type: string
|
|
show_if: [["enabled", "=", true]]
|
|
default: ""
|
|
required: true
|
|
- variable: authentik
|
|
label: Authentik Auth Provider
|
|
description: Configure Authentik for Briefkasten.
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: enabled
|
|
label: Enabled
|
|
description: Enable Authentik for auth.
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: name
|
|
label: Authentik Name
|
|
description: The Authentik Name.
|
|
schema:
|
|
type: string
|
|
show_if: [["enabled", "=", true]]
|
|
default: ""
|
|
required: true
|
|
- variable: id
|
|
label: Authentik Client ID
|
|
description: The Authentik Client ID.
|
|
schema:
|
|
type: string
|
|
show_if: [["enabled", "=", true]]
|
|
default: ""
|
|
required: true
|
|
- variable: secret
|
|
label: Authentik Client Secret
|
|
description: The Authentik Client Secret.
|
|
schema:
|
|
type: string
|
|
show_if: [["enabled", "=", true]]
|
|
default: ""
|
|
private: true
|
|
required: true
|
|
- variable: issuer
|
|
label: Authentik Issuer
|
|
description: The Authentik Issuer.
|
|
schema:
|
|
type: string
|
|
show_if: [["enabled", "=", true]]
|
|
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: 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: 30080
|
|
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: Postgres Data Storage
|
|
description: The path to store 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: "pg_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: briefkasten
|
|
description: briefkasten
|
|
- 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 Briefkasten.
|
|
schema:
|
|
type: int
|
|
default: 2
|
|
required: true
|
|
- variable: memory
|
|
label: Memory (in MB)
|
|
description: Memory limit for Briefkasten.
|
|
schema:
|
|
type: int
|
|
default: 4096
|
|
required: true
|