diff --git a/ansible/app-configs/qbittorrent/qbit_manage/config.yml.j2 b/ansible/app-configs/qbittorrent/qbit_manage/config.yml.j2 new file mode 100644 index 00000000..c6272941 --- /dev/null +++ b/ansible/app-configs/qbittorrent/qbit_manage/config.yml.j2 @@ -0,0 +1,226 @@ +{% set vault_addr = 'https://vault.trez.wtf' %} +{% set secrets_path = 'rinoa-docker/env' %} +# This is an example configuration file that documents all the options. +# It will need to be modified for your specific use case. +# These are not default values. You MUST review the config settings and properly configure this EXAMPLE file. +# Please refer to the link below for more details on how to set up the configuration file +# https://github.com/StuffAnThings/qbit_manage/wiki/Config-Setup + +commands: + # The commands defined below will OVERRIDE any commands used in command line and docker env variables. + dry_run: True + recheck: False + cat_update: False + tag_update: False + rem_unregistered: False + tag_tracker_error: False + rem_orphaned: False + tag_nohardlinks: False + share_limits: False + skip_qb_version_check: False + skip_cleanup: False + +qbt: + # qBittorrent parameters + # Pass environment variables to the config via !ENV tag + host: qbittorrentvpn:8080 + user: admin + pass: {{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['DELUGEVPN_PASS'] }} + +settings: + force_auto_tmm: False # Will force qBittorrent to enable Automatic Torrent Management for each torrent. + force_auto_tmm_ignore_tags: #Torrents with these tags will be ignored when force_auto_tmm is enabled. + - cross-seed + - Upload + tracker_error_tag: issue # Will set the tag of any torrents that do not have a working tracker. + nohardlinks_tag: noHL # Will set the tag of any torrents with no hardlinks. + stalled_tag: stalledDL # Will set the tag of any torrents stalled downloading. + share_limits_tag: ~share_limit # Will add this tag when applying share limits to provide an easy way to filter torrents by share limit group/priority for each torrent + share_limits_min_seeding_time_tag: MinSeedTimeNotReached # Tag to be added to torrents that have not yet reached the minimum seeding time + share_limits_min_num_seeds_tag: MinSeedsNotMet # Tag to be added to torrents that have not yet reached the minimum number of seeds + share_limits_last_active_tag: LastActiveLimitNotReached # Tag to be added to torrents that have not yet reached the last active limit + cat_filter_completed: True # Filters for completed torrents only when running cat_update command + share_limits_filter_completed: True # Filters for completed torrents only when running share_limits command + tag_nohardlinks_filter_completed: True # Filters for completed torrents only when running tag_nohardlinks command + rem_unregistered_filter_completed: False # Filters for completed torrents only when running rem_unregistered command + cat_update_all: True # Checks and updates all torrent categories if set to True when running cat_update command, otherwise only update torrents that are uncategorized + disable_qbt_default_share_limits: True # Allows QBM to handle share limits by disabling qBittorrents default Share limits. Only active when the share_limits command is set to True + tag_stalled_torrents: True # Tags any downloading torrents that are stalled with the `stalledDL` tag when running the tag_update command + rem_unregistered_ignore_list: # Ignores a list of words found in the status of the tracker when running rem_unregistered command and will not remove the torrent if matched + - example placeholder words + - ignore if found + +directory: + # Do not remove these + # root_dir var: # Root downloads directory used to check for orphaned files, noHL, and RecycleBin. + # remote_dir var: # Path of docker host mapping of root_dir. + # remote_dir must be set if you're running qbit_manage locally and qBittorrent/cross_seed is in a docker + # remote_dir should not be set if qbit_manage is running in a container + # recycle_bin var: # Path of the RecycleBin folder. Default location is set to remote_dir/.RecycleBin + # torrents_dir var: # Path of the your qbittorrent torrents directory. Required for `save_torrents` attribute in recyclebin + # orphaned_dir var: # Path of the the Orphaned Data folder. This is similar to RecycleBin, but only for orphaned data. + root_dir: "/data/torrents" + # remote_dir: "/host/path/to/torrents/ifdocker/torrents/" + recycle_bin: "/path/to/.RecycleBin" + torrents_dir: "/path/to/qbitAppData/BT_backup" + orphaned_dir: "/path/to/orphaned_data" + +cat: + # Category & Path Parameters + # All save paths in qbittorent must be populated below. + # If you want to leave a save_path as uncategorized you can use the key 'Uncategorized' as the name of the category. + # You can use Unix filename pattern matching as well when specifying the save_path + # : # Path of your save directory. + lidarr: "/data/torrents/music" + # prowlarr: "/data/torrents" + radarr: "/data/torrents/movies" + readarr: "/data/torrents/ebooks" + tv-sonarr: "/data/torrents/tv" + +cat_change: + # This moves all the torrents from one category to another category. This executes on --cat-update + # WARNING: if the paths are different and Default Torrent Management Mode is set to automatic the files could be moved !!! + # : + CatA.cross-seed: CatA + CatB.cross-seed: CatB + +tracker: + # Mandatory + # Tag Parameters + # : # This is the keyword in the tracker url. You can define multiple tracker urls by splitting with `|` delimiter + # Set tag name. Can be a list of tags or a single tag + # tag: + # Set the category based on tracker URL. This category option takes priority over the category defined by save directory + # cat: + # Set this to the notifiarr react name. This is used to add indexer reactions to the notifications sent by Notifiarr + # notifiarr: + animebytes.tv: + tag: AnimeBytes + notifiarr: animebytes + avistaz: + tag: + - Avistaz + - tag2 + - tag3 + notifiarr: avistaz + beyond-hd: + tag: [Beyond-HD, tag2, tag3] + cat: movies + notifiarr: beyondhd + blutopia: + tag: Blutopia + notifiarr: blutopia + cartoonchaos: + tag: CartoonChaos + digitalcore: + tag: DigitalCore + notifiarr: digitalcore + gazellegames: + tag: GGn + hdts: + tag: HDTorrents + landof.tv: + tag: BroadcasTheNet + notifiarr: broadcasthenet + myanonamouse: + tag: MaM + passthepopcorn: + tag: PassThePopcorn + notifiarr: passthepopcorn + privatehd: + tag: PrivateHD + notifiarr: + torrentdb: + tag: TorrentDB + notifiarr: torrentdb + torrentleech|tleechreload: + tag: TorrentLeech + notifiarr: torrentleech + tv-vault: + tag: TV-Vault + # The "other" key is a special keyword and if defined will tag any other trackers that don't match the above trackers into this tag + other: + tag: other + +nohardlinks: + # Tag Movies/Series that are not hard linked outside the root directory + # Mandatory to fill out directory parameter above to use this function (root_dir/remote_dir) + # This variable should be set to your category name of your completed movies/completed series in qbit. Acceptable variable can be any category you would like to tag if there are no hardlinks found + movies-completed-4k: + series-completed-4k: + movies-completed: + # exclude_tags var: Will exclude torrents with any of the following tags when searching through the category. + exclude_tags: + - Beyond-HD + - AnimeBytes + - MaM + # ignore_root_dir var: Will ignore any hardlinks detected in the same root_dir (Default True). + ignore_root_dir: true + # Can have additional categories set with separate ratio/seeding times defined. + series-completed: + # exclude_tags var: Will exclude torrents with any of the following tags when searching through the category. + exclude_tags: + - Beyond-HD + - BroadcasTheNet + # ignore_root_dir var: Will ignore any hardlinks detected in the same root_dir (Default True). + ignore_root_dir: true + +share_limits: + # Control how torrent share limits are set depending on the priority of your grouping + # Each torrent will be matched with the share limit group with the highest priority that meets the group filter criteria. + # Each torrent can only be matched with one share limit group + # This variable is mandatory and is a text defining the name of your grouping. This can be any string you want + spacesaver: + priority: 2 + max_ratio: 3 + min_last_active: 24h + cleanup: false + default: + priority: 999 + max_ratio: -1 + max_seeding_time: -1 + cleanup: false +recyclebin: + # Recycle Bin method of deletion will move files into the recycle bin (Located in /root_dir/.RecycleBin) instead of directly deleting them in qbit + # By default the Recycle Bin will be emptied on every run of the qbit_manage script if empty_after_x_days is defined. + enabled: true + # empty_after_x_days var: + # Will automatically remove all files and folders in recycle bin after x days. (Checks every script run) + # If this variable is not defined it, the RecycleBin will never be emptied. + # WARNING: Setting this variable to 0 will delete all files immediately upon script run! + empty_after_x_days: 60 + # save_torrents var: + # If this option is set to true you MUST fill out the torrents_dir in the directory attribute. + # This will save a copy of your .torrent and .fastresume file in the recycle bin before deleting it from qbittorrent + save_torrents: true + # split_by_category var: + # This will split the recycle bin folder by the save path defined in the `cat` attribute + # and add the base folder name of the recycle bin that was defined in the `recycle_bin` sub-attribute under directory. + split_by_category: false + +orphaned: + # Orphaned files are those in the root_dir download directory that are not referenced by any active torrents. + # Will automatically remove all files and folders in orphaned data after x days. (Checks every script run) + # If this variable is not defined it, the orphaned data will never be emptied. + # WARNING: Setting this variable to 0 will delete all files immediately upon script run! + empty_after_x_days: 60 + # File patterns that will not be considered orphaned files. Handy for generated files that aren't part of the torrent but belong with the torrent's files + exclude_patterns: + - "**/.DS_Store" + - "**/Thumbs.db" + - "**/@eaDir" + - "/data/torrents/temp/**" + - "**/*.!qB" + - "**/*_unpackerred" + # Set your desired threshold for the maximum number of orphaned files qbm will delete in a single run. (-1 to disable safeguards) + # This will help reduce the number of accidental large amount orphaned deletions in a single run + # WARNING: Setting this variable to -1 will not safeguard against any deletions + max_orphaned_files_to_delete: 50 + +apprise: + # Apprise integration with webhooks + # Leave Empty/Blank to disable + # Mandatory to fill out the url of your apprise API endpoint + api_url: http://apprise-api:8000 + # Mandatory to fill out the notification url/urls based on the notification services provided by apprise. https://github.com/caronc/apprise/wiki + notify_url: gotify://gotify/{{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['APPRISE_GOTIFY_TOKEN'] }} \ No newline at end of file