groups: - name: Unifi Protect Backup Configuration description: Configure Unifi Protect Backup - name: User and Group Configuration description: Configure User and Group for Unifi Protect Backup - name: Network Configuration description: Configure Network for Unifi Protect Backup - name: Storage Configuration description: Configure Storage for Unifi Protect Backup - name: Labels Configuration description: Configure Labels for Unifi Protect Backup - name: Resources Configuration description: Configure Resources for Unifi Protect Backup questions: - variable: TZ group: Unifi Protect Backup Configuration label: Timezone schema: type: string default: Etc/UTC required: true $ref: - definitions/timezone - variable: unifi_protect_backup label: "" group: Unifi Protect Backup Configuration schema: type: dict attrs: - variable: username label: Unifi Protect Username description: Username to login to Unifi Protect instance schema: type: string required: true - variable: password label: Unifi Protect Password description: Password for Unifi Protect user schema: type: string required: true private: true - variable: address label: Unifi Protect Address description: Address of Unifi Protect instance schema: type: string required: true - variable: port label: Unifi Protect Port description: Port of Unifi Protect instance schema: type: int min: 1 max: 65535 required: true default: 443 - variable: ssl_verify label: Unifi Protect Verify SSL description: Verify SSL certificate of Unifi Protect instance schema: type: boolean default: true - variable: skip_missing label: Skip Missing description: If set, events which are 'missing' at the start will be ignored. schema: type: boolean default: false - variable: ignore_cameras label: Ignore Cameras description: IDs of cameras for which events should not be backed up. One per line. schema: type: list default: [] items: - variable: id label: Camera ID schema: type: string required: true - variable: detection_types label: Detection Types description: Types of detections to back up. One per line. schema: type: list default: - motion - person - vehicle - ring items: - variable: type label: Detection Type schema: type: string required: true enum: - value: "motion" description: Motion - value: "person" description: Person - value: "vehicle" description: Vehicle - value: "ring" description: Ring - variable: rclone_destination label: Rclone Destination description: | Rclone destination path in the format {rclone-remote}:{path-on-remote} E.g. `gdrive:/backups/unifi_protect` schema: type: string required: true - variable: rclone_args label: Rclone Arguments description: | Optional extra arguments to pass to rclone rcat directly. One per line
Common usage for this would be to set a bandwidth limit
E.g. --bwlimit 8M schema: type: list default: [] items: - variable: arg label: Argument schema: type: string required: true - variable: rclone_purge_args label: Rclone Purge Arguments description: | Optional extra arguments to pass to rclone delete. One per line
Common usage for this would be to execute a permanent delete instead of using the recycle bin on a destination.
Google Drive example: --drive-use-trash=false schema: type: list default: [] items: - variable: arg label: Argument schema: type: string 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: run_as label: "" group: User and Group Configuration schema: type: dict attrs: - variable: user label: User ID description: The user id that Unifi Protect Backup files will be owned by. schema: type: int min: 568 default: 568 required: true - variable: group label: Group ID description: The group id that Unifi Protect Backup files will be owned by. schema: type: int min: 568 default: 568 required: true - variable: network label: "" group: Network Configuration schema: type: dict attrs: - variable: host_network label: Host Network description: | Bind to the host network. It's recommended to keep this disabled. schema: type: boolean default: false - variable: storage label: "" group: Storage Configuration schema: type: dict attrs: - variable: config label: Unifi Protect Backup Config Storage description: The path to store Unifi Protect Backup Config. schema: type: dict attrs: - variable: type label: Type description: | ixVolume: Is dataset created automatically by the system.
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: data label: Unifi Protect Backup Data Storage description: The path to store Unifi Protect Backup Data. schema: type: dict attrs: - variable: type label: Type description: | ixVolume: Is dataset created automatically by the system.
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: "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: 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.
Host Path: Is a path that already exists on the system.
SMB Share: Is a SMB 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) - 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: 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: unifi-protect-backup description: unifi-protect-backup - 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 Unifi Protect Backup. schema: type: int default: 2 required: true - variable: memory label: Memory (in MB) description: Memory limit for Unifi Protect Backup. schema: type: int default: 4096 required: true