== folders on media_a: all present
== folders on media_b: all present
== folders on media_c: made ['torrents', 'torrents/tv', 'torrents/movies', 'transmission', 'transmission/tv', 'transmission/movies']
== qBittorrent http://172.18.0.2:8080 (password: the deploy secret, read from the container's environment)
  POST http://172.18.0.2:8080/api/v2/auth/login -> 204 ''
  session cookie name: QBT_SID_8080
  GET http://172.18.0.2:8080/api/v2/app/preferences -> 200 {add_stopped_enabled, add_to_top_of_queue, add_trackers, add_trackers_enabled, add_trackers_from_url_enabled, add_trackers_url, add_trackers_url_list, alt_dl_limit, alt_up_limit, alternative_webui_enabled, alternative_webui_path, announce_ip, announce_port, announce_to_all_tiers, announce_to_all_trac}
  before: auto_tmm_enabled=True save_path=/mnt/felhom-drives/media_a/userdata/media/torrents temp_path_enabled=True temp_path=/mnt/felhom-drives/media_a/userdata/media/torrents/.temp
  POST http://172.18.0.2:8080/api/v2/app/setPreferences -> 200 ''
  GET http://172.18.0.2:8080/api/v2/app/preferences -> 200 {add_stopped_enabled, add_to_top_of_queue, add_trackers, add_trackers_enabled, add_trackers_from_url_enabled, add_trackers_url, add_trackers_url_list, alt_dl_limit, alt_up_limit, alternative_webui_enabled, alternative_webui_path, announce_ip, announce_port, announce_to_all_tiers, announce_to_all_trac}
  after : auto_tmm_enabled=True (a category's save path applies only in automatic mode)
  GET http://172.18.0.2:8080/api/v2/torrents/categories -> 200 {movies-drive-a, movies-drive-b, tv-drive-a, tv-drive-b}
  POST http://172.18.0.2:8080/api/v2/torrents/editCategory -> 200 ''
  POST http://172.18.0.2:8080/api/v2/torrents/editCategory -> 200 ''
  POST http://172.18.0.2:8080/api/v2/torrents/editCategory -> 200 ''
  POST http://172.18.0.2:8080/api/v2/torrents/editCategory -> 200 ''
  POST http://172.18.0.2:8080/api/v2/torrents/createCategory -> 200 ''
  POST http://172.18.0.2:8080/api/v2/torrents/createCategory -> 200 ''
  GET http://172.18.0.2:8080/api/v2/torrents/categories -> 200 {movies-drive-a, movies-drive-b, movies-drive-c, tv-drive-a, tv-drive-b, tv-drive-c}
  category movies-drive-a: savePath=/mnt/felhom-drives/media_a/userdata/media/torrents/movies downloadPath=/mnt/felhom-drives/media_a/userdata/media/torrents/.temp
  category movies-drive-b: savePath=/mnt/felhom-drives/media_b/userdata/media/torrents/movies downloadPath=/mnt/felhom-drives/media_b/userdata/media/torrents/.temp
  category movies-drive-c: savePath=/mnt/felhom-drives/media_c/userdata/media/torrents/movies downloadPath=/mnt/felhom-drives/media_c/userdata/media/torrents/.temp
  category tv-drive-a: savePath=/mnt/felhom-drives/media_a/userdata/media/torrents/tv downloadPath=/mnt/felhom-drives/media_a/userdata/media/torrents/.temp
  category tv-drive-b: savePath=/mnt/felhom-drives/media_b/userdata/media/torrents/tv downloadPath=/mnt/felhom-drives/media_b/userdata/media/torrents/.temp
  category tv-drive-c: savePath=/mnt/felhom-drives/media_c/userdata/media/torrents/tv downloadPath=/mnt/felhom-drives/media_c/userdata/media/torrents/.temp
== Transmission http://172.18.0.3:9091/transmission/rpc (password: the deploy secret, read from the container's environment)
  POST http://172.18.0.3:9091/transmission/rpc -> 409 '<h1>409: Conflict</h1><p>Your request had an invalid session_id header.</p><p>To fix this, follow these steps:<ol><li> 
  POST http://172.18.0.3:9091/transmission/rpc -> 200 {arguments, result}
  before: {"download-dir": "/mnt/felhom-drives/media_a/userdata/media/transmission/complete", "incomplete-dir": "/mnt/felhom-drives/media_a/userdata/media/transmission/incomplete", "incomplete-dir-enabled": false, "rename-partial-files": true}
  POST http://172.18.0.3:9091/transmission/rpc -> 409 '<h1>409: Conflict</h1><p>Your request had an invalid session_id header.</p><p>To fix this, follow these steps:<ol><li> 
  POST http://172.18.0.3:9091/transmission/rpc -> 200 {arguments, result}
  POST http://172.18.0.3:9091/transmission/rpc -> 409 '<h1>409: Conflict</h1><p>Your request had an invalid session_id header.</p><p>To fix this, follow these steps:<ol><li> 
  POST http://172.18.0.3:9091/transmission/rpc -> 200 {arguments, result}
  after : {"download-dir": "/mnt/felhom-drives/media_a/userdata/media/transmission/complete", "incomplete-dir-enabled": false, "rename-partial-files": true} (one incomplete folder for all torrents would be on drive A)
  POST http://172.18.0.3:9091/transmission/rpc -> 409 '<h1>409: Conflict</h1><p>Your request had an invalid session_id header.</p><p>To fix this, follow these steps:<ol><li> 
  POST http://172.18.0.3:9091/transmission/rpc -> 200 {arguments, result}
  probe Host: transmission:9091 -> HTTP 200 {'arguments': {'version': '4.1.3 (838877323f)'}, 'result': 'success'}
== sonarr http://172.18.0.5:8989/api/v3 (key: <ApiKey> in /config/config.xml, read from the config volume)
  GET http://172.18.0.5:8989/api/v3/tag -> 200 [list of 3]
  POST http://172.18.0.5:8989/api/v3/tag -> 201 {id, label}
  tags: {'driva-a': 3, 'drive-a': 1, 'drive-b': 2, 'drive-c': 4}
  GET http://172.18.0.5:8989/api/v3/rootfolder -> 200 [list of 2]
  POST http://172.18.0.5:8989/api/v3/rootfolder -> 201 {accessible, freeSpace, id, path, unmappedFolders}
  GET http://172.18.0.5:8989/api/v3/rootfolder -> 200 [list of 3]
  root folder: /mnt/felhom-drives/media_a/userdata/media/tv accessible=True freeSpace=69873070080
  root folder: /mnt/felhom-drives/media_b/userdata/media/tv accessible=True freeSpace=65554092032
  root folder: /mnt/felhom-drives/media_c/userdata/media/tv accessible=True freeSpace=49817907200
  GET http://172.18.0.5:8989/api/v3/downloadclient/schema -> 200 [list of 18]
  GET http://172.18.0.5:8989/api/v3/downloadclient -> 200 [list of 4]
  client qBittorrent drive-a: exists — left as it is
  client Transmission drive-a: exists — left as it is
  client qBittorrent drive-b: exists — left as it is
  client Transmission drive-b: exists — left as it is
  POST http://172.18.0.5:8989/api/v3/downloadclient -> 201 {configContract, enable, fields, id, implementation, implementationName, infoLink, name, priority, protocol, removeCompletedDownloads, removeFailedDownloads, tags}
  POST http://172.18.0.5:8989/api/v3/downloadclient -> 201 {configContract, enable, fields, id, implementation, implementationName, infoLink, name, priority, protocol, removeCompletedDownloads, removeFailedDownloads, tags}
  GET http://172.18.0.5:8989/api/v3/downloadclient -> 200 [list of 6]
  client qBittorrent drive-a: impl=QBittorrent enable=True tags=[1] host=qbittorrent category=tv-drive-a directory=None
  client qBittorrent drive-b: impl=QBittorrent enable=True tags=[2] host=qbittorrent category=tv-drive-b directory=None
  client qBittorrent drive-c: impl=QBittorrent enable=True tags=[4] host=qbittorrent category=tv-drive-c directory=None
  client Transmission drive-a: impl=Transmission enable=True tags=[1] host=transmission category= directory=/mnt/felhom-drives/media_a/userdata/media/transmission/tv
  client Transmission drive-b: impl=Transmission enable=True tags=[2] host=transmission category= directory=/mnt/felhom-drives/media_b/userdata/media/transmission/tv
  client Transmission drive-c: impl=Transmission enable=True tags=[4] host=transmission category= directory=/mnt/felhom-drives/media_c/userdata/media/transmission/tv
  GET http://172.18.0.5:8989/api/v3/config/mediamanagement -> 200 {autoUnmonitorPreviouslyDownloadedEpisodes, chmodFolder, chownGroup, copyUsingHardlinks, createEmptySeriesFolders, deleteEmptyFolders, downloadPropersAndRepacks, enableMediaInfo, episodeTitleRequired, extraFileExtensions, fileDate, id, importExtraFiles, minimumFreeSpaceWhenImporting, recycleBin, recy}
  before: minimumFreeSpaceWhenImporting=10240 MB, copyUsingHardlinks=True
  PUT http://172.18.0.5:8989/api/v3/config/mediamanagement/1 -> 202 {autoUnmonitorPreviouslyDownloadedEpisodes, chmodFolder, chownGroup, copyUsingHardlinks, createEmptySeriesFolders, deleteEmptyFolders, downloadPropersAndRepacks, enableMediaInfo, episodeTitleRequired, extraFileExtensions, fileDate, id, importExtraFiles, minimumFreeSpaceWhenImporting, recycleBin, recy}
  GET http://172.18.0.5:8989/api/v3/config/mediamanagement -> 200 {autoUnmonitorPreviouslyDownloadedEpisodes, chmodFolder, chownGroup, copyUsingHardlinks, createEmptySeriesFolders, deleteEmptyFolders, downloadPropersAndRepacks, enableMediaInfo, episodeTitleRequired, extraFileExtensions, fileDate, id, importExtraFiles, minimumFreeSpaceWhenImporting, recycleBin, recy}
  after : minimumFreeSpaceWhenImporting=10240 MB, copyUsingHardlinks=True (default kept)
== radarr http://172.18.0.7:7878/api/v3 (key: <ApiKey> in /config/config.xml, read from the config volume)
  GET http://172.18.0.7:7878/api/v3/tag -> 200 [list of 2]
  POST http://172.18.0.7:7878/api/v3/tag -> 201 {id, label}
  tags: {'drive-a': 1, 'drive-b': 2, 'drive-c': 3}
  GET http://172.18.0.7:7878/api/v3/rootfolder -> 200 [list of 2]
  POST http://172.18.0.7:7878/api/v3/rootfolder -> 201 {accessible, freeSpace, id, path, unmappedFolders}
  GET http://172.18.0.7:7878/api/v3/rootfolder -> 200 [list of 3]
  root folder: /mnt/felhom-drives/media_a/userdata/media/movies accessible=True freeSpace=69873070080
  root folder: /mnt/felhom-drives/media_b/userdata/media/movies accessible=True freeSpace=65554092032
  root folder: /mnt/felhom-drives/media_c/userdata/media/movies accessible=True freeSpace=49817907200
  GET http://172.18.0.7:7878/api/v3/downloadclient/schema -> 200 [list of 19]
  GET http://172.18.0.7:7878/api/v3/downloadclient -> 200 [list of 4]
  client qBittorrent drive-a: exists — left as it is
  client Transmission drive-a: exists — left as it is
  client qBittorrent drive-b: exists — left as it is
  client Transmission drive-b: exists — left as it is
  POST http://172.18.0.7:7878/api/v3/downloadclient -> 201 {configContract, enable, fields, id, implementation, implementationName, infoLink, name, priority, protocol, removeCompletedDownloads, removeFailedDownloads, tags}
  POST http://172.18.0.7:7878/api/v3/downloadclient -> 201 {configContract, enable, fields, id, implementation, implementationName, infoLink, name, priority, protocol, removeCompletedDownloads, removeFailedDownloads, tags}
  GET http://172.18.0.7:7878/api/v3/downloadclient -> 200 [list of 6]
  client qBittorrent drive-a: impl=QBittorrent enable=True tags=[1] host=qbittorrent category=movies-drive-a directory=None
  client qBittorrent drive-b: impl=QBittorrent enable=True tags=[2] host=qbittorrent category=movies-drive-b directory=None
  client qBittorrent drive-c: impl=QBittorrent enable=True tags=[3] host=qbittorrent category=movies-drive-c directory=None
  client Transmission drive-a: impl=Transmission enable=True tags=[1] host=transmission category= directory=/mnt/felhom-drives/media_a/userdata/media/transmission/movies
  client Transmission drive-b: impl=Transmission enable=True tags=[2] host=transmission category= directory=/mnt/felhom-drives/media_b/userdata/media/transmission/movies
  client Transmission drive-c: impl=Transmission enable=True tags=[3] host=transmission category= directory=/mnt/felhom-drives/media_c/userdata/media/transmission/movies
  GET http://172.18.0.7:7878/api/v3/config/mediamanagement -> 200 {autoRenameFolders, autoUnmonitorPreviouslyDownloadedMovies, chmodFolder, chownGroup, copyUsingHardlinks, createEmptyMovieFolders, deleteEmptyFolders, downloadPropersAndRepacks, enableMediaInfo, extraFileExtensions, fileDate, id, importExtraFiles, minimumFreeSpaceWhenImporting, pathsDefaultStatic, re}
  before: minimumFreeSpaceWhenImporting=10240 MB, copyUsingHardlinks=True
  PUT http://172.18.0.7:7878/api/v3/config/mediamanagement/1 -> 202 {autoRenameFolders, autoUnmonitorPreviouslyDownloadedMovies, chmodFolder, chownGroup, copyUsingHardlinks, createEmptyMovieFolders, deleteEmptyFolders, downloadPropersAndRepacks, enableMediaInfo, extraFileExtensions, fileDate, id, importExtraFiles, minimumFreeSpaceWhenImporting, pathsDefaultStatic, re}
  GET http://172.18.0.7:7878/api/v3/config/mediamanagement -> 200 {autoRenameFolders, autoUnmonitorPreviouslyDownloadedMovies, chmodFolder, chownGroup, copyUsingHardlinks, createEmptyMovieFolders, deleteEmptyFolders, downloadPropersAndRepacks, enableMediaInfo, extraFileExtensions, fileDate, id, importExtraFiles, minimumFreeSpaceWhenImporting, pathsDefaultStatic, re}
  after : minimumFreeSpaceWhenImporting=10240 MB, copyUsingHardlinks=True (default kept)
== done; Transmission reachable by its container name: True
== prowlarr http://172.18.0.13:9696/api/v1 (key: <ApiKey> in /config/config.xml, read from the config volume)
  GET http://172.18.0.13:9696/api/v1/applications/schema -> 200 [list of 7]
  GET http://172.18.0.13:9696/api/v1/applications -> 200 [list of 2]
  application Sonarr: exists — left as it is
  application Radarr: exists — left as it is
  GET http://172.18.0.13:9696/api/v1/applications -> 200 [list of 2]
  application Radarr: syncLevel=fullSync prowlarrUrl=http://prowlarr:9696 baseUrl=http://radarr:7878 syncCategories=[2000, 2010, 2020, 2030, 2040, 2045, 2050, 2060, 2070, 2080, 2090]
  application Sonarr: syncLevel=fullSync prowlarrUrl=http://prowlarr:9696 baseUrl=http://sonarr:8989 syncCategories=[5000, 5010, 5020, 5030, 5040, 5045, 5050, 5090]
  GET http://172.18.0.13:9696/api/v1/indexer -> 200 [list of 1]
  indexers in Prowlarr: ['nCore']
  POST http://172.18.0.13:9696/api/v1/command -> 201 {body, clientUserAgent, commandName, id, name, priority, queued, sendUpdatesToClient, started, stateChangeTime, status, trigger, updateScheduledTask}
  GET http://172.18.0.13:9696/api/v1/command/53 -> 200 {body, clientUserAgent, commandName, duration, ended, id, message, name, priority, queued, sendUpdatesToClient, started, stateChangeTime, status, trigger, updateScheduledTask}
  ApplicationIndexerSync -> status=completed result=None message=Completed
  GET http://172.18.0.5:8989/api/v3/indexer -> 200 [list of 1]
  sonarr now holds 1 indexer(s): [('nCore (Prowlarr)', 'Torznab')]
  GET http://172.18.0.7:7878/api/v3/indexer -> 200 [list of 1]
  radarr now holds 1 indexer(s): [('nCore (Prowlarr)', 'Torznab')]
== prowlarr part done
== plex http://172.18.0.12:32400 (token: the server's own PlexOnlineToken in Preferences.xml)
  GET http://172.18.0.12:32400/library/sections -> 200 {MediaContainer}
  PUT http://172.18.0.12:32400/library/sections/1?name=Movies&type=movie&agent=tv.plex.agents.movie&scanner=Plex+Movie&language=en-US&location=%2Fmnt%2Ffelhom-drives%2Fmedia_a%2Fuserdata%2Fmedia%2Fmovies&location=%2Fmnt%2Ffelhom-drives%2Fmedia_b%2Fuserdata%2Fmedia%2Fmovies&location=%2Fmnt%2Ffelhom-drives%2Fmedia_c%2Fuserdata%2Fmedia%2Fmovies -> 200 ''
  library Movies: added ['/mnt/felhom-drives/media_c/userdata/media/movies'] -> 200
  GET http://172.18.0.12:32400/library/sections/1/refresh -> 200 ''
  library Movies: scan started -> 200
  PUT http://172.18.0.12:32400/library/sections/2?name=TV+Shows&type=show&agent=tv.plex.agents.series&scanner=Plex+TV+Series&language=en-US&location=%2Fmnt%2Ffelhom-drives%2Fmedia_a%2Fuserdata%2Fmedia%2Ftv&location=%2Fmnt%2Ffelhom-drives%2Fmedia_b%2Fuserdata%2Fmedia%2Ftv&location=%2Fmnt%2Ffelhom-drives%2Fmedia_c%2Fuserdata%2Fmedia%2Ftv -> 200 ''
  library TV Shows: added ['/mnt/felhom-drives/media_c/userdata/media/tv'] -> 200
  GET http://172.18.0.12:32400/library/sections/2/refresh -> 200 ''
  library TV Shows: scan started -> 200
  GET http://172.18.0.12:32400/:/prefs -> 200 {MediaContainer}
  PUT http://172.18.0.12:32400/:/prefs?FSEventLibraryUpdatesEnabled=1 -> 200 ''
  pref FSEventLibraryUpdatesEnabled (R-1037: scan when a change is detected) -> 200
  GET http://172.18.0.12:32400/:/prefs -> 200 {MediaContainer}
  PUT http://172.18.0.12:32400/:/prefs?FSEventLibraryPartialScanEnabled=1 -> 200 ''
  pref FSEventLibraryPartialScanEnabled (R-1037: scan when a change is detected) -> 200
  GET http://172.18.0.12:32400/library/sections -> 200 {MediaContainer}
  GET http://172.18.0.12:32400/library/sections/1/all -> 200 {MediaContainer}
  library Movies: folders=['media_a', 'media_b', 'media_c'] items=['Felhom Probe Film', 'Hope', 'Matchbox the Movie', 'Who']
  GET http://172.18.0.12:32400/library/sections/2/all -> 200 {MediaContainer}
  library TV Shows: folders=['media_a', 'media_b', 'media_c'] items=['American Horror Story', 'Avatar: Seven Havens', 'Felhom Probe Show', 'Slow Horses']
  POST http://172.18.0.14:8096/Users/AuthenticateByName -> 200 {AccessToken, ServerId, SessionInfo, User}
== jellyfin http://172.18.0.14:8096 (an admin session: the box made the first admin itself, so it holds the password)
  GET http://172.18.0.14:8096/Auth/Keys -> 200 {Items, StartIndex, TotalRecordCount}
  POST http://172.18.0.14:8096/Auth/Keys?app=felhom -> 204 ''
  API key for the box (POST /Auth/Keys?app=felhom) -> 204 (needs an admin session; without one, one household step)
  GET http://172.18.0.14:8096/Library/VirtualFolders -> 200 [list of 2]
  POST http://172.18.0.14:8096/Library/VirtualFolders/Paths?refreshLibrary=false -> 204 ''
  library Movies: added /mnt/felhom-drives/media_c/userdata/media/movies -> 204
  POST http://172.18.0.14:8096/Library/VirtualFolders/Paths?refreshLibrary=false -> 204 ''
  library TV Shows: added /mnt/felhom-drives/media_c/userdata/media/tv -> 204
  POST http://172.18.0.14:8096/Library/Refresh -> 204 ''
  scan -> 204
  GET http://172.18.0.14:8096/Library/VirtualFolders -> 200 [list of 2]
  library Movies: folders=['media_a', 'media_b', 'media_c']
  library TV Shows: folders=['media_a', 'media_b', 'media_c']
  GET http://172.18.0.14:8096/Items?Recursive=true&IncludeItemTypes=Series,Movie -> 200 {Items, StartIndex, TotalRecordCount}
  items: ['Amerikai Horror Story', 'Avatar: Seven Havens', 'Felhom Probe Film (2026)', 'Felhom Probe Show (2026)', 'Hope - Remény', 'Matchbox', 'Roger nyúl a pácban', 'Utolsó befutók']
== all parts done
