apiVersion: v1 kind: ConfigMap metadata: name: glutun-update-script namespace: {{ .Release.Namespace }} labels: app.kubernetes.io/name: glutun-update-script app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }} data: update.sh: | if ! command -v curl 2>&1 >/dev/null then echo "curl could not be found, installing"; apk add curl; fi; if ! command -v jq 2>&1 >/dev/null then echo "jq could not be found, installing"; apk add jq; fi; API_ENDPOINT="http://localhost:8080/api/v2"; # echo " "; # echo ">> Authentication ..."; # curl -i --silent --header 'Referer: http://localhost:8080' --output response_body_auth.json --data 'username=admin&password=adminadmin' "${API_ENDPOINT}/auth/login" -c cookie; echo " "; echo ">> Test access ..."; HTTP_STATUS=$(curl -i -X GET --silent --write-out '%{http_code}' --output response_body_test.json -b cookie -c cookie "${API_ENDPOINT}/app/version"); echo ">> HTTP Status Code: $HTTP_STATUS" VERSION=$(tail -n 1 response_body_test.json) if [ "$HTTP_STATUS" == "200" ]; then echo ">> Access confirmed, qBittorrent version: ${VERSION}" HTTP_STATUS="" else echo ">> ERROR: HTTP status code: $HTTP_STATUS" exit 1 fi PAYLOAD=$( jq -n \ '{random_port: true}' ); echo " "; echo ">> Setting port to random ..."; HTTP_STATUS=$(curl -i -X POST --silent -b cookie -c cookie --write-out '%{http_code}' --output response_body_random.json --data "json=$PAYLOAD" "${API_ENDPOINT}/app/setPreferences"); if [ "$HTTP_STATUS" == "200" ]; then echo ">> Random port set" HTTP_STATUS="" else echo ">> ERROR: HTTP status code: $HTTP_STATUS" exit 1 fi echo " "; echo ">> Sleeping for changes to take effect"; sleep 5; PAYLOAD=$( jq -n \ "{listen_port: ${1}}" ); echo " "; echo ">> Updating port with ${1} ..."; HTTP_STATUS=$(curl -i -X POST --silent -b cookie -c cookie --write-out '%{http_code}' --output response_body_update.json --data "json=$PAYLOAD" "${API_ENDPOINT}/app/setPreferences"); if [ "$HTTP_STATUS" == "200" ]; then echo ">> Port set" HTTP_STATUS="" else echo ">> ERROR: HTTP status code: $HTTP_STATUS" exit 1 fi echo " "; echo ">> Sleeping for changes to take effect"; sleep 5; HTTP_STATUS=$(curl -i -X GET --silent -b cookie -c cookie --write-out '%{http_code}' --output response_body_check.json "${API_ENDPOINT}/app/preferences"); LISTEN_PORT=$(tail -n 1 response_body_check.json | jq -r .listen_port) echo " "; echo ">> qBittorrent's post is now: $LISTEN_PORT"; if [[ "$HTTP_STATUS" == "200" && "$LISTEN_PORT" == "${1}" ]]; then echo ">> Port updated successfully!" else echo ">> ERROR: HTTP status code: $HTTP_STATUS" exit 1 fi --- apiVersion: v1 kind: ConfigMap metadata: name: qbit-manage-config namespace: {{ .Release.Namespace }} labels: app.kubernetes.io/name: qbit-manage-config app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }} data: config.yml: | # 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: dry_run: false recheck: true cat_update: true tag_update: true rem_unregistered: true tag_tracker_error: true rem_orphaned: true tag_nohardlinks: false share_limits: true skip_qb_version_check: true skip_cleanup: false qbt: host: qbittorrent.qbittorrent:8080 user: pass: settings: force_auto_tmm: true tracker_error_tag: tracker-error share_limits_tag: share-limit share_limits_min_seeding_time_tag: seed-time-not-reached cat_filter_completed: false share_limits_filter_completed: false rem_unregistered_filter_completed: false cat_update_all: true disable_qbt_default_share_limits: true tag_stalled_torrents: true nohardlinks_tag: no-hardlinks stalled_tag: stalled share_limits_min_num_seeds_tag: min-seeds-not-reached share_limits_last_active_tag: last-active-not-reached tag_nohardlinks_filter_completed: true force_auto_tmm_ignore_tags: [] rem_unregistered_ignore_list: [] directory: root_dir: /mnt/store/Torrent/ recycle_bin: /qbittorrent/Trash torrents_dir: /qbittorrent/qBittorrent/BT_backup orphaned_dir: /qbittorrent/Orphaned cat: lidarr: /mnt/store/Torrent/FINISHED/LIDARR prowlarr: /mnt/store/Torrent/FINISHED/SAVE radarr: /mnt/store/Torrent/FINISHED/RADARR radarr-4k: /mnt/store/Torrent/FINISHED/RADARR4K radarr-anime: /mnt/store/Torrent/FINISHED/RADARRANIME radarr-standup: /mnt/store/Torrent/FINISHED/RADARRSTANDUP sonarr: /mnt/store/Torrent/FINISHED/SONARR sonarr-4k: /mnt/store/Torrent/FINISHED/SONARR4K sonarr-anime: /mnt/store/Torrent/FINISHED/SONARRANIME -< ZIM: /mnt/store/Kiwix -< SAVE: /mnt/store/Torrent/FINISHED/SAVE -< IMPORT: /mnt/store/Torrent/FINISHED/IMPORT -< COMPLETED: /mnt/store/Torrent/FINISHED/COMPLETED tracker: alpharatio.cc: tag: AlphaRatio avistaz: tag: Avistaz cathode-ray.tube: tag: CathodeRayTube mvgroup.org: tag: MVGroup torrentleech|tleechreload: tag: TorrentLeech archive.org: tag: InternetArchive openzim.org: tag: Zim coppersurfer.tk|arenabg.com|explodie.org|tfile.co|1337x.org|zer0day.to|i2p.rocks|ccc.de|nwps.ws|opentrackr.org: tag: Other share_limits: private: priority: 1 include_any_tags: - AlphaRatio - TorrentLeech categories: - -< COMPLETED max_ratio: 2.0 min_seeding_time: 14d max_seeding_time: 30d min_num_seeds: 2 last_active: 3d cleanup: true # save: # priority: 2 # categories: # - -< SAVE # max_ratio: 2.0 # min_seeding_time: 14d # max_seeding_time: 30d # min_num_seeds: 2 # last_active: 30d # cleanup: false # zim: # priority: 3 # categories: # - -< ZIM # max_ratio: 2.0 # min_seeding_time: 14d # max_seeding_time: 30d # min_num_seeds: 2 # last_active: 30d # cleanup: false default: priority: 999 include_any_tags: - Other categories: - -< COMPLETED max_seeding_time: 3d limit_upload_speed: 100 cleanup: true recyclebin: enabled: true empty_after_x_days: 7 save_torrents: true split_by_category: true orphaned: empty_after_x_days: 30 exclude_patterns: - /mnt/store/Torrent/QBITTORRENT/* - /mnt/store/Torrent/TORRENT/* - /mnt/store/Torrent/DOWNLOADING/* - '**/.DS_Store' - '**/Thumbs.db' - '**/@eaDir' - '**/*.!qB' - '**/*_unpackerred' max_orphaned_files_to_delete: 50 # apprise: # api_url: http://localhost:8000/notify # notify_url: "" # # webhooks: # error: apprise # run_start: apprise # run_end: apprise # function: # rem_orphaned: apprise # cleanup_dirs: apprise # tag_tracker_error: # share_limits: