chore(icloudpd): clean up UI and unneeded variables (#3901)

This commit is contained in:
Stavros Kois 2022-09-25 20:43:15 +03:00 committed by GitHub
parent 42493f8c84
commit 8545b4ee48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 312 additions and 106 deletions

View File

@ -1,9 +1,3 @@
annotations:
truecharts.org/SCALE-support: "true"
truecharts.org/catagories: |
- Backup
- Cloud
- Downloaders
apiVersion: v2
appVersion: "latest"
dependencies:
@ -30,4 +24,10 @@ sources:
- https://github.com/Womabre/-TrueNAS-docker-templates
- https://hub.docker.com/r/boredazfcuk/icloudpd/
type: application
version: 0.0.34
version: 0.0.35
annotations:
truecharts.org/SCALE-support: "true"
truecharts.org/catagories: |
- Backup
- Cloud
- Downloaders

View File

@ -10,93 +10,213 @@ questions:
# Include{recreate}
# Include{controllerExpert}
# Include{controllerExpertExtraArgs}
- variable: env
group: "Container Configuration"
label: "Image Environment"
- variable: icloudpd
group: Container Configuration
label: iCloud PD Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: apple_id
label: "apple_id"
description: "This is the Apple ID for the account you want to download files from"
schema:
type: string
default: "your@appleid.com"
- variable: synchronisation_interval
label: "synchronisation_interval"
description: "Default is once every 24h."
schema:
type: string
default: "86400"
- variable: notification_type
label: "notification_type"
description: "This specifies the method that is used to send notifications. Currently, there are three options available Prowl, Pushbullet and Telegram. When the two factor authentication cookie is within 7 days (default) of expiry, a notification will be sent upon synchronization. No more than a single notification will be sent within a 24 hour period unless the container is restarted. This does not include the notification that is sent each time the container is started"
schema:
type: string
default: ""
- variable: prowl_api_key
label: "prowl_api_key"
description: "If the notificationtype is set to Prowl this is mandatory. This is the API key for your account as generated by the Prowl website"
schema:
type: string
default: ""
- variable: pushbullet_api_key
label: "pushbullet_api_key"
description: "If the notificationtype is set to Pushbullet this is mandatory. This is the API key for your account as generated by the Pushbullet website"
schema:
type: string
default: ""
- variable: telegram_token
label: "telegram_token"
description: "If the notificationtype is set to Telegram this is mandatory. This is the token that was assigned to your account by The Botfather"
schema:
type: string
default: ""
- variable: telegram_chat_id
label: "telegram_chat_id"
description: "If the notificationtype is set to Telegram then this is the chatid for your Telegram bot"
schema:
type: string
default: ""
- variable: command_line_options
label: "command_line_options"
description: "This is for additional command line options you want to pass to the icloudpd application. httpsgithub.comndbroadbenticloudphotosdownloader#usage"
label: Apple ID
description: This is the Apple ID that will be used when downloading files.
schema:
type: string
required: true
default: ""
- variable: authentication_type
label: "authentication_type"
description: "2FA or Web Authentication"
label: Authentication Type
description: This is the type of authentication that is enabled on your iCloud account
schema:
type: string
default: "2FA"
- variable: directory_permissions
label: "directory_permissions"
description: "Container Variable directorypermissions"
default: 2FA
enum:
- value: 2FA
description: 2FA
- value: Web
description: Web
- variable: icloud_china
label: iCloud China
description: Set this to true to use icloud.com.cm instead of icloud.com as the download source.
schema:
type: boolean
default: true
- variable: synchronisation_interval
label: Synchronization Interval
description: This is the number of seconds between synchronizations.
schema:
type: int
default: 86400
- variable: synchronisation_delay
label: Synchronization Delay
description: This is the number of minutes to delay the first synchronization.
schema:
type: int
default: 86400
- variable: notification_days
label: Notification Days
description: When your cookie is nearing expiration, this is the number of days in advance it should notify you.
schema:
type: int
default: 7
- variable: photo_size
label: Photo Size
description: Image size to download
schema:
type: string
default: "777"
- variable: file_permissions
label: "file_permissions"
description: "Container Variable filepermissions"
default: original
enum:
- value: original
description: original
- value: medium
description: medium
- value: thumb
description: thumb
- variable: live_photo_size
label: Live Photo Size
description: Live photo file size to download.
schema:
type: string
default: "666"
- variable: UMASK
label: "UMASK"
description: "Container Variable UMASK"
default: original
enum:
- value: original
description: original
- value: medium
description: medium
- value: thumb
description: thumb
- variable: recent_only
label: Recent Only
description: Set this to an integer number to only download this many recently added photos. Set to 0 to download all
schema:
type: int
default: 0
- variable: until_found
label: Until Found
description: Set this to an integer number to only download the most recently added photos, until n number of previously downloaded consecutive photos are found. Set to 0 to download all
schema:
type: int
default: 0
- variable: photo_album
label: Photo Album
description: Set this to the name of an album to only download photos from a single album. Set to empty to download all
schema:
type: string
default: "000"
default: ""
- variable: set_exif_datetime
label: Set EXIF Date Time
description: Write the DateTimeOriginal EXIF tag from file creation date.
schema:
type: boolean
default: false
- variable: convert_heic_to_jpeg
label: Convert HEIC to JPEG
description: Set this to True to convert downloaded HEIC files to JPEG, while also retaining the original.
schema:
type: boolean
default: false
- variable: jpeg_quality
label: JPEG Quality
description: If HEIC to JPEG conversion is enabled, this variable will let you set the quality of the converted file by specifying a number from 0 (lowest quality) to 100 (highest quality)
schema:
type: int
default: 90
- variable: skip_check
label: Skip Check
description: Set this to True skip the check for new files. The check can have issues with large libraries.
schema:
type: boolean
default: false
- variable: skip_live_photos
label: Skip Live Photos
description: If this is set, it will skip downloading live photos.
schema:
type: boolean
default: false
- variable: skip_videos
label: Skip Videos
description: If this is set, it will skip downloading videos.
schema:
type: boolean
default: false
- variable: auto_delete
label: Auto Delete
description: Scans the "Recently Deleted" folder and deletes any files found in there.
schema:
type: boolean
default: false
- variable: download_notifications
label: Download Notifications
description: Specifies whether notifications with a short summary should be sent for file downloads.
schema:
type: boolean
default: false
- variable: delete_notifications
label: Delete Notifications
description: Specifies whether notifications with a short summary should be sent for file deletions.
schema:
type: boolean
default: false
- variable: delete_accompanying
label: Delete Accompanying
description: Tells the script to delete files which accompany the HEIC files that are downloaded.
schema:
type: boolean
default: false
- variable: delete_empty_directories
label: Delete Empty Directories
description: Tells the script to delete any empty directories it finds in the download path.
schema:
type: boolean
default: false
- variable: command_line_options
label: Command Line Options
description: This is for additional command line options you want to pass to the iCloud PD application.
schema:
type: string
default: ""
- variable: notification_type
label: Notification Type
description: This specifies the method that is used to send notifications. You need to manually add the environments variables
for your selected notification type, using the "Extra Environment Variables Section"
More info about the variables needed here. https://github.com/boredazfcuk/docker-icloudpd/blob/master/NOTIFICATIONS.md
schema:
type: string
default: No Type
enum:
- value: ""
description: No type
- value: Prowl
description: Prowl
- value: Pushover
description: Pushover
- value: Telegram
description: Telegram
- value: Webhook
description: Webhook
- value: Openhab
description: Openhab
- value: Dingtalk
description: Dingtalk
- value: Discord
description: Discord
- value: IYUU
description: IYUU
- value: WeCom
description: WeCom
- value: Gotify
description: Gotify
- value: Bark
description: Bark
# Include{containerConfig}
# Include{serviceExpertRoot}
default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
- variable: config
label: "config Storage"
description: "Container Path config"
label: Config Storage
description: Stores Applications Configuration
schema:
additional_attrs: true
type: dict
@ -104,8 +224,8 @@ questions:
# Include{persistenceBasic}
# Include{persistenceAdvanced}
- variable: data
label: "data Storage"
description: "Container Path homeuserphotos"
label: Data Storage
description: Stores iCloud Downloaded Data
schema:
additional_attrs: true
type: dict
@ -117,42 +237,42 @@ questions:
# Include{security}
# Include{securityContextAdvancedRoot}
- variable: privileged
label: "Privileged mode"
label: Privileged mode
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
label: ReadOnly Root Filesystem
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
label: Allow Privilege Escalation
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
label: runAsNonRoot
schema:
type: boolean
default: false
# Include{securityContextAdvanced}
# Include{podSecurityContextRoot}
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
label: runAsUser
description: The UserID of the user running the application
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
label: runAsGroup
description: The groupID this App of the user running the application
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
label: fsGroup
description: The group that should own ALL storage.
schema:
type: int
default: 568

View File

@ -1,30 +1,109 @@
env:
UMASK: "000"
apple_id: your@appleid.com
authentication_type: 2FA
command_line_options: ""
directory_permissions: "777"
file_permissions: "666"
notification_type: ""
prowl_api_key: ""
pushbullet_api_key: ""
synchronisation_interval: "86400"
telegram_chat_id: ""
telegram_token: ""
image:
pullPolicy: IfNotPresent
repository: tccr.io/truecharts/icloudpd
tag: latest@sha256:493d895040c0607ef1f994920ca6b0b25ea61b65beb53604f5417370b7416be8
persistence:
config:
enabled: true
mountPath: /config
data:
enabled: true
mountPath: /home/user/iCloud
podSecurityContext:
runAsGroup: 0
runAsUser: 0
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
icloudpd:
apple_id: your@appleid.com
authentication_type: 2FA
icloud_china: false
synchronisation_interval: 86400
synchronisation_delay: 0
notification_days: 7
photo_size: original
live_photo_size: original
recent_only: 0
until_found: 0
photo_album: ""
set_exif_datetime: false
convert_heic_to_jpeg: false
jpeg_quality: 90
skip_check: false
skip_live_photos: false
skip_videos: false
auto_delete: false
download_notifications: true
delete_notifications: true
delete_accompanying: false
delete_empty_directories: false
command_line_options: ""
notification_title: iCloud PD
# https://github.com/boredazfcuk/docker-icloudpd/blob/master/NOTIFICATIONS.md
notification_type: ""
# prowl_api_key: ""
# pushover_user: ""
# pushover_token: ""
# pushover_sound: ""
# telegram_token: ""
# telegram_chat_id: ""
# webhook_server: ""
# webhook_port: ""
# webhook_path: ""
# webhook_id: ""
# webhook_https: ""
# webhook_body: ""
# dingtalk_token: ""
# discord_id: ""
# discord_token: ""
# iyuu_token: ""
# wecom_id: ""
# wecom_secret: ""
# agentid: ""
# touser: ""
# content_source_url: ""
# name: ""
# media_id_startup: ""
# media_id_download: ""
# media_id_delete: ""
# media_id_expiration: ""
# media_id_warning: ""
# gotify_app_token: ""
# gotify_server_url: ""
# bark_device_key: ""
# bark_server: ""
env:
user: apps
group: apps
user_id: "{{ .Values.security.PUID }}"
group_id: "{{ .Values.podSecurityContext.fsGroup }}"
download_path: /home/{{ .Values.env.user }}/iCloud
jpeg_path: /home/{{ .Values.env.user }}/iCloud
# User Defined
apple_id: "{{ .Values.icloudpd.apple_id }}"
synchronisation_interval: "{{ .Values.icloudpd.synchronisation_interval }}"
synchronisation_delay: "{{ .Values.icloudpd.synchronisation_delay }}"
notification_days: "{{ .Values.icloudpd.notification_days }}"
authentication_type: "{{ .Values.icloudpd.authentication_type }}"
skip_check: '{{ ternary "True" "False" .Values.icloudpd.skip_check }}'
download_notifications: '{{ ternary "True" "False" .Values.icloudpd.download_notifications }}'
delete_notifications: '{{ ternary "True" "False" .Values.icloudpd.delete_notifications }}'
delete_accompanying: '{{ ternary "True" "False" .Values.icloudpd.delete_accompanying }}'
delete_empty_directories: '{{ ternary "True" "False" .Values.icloudpd.delete_empty_directories }}'
set_exif_datetime: '{{ ternary "True" "False" .Values.icloudpd.set_exif_datetime }}'
auto_delete: '{{ ternary "True" "False" .Values.icloudpd.auto_delete }}'
photo_size: "{{ .Values.icloudpd.photo_size }}"
skip_live_photos: '{{ ternary "True" "False" .Values.icloudpd.skip_live_photos }}'
live_photo_size: "{{ .Values.icloudpd.live_photo_size }}"
skip_videos: '{{ ternary "True" "False" .Values.icloudpd.skip_videos }}'
recent_only: '{{ ternary "" .Values.icloudpd.recent_only (eq 0 (int .Values.icloudpd.recent_only)) }}'
until_found: '{{ ternary "" .Values.icloudpd.until_found (eq 0 (int .Values.icloudpd.until_found)) }}'
photo_album: "{{ .Values.icloudpd.photo_album }}"
convert_heic_to_jpeg: '{{ ternary "True" "False" .Values.icloudpd.convert_heic_to_jpeg }}'
jpeg_quality: "{{ .Values.icloudpd.jpeg_quality }}"
icloud_china: '{{ ternary "True" "False" .Values.icloudpd.icloud_china }}'
command_line_options: "{{ .Values.icloudpd.command_line_options }}"
notification_title: "{{ .Values.icloudpd.notification_title }}"
notification_type: "{{ .Values.icloudpd.notification_type }}"
probes:
liveness:
enabled: false
@ -32,9 +111,7 @@ probes:
enabled: false
startup:
enabled: false
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
service:
main:
enabled: false
@ -42,5 +119,13 @@ service:
main:
enabled: false
persistence:
config:
enabled: true
mountPath: /config
data:
enabled: true
mountPath: /home/apps/iCloud
portal:
enabled: false

View File

@ -61,6 +61,7 @@ words:
- emby
- entrypoints
- eptgmk
- EXIF
- fireshare
- flatnotes
- flemarr