diff --git a/documentation/audits/media-build-2026-10-15/G/G-PREDICTIONS.md b/documentation/audits/media-build-2026-10-15/G/G-PREDICTIONS.md new file mode 100644 index 00000000..99f0e850 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G-PREDICTIONS.md @@ -0,0 +1,21 @@ +# Part G predictions — written before the new controller and the marked templates reach Tester 1 (2026-10-15 ~10:00 CEST) + +G1 (existing apps move to the marker binds): after the sync and „restart now", Sonarr, Radarr, Plex and Jellyfin bind +media_a/b/c at the same paths as before (A from the template's own line, B and C from the override) — so nothing Sonarr or +Radarr stored changes and Plex/Jellyfin keep every item. qBittorrent and Transmission bind ONLY media/torrents and +media/transmission per drive (narrower than the drill's whole media folder) — their torrents' save paths are inside, so +they keep seeding. Plex and Jellyfin additionally get /media (drive A, the template's line) — unused by the libraries. +The wiring run changes nothing in the apps (K2 made them ready) except possibly the Prowlarr link (already there). + +G2 (Media D added): the drive card raises the notice; „restart now" recreates the six apps with D bound; the wiring adds D's +folders/categories/root folders/clients/Plex+Jellyfin library folders; a second wiring run writes nothing. + +G3 (Media B pulled): nothing lost (as K1). The file browser lets go of B at the next sync (dead → not bound); the notice says +„removed". On return: the notice says „returned", the file browser is recreated at once (no I/O error), „restart now" makes +every app see B; no household step. + +G4 (safe removal of Media D with a torrent): only D's torrents pause; the apps are recreated without D before the unmount; +the drive stays registered (removed); after detach + re-attach it is recognised by itself; after „restart now" the torrents +resume. + +G5 (fresh Plex, no code): gated; the claim box on the app page; a real code → claimed → the gate opens by the probe. diff --git a/documentation/audits/media-build-2026-10-15/G/G0-filesig-start.tsv b/documentation/audits/media-build-2026-10-15/G/G0-filesig-start.tsv new file mode 100644 index 00000000..fcfe5f0a --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G0-filesig-start.tsv @@ -0,0 +1,69 @@ +/mnt/felhom-drives/media_a/userdata/media/tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv 909464483 4194364 2 1791997622 +/mnt/felhom-drives/media_a/userdata/media/tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv 720261766 4194368 2 1791997651 +/mnt/felhom-drives/media_a/userdata/media/tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv 829645981 4194375 2 1791997623 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv 909464483 4194364 2 1791997622 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e01.1080p.web.h264-grace.nfo 497 4194376 1 1791997577 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e01.1080p.web.h264-grace.sample.mkv 35166429 4194366 1 1791997623 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.mkv 3789544605 4194398 1 1791997839 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.nfo 62 4194400 1 1791997834 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/slow.horses.s06e03.1080p.web.h264-cakes.mkv 3931160378 4194385 1 1791997887 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/slow.horses.s06e03.1080p.web.h264-cakes.nfo 2728 4194367 1 1791997882 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e03.1080p.web.h264-cakes-sample.mkv 85809338 4194392 1 1791997778 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/slow.horses.s06e02.proper.1080p.web.h264-ethel.nfo 1023 4194397 1 1791997846 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL.mkv 3758255491 4194369 1 1791997854 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/Sample/slow.horses.s06e02.proper.1080p.web.h264-ethel.sample.mkv 77743753 4194383 1 1791997852 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv 720261766 4194368 2 1791997651 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e03.1080p.web.h264-grace.nfo 492 4194377 1 1791997591 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e03.1080p.web.h264-grace.sample.mkv 21739818 4194370 1 1791997622 +/mnt/felhom-drives/media_a/userdata/media/torrents/movies/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.nfo 602 4194405 1 1791997982 +/mnt/felhom-drives/media_a/userdata/media/torrents/movies/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv 4697542077 4194391 2 1791997988 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/slow.horses.s06e04.1080p.web.h264-cakes.mkv 4039934637 4194396 1 1791997987 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/slow.horses.s06e04.1080p.web.h264-cakes.nfo 2730 4194399 1 1791997757 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e04.1080p.web.h264-cakes-sample.mkv 94200139 4194395 1 1791997773 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/slow.horses.s06e01.1080p.web.h264-cakes.mkv 3859110437 4194387 1 1791997961 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/slow.horses.s06e01.1080p.web.h264-cakes.nfo 2693 4194388 1 1791997744 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e01.1080p.web.h264-cakes-sample.mkv 104128605 4194390 1 1791997759 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e02.1080p.web.h264-grace.nfo 497 4194374 1 1791997576 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv 829645981 4194375 2 1791997623 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e02.1080p.web.h264-grace.sample.mkv 31210978 4194373 1 1791997609 +/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv 2819947717 4194408 1 1791998428 +/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.nfo 8091 4194409 1 1791998340 +/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Sample/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY-Sample.mkv 22742740 4194411 1 1791998422 +/mnt/felhom-drives/media_a/userdata/media/movies/Hope (2026)/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv 4697542077 4194391 2 1791997988 +/mnt/felhom-drives/media_b/userdata/media/torrents/movies/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv 3393846457 1048578 2 1791998022 +/mnt/felhom-drives/media_b/userdata/media/torrents/movies/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.nfo 619 1048579 1 1791998019 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 68 131101 1 1791997602 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E01.13.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1314062473 131100 2 1791997680 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E03.Rauhnacht.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 813589489 131110 2 1791997659 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 68 131113 1 1791997627 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E07.The.Baddest.Witch.of.Them.All.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 956532263 393221 2 1791997699 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 67 393223 1 1791997690 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E05.Date.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 969653267 393218 2 1791997719 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E05.Date.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo 77 393220 1 1791997712 +/mnt/felhom-drives/media_b/userdata/media/movies/Matchbox the Movie (2026)/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv 3393846457 1048578 2 1791998022 +/mnt/felhom-drives/media_b/userdata/media/movies/WHO (2026)/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv 2819947717 2097156 1 1791998428 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1164079593 131107 2 1791997676 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1314062473 131100 2 1791997680 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 913481011 131112 2 1791997757 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 956532263 393221 2 1791997699 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 813589489 131110 2 1791997659 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1274167804 131103 2 1791997733 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 969653267 393218 2 1791997719 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1149433990 262146 2 1791997741 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.mkv 3789544605 524295 1 1791997839 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E01.1080p.WEB.H264-CAKES.mkv 3859110437 524298 1 1791997961 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E04.1080p.WEB.H264-CAKES.mkv 4039934637 524299 1 1791997987 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL.mkv 3758255491 524296 1 1791997854 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E03.1080p.WEB.H264-CAKES.mkv 3931160378 524297 1 1791997887 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E02.1.13.AM.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1274167804 131103 2 1791997733 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 68 131104 1 1791997605 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E04.Is.That.All.There.Is.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1164079593 131107 2 1791997676 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E04.Is.That.All.There.Is.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo 67 131108 1 1791997615 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E08.Hell.No.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1149433990 262146 2 1791997741 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 67 262147 1 1791997643 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E06.The.Return.of.Devils.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 913481011 131112 2 1791997757 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E06.The.Return.of.Devils.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo 93 131114 1 1791997633 +/mnt/felhom-drives/media_c/userdata/media/tv/Felhom Probe Show (2026)/Season 01/Felhom Probe Show (2026) - S01E01.mkv 145093 655382 1 1792011968 +/mnt/felhom-drives/media_c/userdata/media/transmission/tv/k3-own-bytes-trans/data.bin 3000000 655393 1 1792012185 +/mnt/felhom-drives/media_c/userdata/media/movies/Felhom Probe Film (2026)/Felhom Probe Film (2026).mkv 145093 655383 1 1792011968 +/mnt/felhom-drives/media_c/userdata/media/torrents/tv/k3-own-bytes-qbit/data.bin 3000000 655391 1 1792012185 diff --git a/documentation/audits/media-build-2026-10-15/G/G0-mounts-before.txt b/documentation/audits/media-build-2026-10-15/G/G0-mounts-before.txt new file mode 100644 index 00000000..dbf40d30 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G0-mounts-before.txt @@ -0,0 +1,8 @@ +sonarr started=2026-10-15T02:47:48 binds=['/mnt/felhom-drives/media_a/userdata/media', '/mnt/felhom-drives/media_b/userdata/media', '/mnt/felhom-drives/media_c/userdata/media'] dead=[] +radarr started=2026-10-15T02:47:46 binds=['/mnt/felhom-drives/media_a/userdata/media', '/mnt/felhom-drives/media_b/userdata/media', '/mnt/felhom-drives/media_c/userdata/media'] dead=[] +qbittorrent started=2026-10-15T02:47:45 binds=['/mnt/felhom-drives/media_a/userdata/media', '/mnt/felhom-drives/media_b/userdata/media', '/mnt/felhom-drives/media_c/userdata/media'] dead=[] +transmission started=2026-10-15T02:47:51 binds=['/mnt/felhom-drives/media_a/userdata/media', '/mnt/felhom-drives/media_b/userdata/media', '/mnt/felhom-drives/media_c/userdata/media', '/watch'] dead=[] +plex started=2026-10-15T02:47:40 binds=['/mnt/felhom-drives/media_a/userdata/media:ro', '/mnt/felhom-drives/media_b/userdata/media:ro', '/mnt/felhom-drives/media_c/userdata/media:ro'] dead=[] +jellyfin started=2026-10-15T02:47:27 binds=['/mnt/felhom-drives/media_a/userdata/media:ro', '/mnt/felhom-drives/media_b/userdata/media:ro', '/mnt/felhom-drives/media_c/userdata/media:ro'] dead=[] +prowlarr started=2026-10-15T02:47:43 binds=[] dead=[] +filebrowser started=2026-10-14T21:23:30 binds=['/srv/adatlemez', '/srv/media_a', '/srv/media_b', '/srv/media_c'] dead=[] diff --git a/documentation/audits/media-build-2026-10-15/G/G0-state-before.txt b/documentation/audits/media-build-2026-10-15/G/G0-state-before.txt new file mode 100644 index 00000000..4def7b8b --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G0-state-before.txt @@ -0,0 +1,21 @@ +--- 07:57:50 state + plex movie Felhom Probe Film items=1 parts=1 unavailable=0 + plex movie Hope items=1 parts=1 unavailable=0 + plex movie Matchbox the Movie items=1 parts=1 unavailable=0 + plex movie Who items=1 parts=1 unavailable=0 + plex show American Horror Story items=8 parts=8 unavailable=0 + plex show Avatar: Seven Havens items=3 parts=3 unavailable=0 + plex show Felhom Probe Show items=1 parts=1 unavailable=0 + plex show Slow Horses items=5 parts=5 unavailable=0 + plex probe: viewCount=4 + jellyfin: {'Series': 4, 'Movie': 4, 'Episode': 17} ['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'] + jellyfin probe: Played=True + sonarr Avatar: Seven Havens monitored=True files=3 path=media_a + sonarr American Horror Story monitored=True files=8 path=media_b + sonarr Slow Horses monitored=True files=5 path=media_b + Avatar: Seven Havens episodes monitored=13/13 hasFile=3 + American Horror Story episodes monitored=13/166 hasFile=8 + Slow Horses episodes monitored=6/39 hasFile=5 + radarr Hope monitored=True files=True path=media_a + radarr Matchbox the Movie monitored=True files=True path=media_b + radarr WHO monitored=True files=True path=media_b diff --git a/documentation/audits/media-build-2026-10-15/G/G0b-controller-rc1.txt b/documentation/audits/media-build-2026-10-15/G/G0b-controller-rc1.txt new file mode 100644 index 00000000..ddfc5034 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G0b-controller-rc1.txt @@ -0,0 +1,4 @@ +# G0b — the new controller by hand on Tester 1 (Tier 0), 2026-10-15T09:58:22+02:00 +previous: gitea.dooplex.hu/admin/felhom-controller:0.312.0 (rollback: write it back and restart the bootstrap unit) +gitea.dooplex.hu/admin/felhom-controller:0.313.0-rc.1 +gitea.dooplex.hu/admin/felhom-controller:0.313.0-rc.1 Up 25 seconds (healthy) diff --git a/documentation/audits/media-build-2026-10-15/G/G1a-mirror.txt b/documentation/audits/media-build-2026-10-15/G/G1a-mirror.txt new file mode 100644 index 00000000..9b55943b --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G1a-mirror.txt @@ -0,0 +1,11 @@ +mirror main 65893762 DRILL media build: the seven media templates = live + the media_library marker (per-drive binds by the controller, no literal drive paths); Plex: no code at install, accept-JSON probe, ADVERTISE_IP; Transmission incomplete folder off at start — drill catalog only (Tester 1 proof, Part G) + +drill repo main: 6589376 +09:59:09 POST /api/sync -> 200 {"ok": true, "data": {"ok": true, "updated": ["emby", "jellyfin", "plex", "qbittorrent", "radarr", "sonarr", "transmission"], "message": "Sablonok frissítve — frissítve: emby, jellyfin, plex, qbittorrent, radarr, sonarr, transmission", "catalog_moved": true}, "message": "Sablonok frissítve — frissít +sonarr marker: 1 override: 0 literal-drive-lines: 0 +radarr marker: 1 override: 0 literal-drive-lines: 0 +qbittorrent marker: 1 override: 0 literal-drive-lines: 0 +transmission marker: 1 override: 0 literal-drive-lines: 0 +plex marker: 1 override: 0 literal-drive-lines: 0 +jellyfin marker: 1 override: 0 literal-drive-lines: 0 + diff --git a/documentation/audits/media-build-2026-10-15/G/G1b-restart-now.txt b/documentation/audits/media-build-2026-10-15/G/G1b-restart-now.txt new file mode 100644 index 00000000..8bd87d31 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G1b-restart-now.txt @@ -0,0 +1,2 @@ +09:59:50 GET /api/storage/media/status -> 200 {"data": {"pending": false, "drives": null, "apps": ["jellyfin", "plex", "qbittorrent", "radarr", "sonarr", "transmission"]}, "ok": true} +10:00:20 POST /api/storage/media/restart now -> 200 {"data": {"failed": null}, "ok": true} (30s) diff --git a/documentation/audits/media-build-2026-10-15/G/G1c-mounts-after.txt b/documentation/audits/media-build-2026-10-15/G/G1c-mounts-after.txt new file mode 100644 index 00000000..d5dfeaec --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G1c-mounts-after.txt @@ -0,0 +1,64 @@ +sonarr started=2026-10-15T08:00:12 binds=['/mnt/felhom-drives/adatlemez/userdata/media', '/mnt/felhom-drives/media_a/userdata/media', '/mnt/felhom-drives/media_b/userdata/media', '/mnt/felhom-drives/media_c/userdata/media'] dead=[] +radarr started=2026-10-15T08:00:08 binds=['/mnt/felhom-drives/adatlemez/userdata/media', '/mnt/felhom-drives/media_a/userdata/media', '/mnt/felhom-drives/media_b/userdata/media', '/mnt/felhom-drives/media_c/userdata/media'] dead=[] +qbittorrent started=2026-10-15T08:00:03 binds=['/downloads', '/mnt/felhom-drives/adatlemez/userdata/media/torrents', '/mnt/felhom-drives/media_a/userdata/media/torrents', '/mnt/felhom-drives/media_b/userdata/media/torrents', '/mnt/felhom-drives/media_c/userdata/media/torrents'] dead=[] +transmission started=2026-10-15T08:00:18 binds=['/downloads', '/mnt/felhom-drives/adatlemez/userdata/media/transmission', '/mnt/felhom-drives/media_a/userdata/media/transmission', '/mnt/felhom-drives/media_b/userdata/media/transmission', '/mnt/felhom-drives/media_c/userdata/media/transmission', '/watch'] dead=[] +plex started=2026-10-15T08:00:01 binds=['/media:ro', '/mnt/felhom-drives/adatlemez/userdata/media:ro', '/mnt/felhom-drives/media_a/userdata/media:ro', '/mnt/felhom-drives/media_b/userdata/media:ro', '/mnt/felhom-drives/media_c/userdata/media:ro'] dead=[] +jellyfin started=2026-10-15T07:59:51 binds=['/media:ro', '/mnt/felhom-drives/adatlemez/userdata/media:ro', '/mnt/felhom-drives/media_a/userdata/media:ro', '/mnt/felhom-drives/media_b/userdata/media:ro', '/mnt/felhom-drives/media_c/userdata/media:ro'] dead=[] +prowlarr started=2026-10-15T02:47:43 binds=[] dead=[] +filebrowser started=2026-10-15T08:00:20 binds=['/srv/adatlemez', '/srv/media_a', '/srv/media_b', '/srv/media_c'] dead=[] +override jellyfin: +# felhom-controller media_library — one bind per PRESENT drive (R-1023). Rewritten before every start; do not edit. +services: + jellyfin: + volumes: + - /mnt/felhom-drives/adatlemez/userdata/media:/mnt/felhom-drives/adatlemez/userdata/media:ro + - /mnt/felhom-drives/media_a/userdata/media:/mnt/felhom-drives/media_a/userdata/media:ro + - /mnt/felhom-drives/media_b/userdata/media:/mnt/felhom-drives/media_b/userdata/media:ro + - /mnt/felhom-drives/media_c/userdata/media:/mnt/felhom-drives/media_c/userdata/media:ro + +override plex: +# felhom-controller media_library — one bind per PRESENT drive (R-1023). Rewritten before every start; do not edit. +services: + plex: + volumes: + - /mnt/felhom-drives/adatlemez/userdata/media:/mnt/felhom-drives/adatlemez/userdata/media:ro + - /mnt/felhom-drives/media_a/userdata/media:/mnt/felhom-drives/media_a/userdata/media:ro + - /mnt/felhom-drives/media_b/userdata/media:/mnt/felhom-drives/media_b/userdata/media:ro + - /mnt/felhom-drives/media_c/userdata/media:/mnt/felhom-drives/media_c/userdata/media:ro + +override qbittorrent: +# felhom-controller media_library — one bind per PRESENT drive (R-1023). Rewritten before every start; do not edit. +services: + qbittorrent: + volumes: + - /mnt/felhom-drives/adatlemez/userdata/media/torrents:/mnt/felhom-drives/adatlemez/userdata/media/torrents + - /mnt/felhom-drives/media_b/userdata/media/torrents:/mnt/felhom-drives/media_b/userdata/media/torrents + - /mnt/felhom-drives/media_c/userdata/media/torrents:/mnt/felhom-drives/media_c/userdata/media/torrents + +override radarr: +# felhom-controller media_library — one bind per PRESENT drive (R-1023). Rewritten before every start; do not edit. +services: + radarr: + volumes: + - /mnt/felhom-drives/adatlemez/userdata/media:/mnt/felhom-drives/adatlemez/userdata/media + - /mnt/felhom-drives/media_b/userdata/media:/mnt/felhom-drives/media_b/userdata/media + - /mnt/felhom-drives/media_c/userdata/media:/mnt/felhom-drives/media_c/userdata/media + +override sonarr: +# felhom-controller media_library — one bind per PRESENT drive (R-1023). Rewritten before every start; do not edit. +services: + sonarr: + volumes: + - /mnt/felhom-drives/adatlemez/userdata/media:/mnt/felhom-drives/adatlemez/userdata/media + - /mnt/felhom-drives/media_b/userdata/media:/mnt/felhom-drives/media_b/userdata/media + - /mnt/felhom-drives/media_c/userdata/media:/mnt/felhom-drives/media_c/userdata/media + +override transmission: +# felhom-controller media_library — one bind per PRESENT drive (R-1023). Rewritten before every start; do not edit. +services: + transmission: + volumes: + - /mnt/felhom-drives/adatlemez/userdata/media/transmission:/mnt/felhom-drives/adatlemez/userdata/media/transmission + - /mnt/felhom-drives/media_b/userdata/media/transmission:/mnt/felhom-drives/media_b/userdata/media/transmission + - /mnt/felhom-drives/media_c/userdata/media/transmission:/mnt/felhom-drives/media_c/userdata/media/transmission + diff --git a/documentation/audits/media-build-2026-10-15/G/G1d-controller-log.txt b/documentation/audits/media-build-2026-10-15/G/G1d-controller-log.txt new file mode 100644 index 00000000..15199659 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G1d-controller-log.txt @@ -0,0 +1,15 @@ +2026/10/15 07:59:51 [INFO] [stacks] media_library jellyfin: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_a/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media_c/userdata/media]; drives +2026/10/15 07:59:52 [INFO] [stacks] Stack jellyfin: started again: jellyfin 2026-10-15T02:47:27.574084569Z → 2026-10-15T07:59:51.766245881Z +2026/10/15 07:59:52 [INFO] [stacks] media_library plex: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_a/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media_c/userdata/media]; drives not +2026/10/15 08:00:01 [INFO] [stacks] Stack plex: started again: plex 2026-10-15T02:47:40.875946188Z → 2026-10-15T08:00:01.374594476Z +2026/10/15 08:00:02 [INFO] [stacks] media_library qbittorrent: per-drive binds 3 [/mnt/felhom-drives/adatlemez/userdata/media/torrents, /mnt/felhom-drives/media_b/userdata/media/torrents, /mnt/felhom-drives/media_c/userdata/media/torrents]; drives not bound: [ +2026/10/15 08:00:04 [INFO] [stacks] Stack qbittorrent: started again: qbittorrent 2026-10-15T02:47:45.10853806Z → 2026-10-15T08:00:03.536068777Z +2026/10/15 08:00:04 [INFO] [stacks] media_library radarr: per-drive binds 3 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media_c/userdata/media]; drives not bound: [] +2026/10/15 08:00:08 [INFO] [stacks] Stack radarr: started again: radarr 2026-10-15T02:47:46.673133587Z → 2026-10-15T08:00:08.327012872Z +2026/10/15 08:00:09 [INFO] [stacks] media_library sonarr: per-drive binds 3 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media_c/userdata/media]; drives not bound: [] +2026/10/15 08:00:13 [INFO] [stacks] Stack sonarr: started again: sonarr 2026-10-15T02:47:48.217148314Z → 2026-10-15T08:00:12.713886351Z +2026/10/15 08:00:13 [INFO] [stacks] media_library transmission: per-drive binds 3 [/mnt/felhom-drives/adatlemez/userdata/media/transmission, /mnt/felhom-drives/media_b/userdata/media/transmission, /mnt/felhom-drives/media_c/userdata/media/transmission]; drives +2026/10/15 08:00:19 [INFO] [stacks] Stack transmission: started again: transmission 2026-10-15T02:47:51.372514312Z → 2026-10-15T08:00:18.94340332Z +2026/10/15 08:00:20 [INFO] [media] media apps restarted (the household's „restart now"); failed: [] +2026/10/15 08:01:19 [INFO] [media] wiring the drives into the media apps (a media app came up: transmission) +2026/10/15 08:01:25 [INFO] [mediawire] 4 drive(s) wired in 6.227s: folders=done(0) qbittorrent=error(0) transmission=unchanged(0) sonarr=done(13) radarr=done(13) prowlarr=unchanged(0) plex=done(2) jellyfin=done(3) diff --git a/documentation/audits/media-build-2026-10-15/G/G1e-wiring-status.txt b/documentation/audits/media-build-2026-10-15/G/G1e-wiring-status.txt new file mode 100644 index 00000000..42b32804 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G1e-wiring-status.txt @@ -0,0 +1,8 @@ +{"app": "folders", "state": "done"} +{"app": "qbittorrent", "state": "error", "detail": "login: HTTP 204 "} +{"app": "transmission", "state": "unchanged"} +{"app": "sonarr", "state": "done", "wrote": ["tag adatlemez", "tag media-a", "tag media-b", "tag media-c", "rootfolder /mnt/felhom-drives/adatlemez/userdata/media/tv", "downloadclient qBittorrent adatlemez", "downloadclient Transmission adatlemez", "downloadclient qBittorrent media-a", "downloadclient Transmission media-a", "downloadclient qBittorrent media-b", "downloadclient Transmission media-b", "downloadclient qBittorrent media-c", "downloadclient Transmission media-c"]} +{"app": "radarr", "state": "done", "wrote": ["tag adatlemez", "tag media-a", "tag media-b", "tag media-c", "rootfolder /mnt/felhom-drives/adatlemez/userdata/media/movies", "downloadclient qBittorrent adatlemez", "downloadclient Transmission adatlemez", "downloadclient qBittorrent media-a", "downloadclient Transmission media-a", "downloadclient qBittorrent media-b", "downloadclient Transmission media-b", "downloadclient qBittorrent media-c", "downloadclient Transmission media-c"]} +{"app": "prowlarr", "state": "unchanged"} +{"app": "plex", "state": "done", "wrote": ["library Movies +1 folder(s), scan", "library TV Shows +1 folder(s), scan"]} +{"app": "jellyfin", "state": "done", "wrote": ["library Movies + /mnt/felhom-drives/adatlemez/userdata/media/movies", "library TV Shows + /mnt/felhom-drives/adatlemez/userdata/media/tv", "scan"]} diff --git a/documentation/audits/media-build-2026-10-15/G/G1f-state-after.txt b/documentation/audits/media-build-2026-10-15/G/G1f-state-after.txt new file mode 100644 index 00000000..155751b1 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G1f-state-after.txt @@ -0,0 +1,21 @@ +--- 08:02:13 state + plex movie Felhom Probe Film items=1 parts=1 unavailable=0 + plex movie Hope items=1 parts=1 unavailable=0 + plex movie Matchbox the Movie items=1 parts=1 unavailable=0 + plex movie Who items=1 parts=1 unavailable=0 + plex show American Horror Story items=8 parts=8 unavailable=0 + plex show Avatar: Seven Havens items=3 parts=3 unavailable=0 + plex show Felhom Probe Show items=1 parts=1 unavailable=0 + plex show Slow Horses items=5 parts=5 unavailable=0 + plex probe: viewCount=4 + jellyfin: {'Series': 4, 'Movie': 4, 'Episode': 17} ['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'] + jellyfin probe: Played=True + sonarr Avatar: Seven Havens monitored=True files=3 path=media_a + sonarr American Horror Story monitored=True files=8 path=media_b + sonarr Slow Horses monitored=True files=5 path=media_b + Avatar: Seven Havens episodes monitored=13/13 hasFile=3 + American Horror Story episodes monitored=13/166 hasFile=8 + Slow Horses episodes monitored=6/39 hasFile=5 + radarr Hope monitored=True files=True path=media_a + radarr Matchbox the Movie monitored=True files=True path=media_b + radarr WHO monitored=True files=True path=media_b diff --git a/documentation/audits/media-build-2026-10-15/G/G1g-filesig-diff.txt b/documentation/audits/media-build-2026-10-15/G/G1g-filesig-diff.txt new file mode 100644 index 00000000..e69de29b diff --git a/documentation/audits/media-build-2026-10-15/G/G1g-filesig.tsv b/documentation/audits/media-build-2026-10-15/G/G1g-filesig.tsv new file mode 100644 index 00000000..fcfe5f0a --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G1g-filesig.tsv @@ -0,0 +1,69 @@ +/mnt/felhom-drives/media_a/userdata/media/tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv 909464483 4194364 2 1791997622 +/mnt/felhom-drives/media_a/userdata/media/tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv 720261766 4194368 2 1791997651 +/mnt/felhom-drives/media_a/userdata/media/tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv 829645981 4194375 2 1791997623 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv 909464483 4194364 2 1791997622 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e01.1080p.web.h264-grace.nfo 497 4194376 1 1791997577 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e01.1080p.web.h264-grace.sample.mkv 35166429 4194366 1 1791997623 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.mkv 3789544605 4194398 1 1791997839 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.nfo 62 4194400 1 1791997834 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/slow.horses.s06e03.1080p.web.h264-cakes.mkv 3931160378 4194385 1 1791997887 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/slow.horses.s06e03.1080p.web.h264-cakes.nfo 2728 4194367 1 1791997882 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e03.1080p.web.h264-cakes-sample.mkv 85809338 4194392 1 1791997778 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/slow.horses.s06e02.proper.1080p.web.h264-ethel.nfo 1023 4194397 1 1791997846 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL.mkv 3758255491 4194369 1 1791997854 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/Sample/slow.horses.s06e02.proper.1080p.web.h264-ethel.sample.mkv 77743753 4194383 1 1791997852 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv 720261766 4194368 2 1791997651 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e03.1080p.web.h264-grace.nfo 492 4194377 1 1791997591 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e03.1080p.web.h264-grace.sample.mkv 21739818 4194370 1 1791997622 +/mnt/felhom-drives/media_a/userdata/media/torrents/movies/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.nfo 602 4194405 1 1791997982 +/mnt/felhom-drives/media_a/userdata/media/torrents/movies/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv 4697542077 4194391 2 1791997988 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/slow.horses.s06e04.1080p.web.h264-cakes.mkv 4039934637 4194396 1 1791997987 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/slow.horses.s06e04.1080p.web.h264-cakes.nfo 2730 4194399 1 1791997757 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e04.1080p.web.h264-cakes-sample.mkv 94200139 4194395 1 1791997773 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/slow.horses.s06e01.1080p.web.h264-cakes.mkv 3859110437 4194387 1 1791997961 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/slow.horses.s06e01.1080p.web.h264-cakes.nfo 2693 4194388 1 1791997744 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e01.1080p.web.h264-cakes-sample.mkv 104128605 4194390 1 1791997759 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e02.1080p.web.h264-grace.nfo 497 4194374 1 1791997576 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv 829645981 4194375 2 1791997623 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e02.1080p.web.h264-grace.sample.mkv 31210978 4194373 1 1791997609 +/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv 2819947717 4194408 1 1791998428 +/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.nfo 8091 4194409 1 1791998340 +/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Sample/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY-Sample.mkv 22742740 4194411 1 1791998422 +/mnt/felhom-drives/media_a/userdata/media/movies/Hope (2026)/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv 4697542077 4194391 2 1791997988 +/mnt/felhom-drives/media_b/userdata/media/torrents/movies/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv 3393846457 1048578 2 1791998022 +/mnt/felhom-drives/media_b/userdata/media/torrents/movies/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.nfo 619 1048579 1 1791998019 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 68 131101 1 1791997602 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E01.13.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1314062473 131100 2 1791997680 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E03.Rauhnacht.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 813589489 131110 2 1791997659 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 68 131113 1 1791997627 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E07.The.Baddest.Witch.of.Them.All.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 956532263 393221 2 1791997699 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 67 393223 1 1791997690 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E05.Date.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 969653267 393218 2 1791997719 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E05.Date.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo 77 393220 1 1791997712 +/mnt/felhom-drives/media_b/userdata/media/movies/Matchbox the Movie (2026)/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv 3393846457 1048578 2 1791998022 +/mnt/felhom-drives/media_b/userdata/media/movies/WHO (2026)/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv 2819947717 2097156 1 1791998428 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1164079593 131107 2 1791997676 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1314062473 131100 2 1791997680 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 913481011 131112 2 1791997757 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 956532263 393221 2 1791997699 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 813589489 131110 2 1791997659 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1274167804 131103 2 1791997733 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 969653267 393218 2 1791997719 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1149433990 262146 2 1791997741 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.mkv 3789544605 524295 1 1791997839 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E01.1080p.WEB.H264-CAKES.mkv 3859110437 524298 1 1791997961 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E04.1080p.WEB.H264-CAKES.mkv 4039934637 524299 1 1791997987 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL.mkv 3758255491 524296 1 1791997854 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E03.1080p.WEB.H264-CAKES.mkv 3931160378 524297 1 1791997887 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E02.1.13.AM.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1274167804 131103 2 1791997733 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 68 131104 1 1791997605 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E04.Is.That.All.There.Is.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1164079593 131107 2 1791997676 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E04.Is.That.All.There.Is.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo 67 131108 1 1791997615 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E08.Hell.No.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1149433990 262146 2 1791997741 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 67 262147 1 1791997643 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E06.The.Return.of.Devils.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 913481011 131112 2 1791997757 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E06.The.Return.of.Devils.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo 93 131114 1 1791997633 +/mnt/felhom-drives/media_c/userdata/media/tv/Felhom Probe Show (2026)/Season 01/Felhom Probe Show (2026) - S01E01.mkv 145093 655382 1 1792011968 +/mnt/felhom-drives/media_c/userdata/media/transmission/tv/k3-own-bytes-trans/data.bin 3000000 655393 1 1792012185 +/mnt/felhom-drives/media_c/userdata/media/movies/Felhom Probe Film (2026)/Felhom Probe Film (2026).mkv 145093 655383 1 1792011968 +/mnt/felhom-drives/media_c/userdata/media/torrents/tv/k3-own-bytes-qbit/data.bin 3000000 655391 1 1792012185 diff --git a/documentation/audits/media-build-2026-10-15/G/G1h-wire-twice.txt b/documentation/audits/media-build-2026-10-15/G/G1h-wire-twice.txt new file mode 100644 index 00000000..7bb71631 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G1h-wire-twice.txt @@ -0,0 +1,18 @@ +10:03:43 run 1: POST /api/storage/media/wire -> 200 + {"app": "folders", "state": "done"} + {"app": "qbittorrent", "state": "done", "wrote": ["editCategory tv-adatlemez", "editCategory movies-adatlemez", "editCategory tv-media-a", "editCategory movies-media-a", "editCategory tv-media-b", "editCategory movies-media-b", "editCategory tv-media-c", "editCategory movies-media-c"]} + {"app": "transmission", "state": "unchanged"} + {"app": "sonarr", "state": "unchanged"} + {"app": "radarr", "state": "unchanged"} + {"app": "prowlarr", "state": "unchanged"} + {"app": "plex", "state": "unchanged"} + {"app": "jellyfin", "state": "unchanged"} +10:03:44 run 2: POST /api/storage/media/wire -> 200 + {"app": "folders", "state": "done"} + {"app": "qbittorrent", "state": "unchanged"} + {"app": "transmission", "state": "unchanged"} + {"app": "sonarr", "state": "unchanged"} + {"app": "radarr", "state": "unchanged"} + {"app": "prowlarr", "state": "unchanged"} + {"app": "plex", "state": "unchanged"} + {"app": "jellyfin", "state": "unchanged"} diff --git a/documentation/audits/media-build-2026-10-15/G/G2a-disk-added.txt b/documentation/audits/media-build-2026-10-15/G/G2a-disk-added.txt new file mode 100644 index 00000000..226ca4da --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G2a-disk-added.txt @@ -0,0 +1,4 @@ +# G2a — Media D added to VM 341 (demo-hp), 2026-10-15T10:04:18+02:00 +Formatting '/mnt/hdd_1/images/341/vm-341-disk-6.raw', fmt=raw size=21474836480 preallocation=off +scsi5: successfully created disk 'nvme-scratch:341/vm-341-disk-6.raw,backup=0,size=20G' +scsi5: nvme-scratch:341/vm-341-disk-6.raw,backup=0,size=20G diff --git a/documentation/audits/media-build-2026-10-15/G/G2b-enrol.txt b/documentation/audits/media-build-2026-10-15/G/G2b-enrol.txt new file mode 100644 index 00000000..321b9c88 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G2b-enrol.txt @@ -0,0 +1,5 @@ +10:04:34 candidates -> 200 ['/dev/sdd'] +10:04:34 POST /api/storage/init {"device": "/dev/sdd", "fstype": "ext4", "mount_name": "media_d", "label": "Media D", "set_default": false, "confirmed": false, "durable_id": ""} -> 200 {"data": {"phase": "formatting", "started": true}, "ok": true} +10:04:36 status -> 200 {"device": "/dev/sdd", "durable_id": "", "error": "", "opsign": "", "phase": "mounting", "reason": "", "started_at": "2026-10-15T08:04:34.223676776Z", "updated_at": "2026-10-15T08:04:34.630480623Z", "where": "/mnt/media_d"} +10:04:38 status -> 200 {"device": "/dev/sdd", "durable_id": "", "error": "", "opsign": "", "phase": "done", "reason": "", "started_at": "2026-10-15T08:04:34.223676776Z", "updated_at": "2026-10-15T08:04:36.715007118Z", "where": "/mnt/felhom-drives/media_d"} +RESULT done diff --git a/documentation/audits/media-build-2026-10-15/G/G2c-notice.txt b/documentation/audits/media-build-2026-10-15/G/G2c-notice.txt new file mode 100644 index 00000000..e1b0cd57 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G2c-notice.txt @@ -0,0 +1,23 @@ +10:04:44 GET /api/storage/media/status -> 200 +{ + "pending": true, + "drives": [ + { + "path": "/mnt/felhom-drives/media_d", + "label": "Media D", + "change": "added", + "changed_at": "2026-10-15T08:04:36.676045308Z", + "restarted": false + } + ], + "apps": [ + "jellyfin", + "plex", + "qbittorrent", + "radarr", + "sonarr", + "transmission" + ], + "stale": null +} +storage page has the notice container: True diff --git a/documentation/audits/media-build-2026-10-15/G/G2d-restart-and-wire.txt b/documentation/audits/media-build-2026-10-15/G/G2d-restart-and-wire.txt new file mode 100644 index 00000000..50815f60 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G2d-restart-and-wire.txt @@ -0,0 +1,14 @@ +10:05:21 restart now -> 200 {"data": {"failed": null}, "ok": true} (29s) +10:05:31 wired_at 2026-10-15T08:03:44Z pending False [('folders', 'done', 0), ('qbittorrent', 'unchanged', 0), ('transmission', 'unchanged', 0), ('sonarr', 'unchanged', 0), ('radarr', 'unchanged', 0), ('prowlarr', 'unchanged', 0), ('plex', 'unchanged', 0), ('jellyfin', 'unchanged', 0)] +10:05:36 second wiring run: [('folders', 'done'), ('qbittorrent', 'done'), ('transmission', 'unchanged'), ('sonarr', 'done'), ('radarr', 'done'), ('prowlarr', 'unchanged'), ('plex', 'done'), ('jellyfin', 'done')] +--- (the run at 10:05:36 above was the FIRST wiring after Media D: what it wrote, from the box's record) + folders done + qbittorrent done ['createCategory tv-media-d', 'createCategory movies-media-d'] + transmission unchanged + sonarr done ['tag media-d', 'rootfolder /mnt/felhom-drives/media_d/userdata/media/tv', 'downloadclient qBittorrent media-d', 'downloadclient Transmission media-d'] + radarr done ['tag media-d', 'rootfolder /mnt/felhom-drives/media_d/userdata/media/movies', 'downloadclient qBittorrent media-d', 'downloadclient Transmission media-d'] + prowlarr unchanged + plex done ['library Movies +1 folder(s), scan', 'library TV Shows +1 folder(s), scan'] + jellyfin done ['library Movies + /mnt/felhom-drives/media_d/userdata/media/movies', 'library TV Shows + /mnt/felhom-drives/media_d/userdata/media/tv', 'scan'] +10:06:28 the automatic run after the restart: 2026-10-15T08:06:22Z [('folders', 'done', 0), ('qbittorrent', 'unchanged', 0), ('transmission', 'unchanged', 0), ('sonarr', 'unchanged', 0), ('radarr', 'unchanged', 0), ('prowlarr', 'unchanged', 0), ('plex', 'unchanged', 0), ('jellyfin', 'unchanged', 0)] +10:06:29 one more run: [('folders', 'done', 0), ('qbittorrent', 'unchanged', 0), ('transmission', 'unchanged', 0), ('sonarr', 'unchanged', 0), ('radarr', 'unchanged', 0), ('prowlarr', 'unchanged', 0), ('plex', 'unchanged', 0), ('jellyfin', 'unchanged', 0)] diff --git a/documentation/audits/media-build-2026-10-15/G/G3a-notice-removed.txt b/documentation/audits/media-build-2026-10-15/G/G3a-notice-removed.txt new file mode 100644 index 00000000..272f137a --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G3a-notice-removed.txt @@ -0,0 +1 @@ +10:06:55 status: {"pending": true, "drives": [{"path": "/mnt/felhom-drives/media_b", "label": "Media B", "change": "removed", "changed_at": "2026-10-15T08:06:50.144345194Z", "restarted": false}, {"path": "/mnt/felhom-drives/media_d", "label": "Media D", "change": "added", "changed_at": "2026-10-15T08:04:36.676045308Z", "restarted": true}], "stale": ["jellyfin", "plex", "qbittorrent", "radarr", "sonarr", "transmission"]} diff --git a/documentation/audits/media-build-2026-10-15/G/G3b-mounts-while-gone.txt b/documentation/audits/media-build-2026-10-15/G/G3b-mounts-while-gone.txt new file mode 100644 index 00000000..454869f8 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G3b-mounts-while-gone.txt @@ -0,0 +1,8 @@ +sonarr started=2026-10-15T08:05:13 binds=['/mnt/felhom-drives/adatlemez/userdata/media', '/mnt/felhom-drives/media_a/userdata/media', '/mnt/felhom-drives/media_b/userdata/media', '/mnt/felhom-drives/media_c/userdata/media', '/mnt/felhom-drives/media_d/userdata/media'] dead=['/mnt/felhom-drives/media_b/userdata/media'] +radarr started=2026-10-15T08:05:09 binds=['/mnt/felhom-drives/adatlemez/userdata/media', '/mnt/felhom-drives/media_a/userdata/media', '/mnt/felhom-drives/media_b/userdata/media', '/mnt/felhom-drives/media_c/userdata/media', '/mnt/felhom-drives/media_d/userdata/media'] dead=['/mnt/felhom-drives/media_b/userdata/media'] +qbittorrent started=2026-10-15T08:05:05 binds=['/downloads', '/mnt/felhom-drives/adatlemez/userdata/media/torrents', '/mnt/felhom-drives/media_a/userdata/media/torrents', '/mnt/felhom-drives/media_b/userdata/media/torrents', '/mnt/felhom-drives/media_c/userdata/media/torrents', '/mnt/felhom-drives/media_d/userdata/media/torrents'] dead=['/mnt/felhom-drives/media_b/userdata/media/torrents'] +transmission started=2026-10-15T08:05:19 binds=['/downloads', '/mnt/felhom-drives/adatlemez/userdata/media/transmission', '/mnt/felhom-drives/media_a/userdata/media/transmission', '/mnt/felhom-drives/media_b/userdata/media/transmission', '/mnt/felhom-drives/media_c/userdata/media/transmission', '/mnt/felhom-drives/media_d/userdata/media/transmission', '/watch'] dead=['/mnt/felhom-drives/media_b/userdata/media/transmission'] +plex started=2026-10-15T08:05:02 binds=['/media:ro', '/mnt/felhom-drives/adatlemez/userdata/media:ro', '/mnt/felhom-drives/media_a/userdata/media:ro', '/mnt/felhom-drives/media_b/userdata/media:ro', '/mnt/felhom-drives/media_c/userdata/media:ro', '/mnt/felhom-drives/media_d/userdata/media:ro'] dead=['/mnt/felhom-drives/media_b/userdata/media'] +jellyfin started=2026-10-15T08:04:52 binds=['/media:ro', '/mnt/felhom-drives/adatlemez/userdata/media:ro', '/mnt/felhom-drives/media_a/userdata/media:ro', '/mnt/felhom-drives/media_b/userdata/media:ro', '/mnt/felhom-drives/media_c/userdata/media:ro', '/mnt/felhom-drives/media_d/userdata/media:ro'] dead=['/mnt/felhom-drives/media_b/userdata/media'] +prowlarr started=2026-10-15T02:47:43 binds=[] dead=[] +filebrowser started=2026-10-15T08:06:50 binds=['/srv/adatlemez', '/srv/media_a', '/srv/media_c', '/srv/media_d'] dead=[] diff --git a/documentation/audits/media-build-2026-10-15/G/G3c-state-while-gone.txt b/documentation/audits/media-build-2026-10-15/G/G3c-state-while-gone.txt new file mode 100644 index 00000000..8cccfee6 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G3c-state-while-gone.txt @@ -0,0 +1,21 @@ +--- 08:07:40 state + plex movie Felhom Probe Film items=1 parts=1 unavailable=0 + plex movie Hope items=1 parts=1 unavailable=0 + plex movie Matchbox the Movie items=1 parts=1 unavailable=0 + plex movie Who items=1 parts=1 unavailable=0 + plex show American Horror Story items=8 parts=8 unavailable=0 + plex show Avatar: Seven Havens items=3 parts=3 unavailable=0 + plex show Felhom Probe Show items=1 parts=1 unavailable=0 + plex show Slow Horses items=5 parts=5 unavailable=0 + plex probe: viewCount=4 + jellyfin: {'Series': 4, 'Movie': 4, 'Episode': 17} ['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'] + jellyfin probe: Played=True + sonarr Avatar: Seven Havens monitored=True files=3 path=media_a + sonarr American Horror Story monitored=True files=8 path=media_b + sonarr Slow Horses monitored=True files=5 path=media_b + Avatar: Seven Havens episodes monitored=13/13 hasFile=3 + American Horror Story episodes monitored=13/166 hasFile=8 + Slow Horses episodes monitored=6/39 hasFile=5 + radarr Hope monitored=True files=True path=media_a + radarr Matchbox the Movie monitored=True files=True path=media_b + radarr WHO monitored=True files=True path=media_b diff --git a/documentation/audits/media-build-2026-10-15/G/G3d-returned.txt b/documentation/audits/media-build-2026-10-15/G/G3d-returned.txt new file mode 100644 index 00000000..b91f2520 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G3d-returned.txt @@ -0,0 +1,12 @@ +notice says returned at 10:08:25 +sonarr started=2026-10-15T08:05:13 binds=['/mnt/felhom-drives/adatlemez/userdata/media', '/mnt/felhom-drives/media_a/userdata/media', '/mnt/felhom-drives/media_b/userdata/media', '/mnt/felhom-drives/media_c/userdata/media', '/mnt/felhom-drives/media_d/userdata/media'] dead=['/mnt/felhom-drives/media_b/userdata/media'] +plex started=2026-10-15T08:05:02 binds=['/media:ro', '/mnt/felhom-drives/adatlemez/userdata/media:ro', '/mnt/felhom-drives/media_a/userdata/media:ro', '/mnt/felhom-drives/media_b/userdata/media:ro', '/mnt/felhom-drives/media_c/userdata/media:ro', '/mnt/felhom-drives/media_d/userdata/media:ro'] dead=['/mnt/felhom-drives/media_b/userdata/media'] +filebrowser started=2026-10-15T08:08:21 binds=['/srv/adatlemez', '/srv/media_a', '/srv/media_b', '/srv/media_c', '/srv/media_d'] dead=[] +American Horror Story +Slow Horses +2026/10/15 08:06:50 [INFO] [settings] media drive event: /mnt/felhom-drives/media_b removed — the media apps must restart to see it +2026/10/15 08:06:50 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_b is removed or dead — not bound this pass +2026/10/15 08:06:50 [INFO] [web] FileBrowser mounts synced (recreated) — 5 storage path(s), config updated +2026/10/15 08:08:21 [INFO] [gate] drive RETURNED /mnt/felhom-drives/media_b — re-attached + restarted gate-stopped apps +2026/10/15 08:08:21 [INFO] [settings] media drive event: /mnt/felhom-drives/media_b returned — the media apps must restart to see it +2026/10/15 08:08:21 [INFO] [web] FileBrowser mounts synced (recreated) — 5 storage path(s), config updated diff --git a/documentation/audits/media-build-2026-10-15/G/G3e-restart-after-return.txt b/documentation/audits/media-build-2026-10-15/G/G3e-restart-after-return.txt new file mode 100644 index 00000000..8c05294f --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G3e-restart-after-return.txt @@ -0,0 +1,12 @@ +10:09:29 restart now -> 200 {"data": {"failed": null}, "ok": true} (29s) +10:09:29 after: {"pending": false, "stale": null} [('Media B', 'returned', True), ('Media D', 'added', True)] +sonarr started=2026-10-15T08:09:22 dead=[] +radarr started=2026-10-15T08:09:18 dead=[] +qbittorrent started=2026-10-15T08:09:13 dead=[] +transmission started=2026-10-15T08:09:27 dead=[] +plex started=2026-10-15T08:09:10 dead=[] +jellyfin started=2026-10-15T08:09:01 dead=[] +prowlarr started=2026-10-15T02:47:43 dead=[] +filebrowser started=2026-10-15T08:09:28 dead=[] +STATE IDENTICAL to the morning baseline +FILES IDENTICAL (69) diff --git a/documentation/audits/media-build-2026-10-15/G/G3f-state-after-return.txt b/documentation/audits/media-build-2026-10-15/G/G3f-state-after-return.txt new file mode 100644 index 00000000..6c4c1e80 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G3f-state-after-return.txt @@ -0,0 +1,21 @@ +--- 08:09:34 state + plex movie Felhom Probe Film items=1 parts=1 unavailable=0 + plex movie Hope items=1 parts=1 unavailable=0 + plex movie Matchbox the Movie items=1 parts=1 unavailable=0 + plex movie Who items=1 parts=1 unavailable=0 + plex show American Horror Story items=8 parts=8 unavailable=0 + plex show Avatar: Seven Havens items=3 parts=3 unavailable=0 + plex show Felhom Probe Show items=1 parts=1 unavailable=0 + plex show Slow Horses items=5 parts=5 unavailable=0 + plex probe: viewCount=4 + jellyfin: {'Series': 4, 'Movie': 4, 'Episode': 17} ['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'] + jellyfin probe: Played=True + sonarr Avatar: Seven Havens monitored=True files=3 path=media_a + sonarr American Horror Story monitored=True files=8 path=media_b + sonarr Slow Horses monitored=True files=5 path=media_b + Avatar: Seven Havens episodes monitored=13/13 hasFile=3 + American Horror Story episodes monitored=13/166 hasFile=8 + Slow Horses episodes monitored=6/39 hasFile=5 + radarr Hope monitored=True files=True path=media_a + radarr Matchbox the Movie monitored=True files=True path=media_b + radarr WHO monitored=True files=True path=media_b diff --git a/documentation/audits/media-build-2026-10-15/G/G3g-filesig-diff.txt b/documentation/audits/media-build-2026-10-15/G/G3g-filesig-diff.txt new file mode 100644 index 00000000..e69de29b diff --git a/documentation/audits/media-build-2026-10-15/G/G3g-filesig.tsv b/documentation/audits/media-build-2026-10-15/G/G3g-filesig.tsv new file mode 100644 index 00000000..fcfe5f0a --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G3g-filesig.tsv @@ -0,0 +1,69 @@ +/mnt/felhom-drives/media_a/userdata/media/tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv 909464483 4194364 2 1791997622 +/mnt/felhom-drives/media_a/userdata/media/tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv 720261766 4194368 2 1791997651 +/mnt/felhom-drives/media_a/userdata/media/tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv 829645981 4194375 2 1791997623 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv 909464483 4194364 2 1791997622 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e01.1080p.web.h264-grace.nfo 497 4194376 1 1791997577 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e01.1080p.web.h264-grace.sample.mkv 35166429 4194366 1 1791997623 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.mkv 3789544605 4194398 1 1791997839 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.nfo 62 4194400 1 1791997834 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/slow.horses.s06e03.1080p.web.h264-cakes.mkv 3931160378 4194385 1 1791997887 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/slow.horses.s06e03.1080p.web.h264-cakes.nfo 2728 4194367 1 1791997882 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e03.1080p.web.h264-cakes-sample.mkv 85809338 4194392 1 1791997778 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/slow.horses.s06e02.proper.1080p.web.h264-ethel.nfo 1023 4194397 1 1791997846 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL.mkv 3758255491 4194369 1 1791997854 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/Sample/slow.horses.s06e02.proper.1080p.web.h264-ethel.sample.mkv 77743753 4194383 1 1791997852 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv 720261766 4194368 2 1791997651 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e03.1080p.web.h264-grace.nfo 492 4194377 1 1791997591 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e03.1080p.web.h264-grace.sample.mkv 21739818 4194370 1 1791997622 +/mnt/felhom-drives/media_a/userdata/media/torrents/movies/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.nfo 602 4194405 1 1791997982 +/mnt/felhom-drives/media_a/userdata/media/torrents/movies/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv 4697542077 4194391 2 1791997988 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/slow.horses.s06e04.1080p.web.h264-cakes.mkv 4039934637 4194396 1 1791997987 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/slow.horses.s06e04.1080p.web.h264-cakes.nfo 2730 4194399 1 1791997757 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e04.1080p.web.h264-cakes-sample.mkv 94200139 4194395 1 1791997773 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/slow.horses.s06e01.1080p.web.h264-cakes.mkv 3859110437 4194387 1 1791997961 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/slow.horses.s06e01.1080p.web.h264-cakes.nfo 2693 4194388 1 1791997744 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e01.1080p.web.h264-cakes-sample.mkv 104128605 4194390 1 1791997759 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e02.1080p.web.h264-grace.nfo 497 4194374 1 1791997576 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv 829645981 4194375 2 1791997623 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e02.1080p.web.h264-grace.sample.mkv 31210978 4194373 1 1791997609 +/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv 2819947717 4194408 1 1791998428 +/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.nfo 8091 4194409 1 1791998340 +/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Sample/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY-Sample.mkv 22742740 4194411 1 1791998422 +/mnt/felhom-drives/media_a/userdata/media/movies/Hope (2026)/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv 4697542077 4194391 2 1791997988 +/mnt/felhom-drives/media_b/userdata/media/torrents/movies/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv 3393846457 1048578 2 1791998022 +/mnt/felhom-drives/media_b/userdata/media/torrents/movies/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.nfo 619 1048579 1 1791998019 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 68 131101 1 1791997602 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E01.13.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1314062473 131100 2 1791997680 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E03.Rauhnacht.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 813589489 131110 2 1791997659 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 68 131113 1 1791997627 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E07.The.Baddest.Witch.of.Them.All.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 956532263 393221 2 1791997699 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 67 393223 1 1791997690 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E05.Date.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 969653267 393218 2 1791997719 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E05.Date.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo 77 393220 1 1791997712 +/mnt/felhom-drives/media_b/userdata/media/movies/Matchbox the Movie (2026)/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv 3393846457 1048578 2 1791998022 +/mnt/felhom-drives/media_b/userdata/media/movies/WHO (2026)/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv 2819947717 2097156 1 1791998428 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1164079593 131107 2 1791997676 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1314062473 131100 2 1791997680 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 913481011 131112 2 1791997757 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 956532263 393221 2 1791997699 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 813589489 131110 2 1791997659 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1274167804 131103 2 1791997733 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 969653267 393218 2 1791997719 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1149433990 262146 2 1791997741 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.mkv 3789544605 524295 1 1791997839 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E01.1080p.WEB.H264-CAKES.mkv 3859110437 524298 1 1791997961 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E04.1080p.WEB.H264-CAKES.mkv 4039934637 524299 1 1791997987 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL.mkv 3758255491 524296 1 1791997854 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E03.1080p.WEB.H264-CAKES.mkv 3931160378 524297 1 1791997887 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E02.1.13.AM.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1274167804 131103 2 1791997733 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 68 131104 1 1791997605 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E04.Is.That.All.There.Is.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1164079593 131107 2 1791997676 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E04.Is.That.All.There.Is.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo 67 131108 1 1791997615 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E08.Hell.No.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1149433990 262146 2 1791997741 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 67 262147 1 1791997643 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E06.The.Return.of.Devils.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 913481011 131112 2 1791997757 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E06.The.Return.of.Devils.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo 93 131114 1 1791997633 +/mnt/felhom-drives/media_c/userdata/media/tv/Felhom Probe Show (2026)/Season 01/Felhom Probe Show (2026) - S01E01.mkv 145093 655382 1 1792011968 +/mnt/felhom-drives/media_c/userdata/media/transmission/tv/k3-own-bytes-trans/data.bin 3000000 655393 1 1792012185 +/mnt/felhom-drives/media_c/userdata/media/movies/Felhom Probe Film (2026)/Felhom Probe Film (2026).mkv 145093 655383 1 1792011968 +/mnt/felhom-drives/media_c/userdata/media/torrents/tv/k3-own-bytes-qbit/data.bin 3000000 655391 1 1792012185 diff --git a/documentation/audits/media-build-2026-10-15/G/G4a-torrents-created.txt b/documentation/audits/media-build-2026-10-15/G/G4a-torrents-created.txt new file mode 100644 index 00000000..ed59f731 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G4a-torrents-created.txt @@ -0,0 +1,25 @@ +qbit add -> {'added_torrent_ids': ['16ceae1409303ab17c6096a1b8903dffcf42c422'], 'failure_count': 0, 'pending_count': 0, 'success_count': 1} +trans add -> {"arguments": {"torrent-added": {"hashString": "d6acbccf51e00212372d251e380fb6c6d9f6c06c", "id": 10, "name": "k3-own-bytes-trans"}}, "result": "success"} + ('qbit', 'media_a', 'Avatar.Seven.Havens.S01E01.108', 'queuedUP', 1) + ('qbit', 'media_a', 'Avatar.Seven.Havens.S01E03.108', 'queuedUP', 1) + ('qbit', 'media_a', 'Hope.2026.720p.AMZN.WEB-DL.DDP', 'queuedUP', 1) + ('qbit', 'media_a', 'Slow.Horses.S06E02.PROPER.1080', 'stalledUP', 1) + ('qbit', 'media_a', 'Slow.Horses.S06E03.1080p.WEB.H', 'queuedUP', 1) + ('qbit', 'media_a', 'Slow.Horses.S06E05.Sayonara.10', 'queuedUP', 1) + ('qbit', 'media_b', 'American.Horror.Story.S13E01.1', 'queuedUP', 1) + ('qbit', 'media_b', 'American.Horror.Story.S13E03.1', 'queuedUP', 1) + ('qbit', 'media_b', 'American.Horror.Story.S13E05.1', 'queuedUP', 1) + ('qbit', 'media_b', 'American.Horror.Story.S13E07.1', 'queuedUP', 1) + ('qbit', 'media_b', 'Matchbox.The.Movie.2026.720p.A', 'queuedUP', 1) + ('qbit', 'media_c', 'k3-own-bytes-qbit', 'stalledUP', 1) + ('qbit', 'media_d', 'k3-own-bytes-qbit', 'stalledUP', 1) + ('trans', 'media_a', 'Avatar.Seven.Havens.S01E02.108', 'seeding', 1.0) + ('trans', 'media_a', 'Slow.Horses.S06E01.1080p.WEB.H', 'seeding', 1.0) + ('trans', 'media_a', 'Slow.Horses.S06E04.1080p.WEB.H', 'seeding', 1.0) + ('trans', 'media_a', 'Who.2026.720p.DSNP.WEB-DL.DDP5', 'seeding', 1.0) + ('trans', 'media_b', 'American.Horror.Story.S13E02.1', 'seeding', 1.0) + ('trans', 'media_b', 'American.Horror.Story.S13E04.1', 'seeding', 1.0) + ('trans', 'media_b', 'American.Horror.Story.S13E06.1', 'seeding', 1.0) + ('trans', 'media_b', 'American.Horror.Story.S13E08.1', 'seeding', 1.0) + ('trans', 'media_c', 'k3-own-bytes-trans', 'seeding', 1.0) + ('trans', 'media_d', 'k3-own-bytes-trans', 'seeding', 1.0) diff --git a/documentation/audits/media-build-2026-10-15/G/G4b-torrents-before.txt b/documentation/audits/media-build-2026-10-15/G/G4b-torrents-before.txt new file mode 100644 index 00000000..be2b85d6 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G4b-torrents-before.txt @@ -0,0 +1,24 @@ +--- 08:10:19 + ('qbit', 'media_a', 'Avatar.Seven.Havens.S01E01.108', 'queuedUP', 1) + ('qbit', 'media_a', 'Avatar.Seven.Havens.S01E03.108', 'queuedUP', 1) + ('qbit', 'media_a', 'Hope.2026.720p.AMZN.WEB-DL.DDP', 'queuedUP', 1) + ('qbit', 'media_a', 'Slow.Horses.S06E02.PROPER.1080', 'stalledUP', 1) + ('qbit', 'media_a', 'Slow.Horses.S06E03.1080p.WEB.H', 'queuedUP', 1) + ('qbit', 'media_a', 'Slow.Horses.S06E05.Sayonara.10', 'queuedUP', 1) + ('qbit', 'media_b', 'American.Horror.Story.S13E01.1', 'queuedUP', 1) + ('qbit', 'media_b', 'American.Horror.Story.S13E03.1', 'queuedUP', 1) + ('qbit', 'media_b', 'American.Horror.Story.S13E05.1', 'queuedUP', 1) + ('qbit', 'media_b', 'American.Horror.Story.S13E07.1', 'queuedUP', 1) + ('qbit', 'media_b', 'Matchbox.The.Movie.2026.720p.A', 'queuedUP', 1) + ('qbit', 'media_c', 'k3-own-bytes-qbit', 'stalledUP', 1) + ('qbit', 'media_d', 'k3-own-bytes-qbit', 'stalledUP', 1) + ('trans', 'media_a', 'Avatar.Seven.Havens.S01E02.108', 'seeding', 1.0) + ('trans', 'media_a', 'Slow.Horses.S06E01.1080p.WEB.H', 'seeding', 1.0) + ('trans', 'media_a', 'Slow.Horses.S06E04.1080p.WEB.H', 'seeding', 1.0) + ('trans', 'media_a', 'Who.2026.720p.DSNP.WEB-DL.DDP5', 'seeding', 1.0) + ('trans', 'media_b', 'American.Horror.Story.S13E02.1', 'seeding', 1.0) + ('trans', 'media_b', 'American.Horror.Story.S13E04.1', 'seeding', 1.0) + ('trans', 'media_b', 'American.Horror.Story.S13E06.1', 'seeding', 1.0) + ('trans', 'media_b', 'American.Horror.Story.S13E08.1', 'seeding', 1.0) + ('trans', 'media_c', 'k3-own-bytes-trans', 'seeding', 1.0) + ('trans', 'media_d', 'k3-own-bytes-trans', 'seeding', 1.0) diff --git a/documentation/audits/media-build-2026-10-15/G/G4c-safe-removal.txt b/documentation/audits/media-build-2026-10-15/G/G4c-safe-removal.txt new file mode 100644 index 00000000..11c0ff3c --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G4c-safe-removal.txt @@ -0,0 +1,10 @@ +10:10:51 POST /api/storage/eject media_d -> 200 {"data": {"vmid": 9201, "ejected": "/mnt/media_d", "dependent_guests": null}, "ok": true} (32s) +10:10:52 notice: [('Media B', 'returned', True, None), ('Media D', 'returned', False, True)] +sonarr let go of media_d +radarr let go of media_d +qbittorrent let go of media_d +transmission let go of media_d +plex let go of media_d +jellyfin let go of media_d +prowlarr let go of media_d +filebrowser let go of media_d diff --git a/documentation/audits/media-build-2026-10-15/G/G4d-torrents-after-removal.txt b/documentation/audits/media-build-2026-10-15/G/G4d-torrents-after-removal.txt new file mode 100644 index 00000000..6e0b0afb --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G4d-torrents-after-removal.txt @@ -0,0 +1,24 @@ +--- 08:10:54 + ('qbit', 'media_a', 'Avatar.Seven.Havens.S01E01.108', 'stalledUP', 1) + ('qbit', 'media_a', 'Avatar.Seven.Havens.S01E03.108', 'stalledUP', 1) + ('qbit', 'media_a', 'Hope.2026.720p.AMZN.WEB-DL.DDP', 'queuedUP', 1) + ('qbit', 'media_a', 'Slow.Horses.S06E02.PROPER.1080', 'queuedUP', 1) + ('qbit', 'media_a', 'Slow.Horses.S06E03.1080p.WEB.H', 'stalledUP', 1) + ('qbit', 'media_a', 'Slow.Horses.S06E05.Sayonara.10', 'queuedUP', 1) + ('qbit', 'media_b', 'American.Horror.Story.S13E01.1', 'queuedUP', 1) + ('qbit', 'media_b', 'American.Horror.Story.S13E03.1', 'queuedUP', 1) + ('qbit', 'media_b', 'American.Horror.Story.S13E05.1', 'queuedUP', 1) + ('qbit', 'media_b', 'American.Horror.Story.S13E07.1', 'queuedUP', 1) + ('qbit', 'media_b', 'Matchbox.The.Movie.2026.720p.A', 'queuedUP', 1) + ('qbit', 'media_c', 'k3-own-bytes-qbit', 'queuedUP', 1) + ('qbit', 'media_d', 'k3-own-bytes-qbit', 'missingFiles', 0) + ('trans', 'media_a', 'Avatar.Seven.Havens.S01E02.108', 'seeding', 1.0) + ('trans', 'media_a', 'Slow.Horses.S06E01.1080p.WEB.H', 'seeding', 1.0) + ('trans', 'media_a', 'Slow.Horses.S06E04.1080p.WEB.H', 'seeding', 1.0) + ('trans', 'media_a', 'Who.2026.720p.DSNP.WEB-DL.DDP5', 'seeding', 1.0) + ('trans', 'media_b', 'American.Horror.Story.S13E02.1', 'seeding', 1.0) + ('trans', 'media_b', 'American.Horror.Story.S13E04.1', 'seeding', 1.0) + ('trans', 'media_b', 'American.Horror.Story.S13E06.1', 'seeding', 1.0) + ('trans', 'media_b', 'American.Horror.Story.S13E08.1', 'seeding', 1.0) + ('trans', 'media_c', 'k3-own-bytes-trans', 'seeding', 1.0) + ('trans', 'media_d', 'k3-own-bytes-trans', 'stopped ERR No data found! Ensure your dri', 1.0) diff --git a/documentation/audits/media-build-2026-10-15/G/G4e-log.txt b/documentation/audits/media-build-2026-10-15/G/G4e-log.txt new file mode 100644 index 00000000..767b0dcc --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G4e-log.txt @@ -0,0 +1,41 @@ +2026/10/15 08:06:20 [INFO] [media] wiring the drives into the media apps (a media app came up: transmission) +2026/10/15 08:06:22 [INFO] [mediawire] 5 drive(s) wired in 1.805s: folders=done(0) qbittorrent=unchanged(0) transmission=unchanged(0) sonarr=unchanged(0) radarr=unchanged(0) prowlarr=unchanged(0) plex=unchanged(0) jellyfin=unchang +2026/10/15 08:06:28 [INFO] [media] wiring the drives into the media apps (the household's „connect now") +2026/10/15 08:06:29 [INFO] [mediawire] 5 drive(s) wired in 1.668s: folders=done(0) qbittorrent=unchanged(0) transmission=unchanged(0) sonarr=unchanged(0) radarr=unchanged(0) prowlarr=unchanged(0) plex=unchanged(0) jellyfin=unchang +2026/10/15 08:06:50 [WARN] [gate] drive ABSENT /mnt/felhom-drives/media_b — stopped+blocked 0 app(s): [] +2026/10/15 08:06:50 [INFO] [settings] media drive event: /mnt/felhom-drives/media_b removed — the media apps must restart to see it +2026/10/15 08:06:50 [INFO] [stacks] media_library jellyfin: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_a/userdata/media, /mnt/felhom-drives/media_c/userdata/media, /mnt/felhom-drives/m +2026/10/15 08:06:50 [INFO] [stacks] media_library plex: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_a/userdata/media, /mnt/felhom-drives/media_c/userdata/media, /mnt/felhom-drives/media +2026/10/15 08:06:50 [INFO] [stacks] media_library qbittorrent: per-drive binds 3 [/mnt/felhom-drives/adatlemez/userdata/media/torrents, /mnt/felhom-drives/media_c/userdata/media/torrents, /mnt/felhom-drives/media_d/userdata/media/ +2026/10/15 08:06:50 [INFO] [stacks] media_library radarr: per-drive binds 3 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_c/userdata/media, /mnt/felhom-drives/media_d/userdata/media]; drives not bound: [/m +2026/10/15 08:06:50 [INFO] [stacks] media_library sonarr: per-drive binds 3 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_c/userdata/media, /mnt/felhom-drives/media_d/userdata/media]; drives not bound: [/m +2026/10/15 08:06:50 [INFO] [stacks] media_library transmission: per-drive binds 3 [/mnt/felhom-drives/adatlemez/userdata/media/transmission, /mnt/felhom-drives/media_c/userdata/media/transmission, /mnt/felhom-drives/media_d/userda +2026/10/15 08:06:50 [INFO] [media] drive /mnt/felhom-drives/media_b removed: the binds of [jellyfin plex qbittorrent radarr sonarr transmission] changed — they see it after a restart +2026/10/15 08:08:21 [INFO] [gate] drive RETURNED /mnt/felhom-drives/media_b — re-attached + restarted gate-stopped apps +2026/10/15 08:08:21 [INFO] [settings] media drive event: /mnt/felhom-drives/media_b returned — the media apps must restart to see it +2026/10/15 08:08:21 [INFO] [stacks] media_library jellyfin: per-drive binds 5 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_a/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/m +2026/10/15 08:08:21 [INFO] [stacks] media_library plex: per-drive binds 5 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_a/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media +2026/10/15 08:08:21 [INFO] [stacks] media_library qbittorrent: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media/torrents, /mnt/felhom-drives/media_b/userdata/media/torrents, /mnt/felhom-drives/media_c/userdata/media/ +2026/10/15 08:08:21 [INFO] [stacks] media_library radarr: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media_c/userdata/media, /mnt/felhom-drives/med +2026/10/15 08:08:21 [INFO] [stacks] media_library sonarr: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media_c/userdata/media, /mnt/felhom-drives/med +2026/10/15 08:08:21 [INFO] [stacks] media_library transmission: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media/transmission, /mnt/felhom-drives/media_b/userdata/media/transmission, /mnt/felhom-drives/media_c/userda +2026/10/15 08:08:21 [INFO] [media] drive /mnt/felhom-drives/media_b returned: the binds of [jellyfin plex qbittorrent radarr sonarr transmission] changed — they see it after a restart +2026/10/15 08:09:00 [INFO] [stacks] media_library jellyfin: per-drive binds 5 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_a/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/m +2026/10/15 08:09:01 [INFO] [stacks] media_library plex: per-drive binds 5 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_a/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media +2026/10/15 08:09:11 [INFO] [stacks] media_library qbittorrent: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media/torrents, /mnt/felhom-drives/media_b/userdata/media/torrents, /mnt/felhom-drives/media_c/userdata/media/ +2026/10/15 08:09:14 [INFO] [stacks] media_library radarr: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media_c/userdata/media, /mnt/felhom-drives/med +2026/10/15 08:09:18 [INFO] [stacks] media_library sonarr: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media_c/userdata/media, /mnt/felhom-drives/med +2026/10/15 08:09:23 [INFO] [stacks] media_library transmission: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media/transmission, /mnt/felhom-drives/media_b/userdata/media/transmission, /mnt/felhom-drives/media_c/userda +2026/10/15 08:09:29 [INFO] [media] media apps restarted (the household's „restart now"); failed: [] +2026/10/15 08:10:20 [INFO] [mediawire] safe removal of /mnt/felhom-drives/media_d: paused 2 torrent(s) saved on it +2026/10/15 08:10:20 [INFO] [stacks] media_library jellyfin: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_a/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/m +2026/10/15 08:10:21 [INFO] [stacks] media_library plex: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_a/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media +2026/10/15 08:10:31 [INFO] [stacks] media_library qbittorrent: per-drive binds 3 [/mnt/felhom-drives/adatlemez/userdata/media/torrents, /mnt/felhom-drives/media_b/userdata/media/torrents, /mnt/felhom-drives/media_c/userdata/media/ +2026/10/15 08:10:35 [INFO] [stacks] media_library radarr: per-drive binds 3 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media_c/userdata/media]; drives not bound: [/m +2026/10/15 08:10:39 [INFO] [stacks] media_library sonarr: per-drive binds 3 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media_c/userdata/media]; drives not bound: [/m +2026/10/15 08:10:43 [INFO] [stacks] media_library transmission: per-drive binds 3 [/mnt/felhom-drives/adatlemez/userdata/media/transmission, /mnt/felhom-drives/media_b/userdata/media/transmission, /mnt/felhom-drives/media_c/userda +2026/10/15 08:10:48 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_d is removed or dead — not bound this pass +2026/10/15 08:10:49 [INFO] [media] safe removal /mnt/felhom-drives/media_d: 2 torrent(s) paused, the media apps and the file browser let go of it +2026/10/15 08:10:49 [INFO] [settings] media drive event: /mnt/felhom-drives/media_d removed — the media apps must restart to see it +2026/10/15 08:10:49 [INFO] [stacks] media_library jellyfin: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_a/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/m +2026/10/15 08:10:49 [INFO] [stacks] media_library plex: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_a/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media diff --git a/documentation/audits/media-build-2026-10-15/G/G4f-disk-left.txt b/documentation/audits/media-build-2026-10-15/G/G4f-disk-left.txt new file mode 100644 index 00000000..e07941d0 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G4f-disk-left.txt @@ -0,0 +1,11 @@ +the box saw the disk leave at 10:26:11 +seen gone at 10:26:24 +2026/10/15 08:26:31 [INFO] [settings] media drive event: /mnt/felhom-drives/media_d returned — the media apps must restart to see it +2026/10/15 08:26:31 [INFO] [stacks] media_library jellyfin: per-drive binds 5 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_a/userdata/media, /mnt/felhom-drives/media_b/userda +2026/10/15 08:26:31 [INFO] [stacks] media_library plex: per-drive binds 5 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_a/userdata/media, /mnt/felhom-drives/media_b/userdata/m +2026/10/15 08:26:31 [INFO] [stacks] media_library qbittorrent: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media/torrents, /mnt/felhom-drives/media_b/userdata/media/torrents, /mnt/felhom- +2026/10/15 08:26:31 [INFO] [stacks] media_library radarr: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media_c/userdata +2026/10/15 08:26:31 [INFO] [stacks] media_library sonarr: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media, /mnt/felhom-drives/media_b/userdata/media, /mnt/felhom-drives/media_c/userdata +2026/10/15 08:26:31 [INFO] [stacks] media_library transmission: per-drive binds 4 [/mnt/felhom-drives/adatlemez/userdata/media/transmission, /mnt/felhom-drives/media_b/userdata/media/transmission, /mn +2026/10/15 08:26:31 [INFO] [media] drive /mnt/felhom-drives/media_d returned: the binds of [jellyfin plex qbittorrent radarr sonarr transmission] changed — they see it after a restart +/mnt/felhom-drives/media_d is a mountpoint diff --git a/documentation/audits/media-build-2026-10-15/G/G4g-return.txt b/documentation/audits/media-build-2026-10-15/G/G4g-return.txt new file mode 100644 index 00000000..071b63c3 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G4g-return.txt @@ -0,0 +1,9 @@ +at 10:26:33: +2026/10/15 08:25:58 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_d not mounted — skipping userdata skeleton +2026/10/15 08:26:00 [INFO] [media] safely removed drive /mnt/felhom-drives/media_d: its disk has left the box +2026/10/15 08:26:31 [INFO] [media] safely removed drive /mnt/felhom-drives/media_d is BACK — registered as before, no household step +2026/10/15 08:26:31 [INFO] [settings] media drive event: /mnt/felhom-drives/media_d returned — the media apps must restart to see it +2026/10/15 08:26:31 [INFO] [media] drive /mnt/felhom-drives/media_d returned: the binds of [jellyfin plex qbittorrent radarr sonarr transmission] changed — they see it after a restart +/mnt/felhom-drives/media_d is a mountpoint +k3-own-bytes-qbit +/mnt/media_d /dev/sdd diff --git a/documentation/audits/media-build-2026-10-15/G/G4h-restart-resume.txt b/documentation/audits/media-build-2026-10-15/G/G4h-restart-resume.txt new file mode 100644 index 00000000..72db29d9 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G4h-restart-resume.txt @@ -0,0 +1,6 @@ +10:27:11 restart now -> 200 {"data": {"failed": null}, "ok": true} (29s) +2026/10/15 08:27:41 [INFO] [mediawire] resumed 2 torrent(s) paused by a safe removal + ('qbit', 'media_c', 'k3-own-bytes-qbit', 'stalledUP', 1) + ('qbit', 'media_d', 'k3-own-bytes-qbit', 'stalledUP', 1) + ('trans', 'media_c', 'k3-own-bytes-trans', 'seeding', 1.0) + ('trans', 'media_d', 'k3-own-bytes-trans', 'seeding', 1.0) diff --git a/documentation/audits/media-build-2026-10-15/G/G6-filesig-diff.txt b/documentation/audits/media-build-2026-10-15/G/G6-filesig-diff.txt new file mode 100644 index 00000000..e69de29b diff --git a/documentation/audits/media-build-2026-10-15/G/G6-filesig-end.tsv b/documentation/audits/media-build-2026-10-15/G/G6-filesig-end.tsv new file mode 100644 index 00000000..c73aae9f --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G6-filesig-end.tsv @@ -0,0 +1,71 @@ +/mnt/felhom-drives/media_a/userdata/media/tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv 909464483 4194364 2 1791997622 +/mnt/felhom-drives/media_a/userdata/media/tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv 720261766 4194368 2 1791997651 +/mnt/felhom-drives/media_a/userdata/media/tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv 829645981 4194375 2 1791997623 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv 909464483 4194364 2 1791997622 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e01.1080p.web.h264-grace.nfo 497 4194376 1 1791997577 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e01.1080p.web.h264-grace.sample.mkv 35166429 4194366 1 1791997623 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.mkv 3789544605 4194398 1 1791997839 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.nfo 62 4194400 1 1791997834 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/slow.horses.s06e03.1080p.web.h264-cakes.mkv 3931160378 4194385 1 1791997887 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/slow.horses.s06e03.1080p.web.h264-cakes.nfo 2728 4194367 1 1791997882 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e03.1080p.web.h264-cakes-sample.mkv 85809338 4194392 1 1791997778 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/slow.horses.s06e02.proper.1080p.web.h264-ethel.nfo 1023 4194397 1 1791997846 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL.mkv 3758255491 4194369 1 1791997854 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/Sample/slow.horses.s06e02.proper.1080p.web.h264-ethel.sample.mkv 77743753 4194383 1 1791997852 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv 720261766 4194368 2 1791997651 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e03.1080p.web.h264-grace.nfo 492 4194377 1 1791997591 +/mnt/felhom-drives/media_a/userdata/media/torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e03.1080p.web.h264-grace.sample.mkv 21739818 4194370 1 1791997622 +/mnt/felhom-drives/media_a/userdata/media/torrents/movies/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.nfo 602 4194405 1 1791997982 +/mnt/felhom-drives/media_a/userdata/media/torrents/movies/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv 4697542077 4194391 2 1791997988 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/slow.horses.s06e04.1080p.web.h264-cakes.mkv 4039934637 4194396 1 1791997987 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/slow.horses.s06e04.1080p.web.h264-cakes.nfo 2730 4194399 1 1791997757 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e04.1080p.web.h264-cakes-sample.mkv 94200139 4194395 1 1791997773 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/slow.horses.s06e01.1080p.web.h264-cakes.mkv 3859110437 4194387 1 1791997961 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/slow.horses.s06e01.1080p.web.h264-cakes.nfo 2693 4194388 1 1791997744 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e01.1080p.web.h264-cakes-sample.mkv 104128605 4194390 1 1791997759 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e02.1080p.web.h264-grace.nfo 497 4194374 1 1791997576 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv 829645981 4194375 2 1791997623 +/mnt/felhom-drives/media_a/userdata/media/transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e02.1080p.web.h264-grace.sample.mkv 31210978 4194373 1 1791997609 +/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv 2819947717 4194408 1 1791998428 +/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.nfo 8091 4194409 1 1791998340 +/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Sample/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY-Sample.mkv 22742740 4194411 1 1791998422 +/mnt/felhom-drives/media_a/userdata/media/movies/Hope (2026)/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv 4697542077 4194391 2 1791997988 +/mnt/felhom-drives/media_b/userdata/media/torrents/movies/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv 3393846457 1048578 2 1791998022 +/mnt/felhom-drives/media_b/userdata/media/torrents/movies/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.nfo 619 1048579 1 1791998019 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 68 131101 1 1791997602 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E01.13.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1314062473 131100 2 1791997680 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E03.Rauhnacht.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 813589489 131110 2 1791997659 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 68 131113 1 1791997627 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E07.The.Baddest.Witch.of.Them.All.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 956532263 393221 2 1791997699 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 67 393223 1 1791997690 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E05.Date.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 969653267 393218 2 1791997719 +/mnt/felhom-drives/media_b/userdata/media/torrents/tv/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E05.Date.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo 77 393220 1 1791997712 +/mnt/felhom-drives/media_b/userdata/media/movies/Matchbox the Movie (2026)/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv 3393846457 1048578 2 1791998022 +/mnt/felhom-drives/media_b/userdata/media/movies/WHO (2026)/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv 2819947717 2097156 1 1791998428 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1164079593 131107 2 1791997676 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1314062473 131100 2 1791997680 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 913481011 131112 2 1791997757 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 956532263 393221 2 1791997699 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 813589489 131110 2 1791997659 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1274167804 131103 2 1791997733 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 969653267 393218 2 1791997719 +/mnt/felhom-drives/media_b/userdata/media/tv/American Horror Story/Season 13/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv 1149433990 262146 2 1791997741 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.mkv 3789544605 524295 1 1791997839 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E01.1080p.WEB.H264-CAKES.mkv 3859110437 524298 1 1791997961 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E04.1080p.WEB.H264-CAKES.mkv 4039934637 524299 1 1791997987 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL.mkv 3758255491 524296 1 1791997854 +/mnt/felhom-drives/media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E03.1080p.WEB.H264-CAKES.mkv 3931160378 524297 1 1791997887 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E02.1.13.AM.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1274167804 131103 2 1791997733 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 68 131104 1 1791997605 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E04.Is.That.All.There.Is.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1164079593 131107 2 1791997676 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E04.Is.That.All.There.Is.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo 67 131108 1 1791997615 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E08.Hell.No.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 1149433990 262146 2 1791997741 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo 67 262147 1 1791997643 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E06.The.Return.of.Devils.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv 913481011 131112 2 1791997757 +/mnt/felhom-drives/media_b/userdata/media/transmission/tv/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E06.The.Return.of.Devils.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo 93 131114 1 1791997633 +/mnt/felhom-drives/media_c/userdata/media/tv/Felhom Probe Show (2026)/Season 01/Felhom Probe Show (2026) - S01E01.mkv 145093 655382 1 1792011968 +/mnt/felhom-drives/media_c/userdata/media/transmission/tv/k3-own-bytes-trans/data.bin 3000000 655393 1 1792012185 +/mnt/felhom-drives/media_c/userdata/media/movies/Felhom Probe Film (2026)/Felhom Probe Film (2026).mkv 145093 655383 1 1792011968 +/mnt/felhom-drives/media_c/userdata/media/torrents/tv/k3-own-bytes-qbit/data.bin 3000000 655391 1 1792012185 +/mnt/felhom-drives/media_d/userdata/media/torrents/tv/k3-own-bytes-qbit/data.bin 3000000 786459 1 1792051789 +/mnt/felhom-drives/media_d/userdata/media/transmission/tv/k3-own-bytes-trans/data.bin 3000000 786461 1 1792051789 diff --git a/documentation/audits/media-build-2026-10-15/G/G6-where.txt b/documentation/audits/media-build-2026-10-15/G/G6-where.txt new file mode 100644 index 00000000..67f23299 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/G6-where.txt @@ -0,0 +1,116 @@ +== drive adatlemez (/mnt/felhom-drives/adatlemez/userdata/media) +== drive media_a (/mnt/felhom-drives/media_a/userdata/media) + -- movies/ (1 file(s)) + 4697.5 MB links=2 inode=4194391 movies/Hope (2026)/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv + -- torrents/ (16 file(s)) + 909.5 MB links=2 inode=4194364 torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv + 0.0 MB links=1 inode=4194376 torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e01.1080p.web.h264-grace.nfo + 35.2 MB links=1 inode=4194366 torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e01.1080p.web.h264-grace.sample.mkv + 3789.5 MB links=1 inode=4194398 torrents/tv/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.mkv + 0.0 MB links=1 inode=4194400 torrents/tv/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.nfo + 3931.2 MB links=1 inode=4194385 torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/slow.horses.s06e03.1080p.web.h264-cakes.mkv + 0.0 MB links=1 inode=4194367 torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/slow.horses.s06e03.1080p.web.h264-cakes.nfo + 85.8 MB links=1 inode=4194392 torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e03.1080p.web.h264-cakes-sample.mkv + 0.0 MB links=1 inode=4194397 torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/slow.horses.s06e02.proper.1080p.web.h264-ethel.nfo + 3758.3 MB links=1 inode=4194369 torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL.mkv + 77.7 MB links=1 inode=4194383 torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/Sample/slow.horses.s06e02.proper.1080p.web.h264-ethel.sample.mkv + 720.3 MB links=2 inode=4194368 torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv + 0.0 MB links=1 inode=4194377 torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e03.1080p.web.h264-grace.nfo + 21.7 MB links=1 inode=4194370 torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e03.1080p.web.h264-grace.sample.mkv + 0.0 MB links=1 inode=4194405 torrents/movies/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.nfo + 4697.5 MB links=2 inode=4194391 torrents/movies/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv + -- transmission/ (12 file(s)) + 4039.9 MB links=1 inode=4194396 transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/slow.horses.s06e04.1080p.web.h264-cakes.mkv + 0.0 MB links=1 inode=4194399 transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/slow.horses.s06e04.1080p.web.h264-cakes.nfo + 94.2 MB links=1 inode=4194395 transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e04.1080p.web.h264-cakes-sample.mkv + 3859.1 MB links=1 inode=4194387 transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/slow.horses.s06e01.1080p.web.h264-cakes.mkv + 0.0 MB links=1 inode=4194388 transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/slow.horses.s06e01.1080p.web.h264-cakes.nfo + 104.1 MB links=1 inode=4194390 transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e01.1080p.web.h264-cakes-sample.mkv + 0.0 MB links=1 inode=4194374 transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e02.1080p.web.h264-grace.nfo + 829.6 MB links=2 inode=4194375 transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv + 31.2 MB links=1 inode=4194373 transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e02.1080p.web.h264-grace.sample.mkv + 2819.9 MB links=1 inode=4194408 transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv + 0.0 MB links=1 inode=4194409 transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.nfo + 22.7 MB links=1 inode=4194411 transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Sample/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY-Sample.mkv + -- tv/ (3 file(s)) + 909.5 MB links=2 inode=4194364 tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv + 720.3 MB links=2 inode=4194368 tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv + 829.6 MB links=2 inode=4194375 tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv +== drive media_b (/mnt/felhom-drives/media_b/userdata/media) + -- movies/ (2 file(s)) + 3393.8 MB links=2 inode=1048578 movies/Matchbox the Movie (2026)/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv + 2819.9 MB links=1 inode=2097156 movies/WHO (2026)/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv + -- torrents/ (10 file(s)) + 3393.8 MB links=2 inode=1048578 torrents/movies/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv + 0.0 MB links=1 inode=1048579 torrents/movies/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.nfo + 0.0 MB links=1 inode=131101 torrents/tv/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo + 1314.1 MB links=2 inode=131100 torrents/tv/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E01.13.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv + 813.6 MB links=2 inode=131110 torrents/tv/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E03.Rauhnacht.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv + 0.0 MB links=1 inode=131113 torrents/tv/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo + 956.5 MB links=2 inode=393221 torrents/tv/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E07.The.Baddest.Witch.of.Them.All.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv + 0.0 MB links=1 inode=393223 torrents/tv/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo + 969.7 MB links=2 inode=393218 torrents/tv/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E05.Date.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv + 0.0 MB links=1 inode=393220 torrents/tv/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E05.Date.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo + -- transmission/ (8 file(s)) + 1274.2 MB links=2 inode=131103 transmission/tv/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E02.1.13.AM.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv + 0.0 MB links=1 inode=131104 transmission/tv/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo + 1164.1 MB links=2 inode=131107 transmission/tv/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E04.Is.That.All.There.Is.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv + 0.0 MB links=1 inode=131108 transmission/tv/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E04.Is.That.All.There.Is.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo + 1149.4 MB links=2 inode=262146 transmission/tv/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E08.Hell.No.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv + 0.0 MB links=1 inode=262147 transmission/tv/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo + 913.5 MB links=2 inode=131112 transmission/tv/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E06.The.Return.of.Devils.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv + 0.0 MB links=1 inode=131114 transmission/tv/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E06.The.Return.of.Devils.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo + -- tv/ (13 file(s)) + 1164.1 MB links=2 inode=131107 tv/American Horror Story/Season 13/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + 1314.1 MB links=2 inode=131100 tv/American Horror Story/Season 13/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + 913.5 MB links=2 inode=131112 tv/American Horror Story/Season 13/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + 956.5 MB links=2 inode=393221 tv/American Horror Story/Season 13/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + 813.6 MB links=2 inode=131110 tv/American Horror Story/Season 13/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + 1274.2 MB links=2 inode=131103 tv/American Horror Story/Season 13/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + 969.7 MB links=2 inode=393218 tv/American Horror Story/Season 13/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + 1149.4 MB links=2 inode=262146 tv/American Horror Story/Season 13/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + 3789.5 MB links=1 inode=524295 tv/Slow Horses/Season 6/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.mkv + 3859.1 MB links=1 inode=524298 tv/Slow Horses/Season 6/Slow.Horses.S06E01.1080p.WEB.H264-CAKES.mkv + 4039.9 MB links=1 inode=524299 tv/Slow Horses/Season 6/Slow.Horses.S06E04.1080p.WEB.H264-CAKES.mkv + 3758.3 MB links=1 inode=524296 tv/Slow Horses/Season 6/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL.mkv + 3931.2 MB links=1 inode=524297 tv/Slow Horses/Season 6/Slow.Horses.S06E03.1080p.WEB.H264-CAKES.mkv +== drive media_c (/mnt/felhom-drives/media_c/userdata/media) + -- movies/ (1 file(s)) + 0.1 MB links=1 inode=655383 movies/Felhom Probe Film (2026)/Felhom Probe Film (2026).mkv + -- torrents/ (1 file(s)) + 3.0 MB links=1 inode=655391 torrents/tv/k3-own-bytes-qbit/data.bin + -- transmission/ (1 file(s)) + 3.0 MB links=1 inode=655393 transmission/tv/k3-own-bytes-trans/data.bin + -- tv/ (1 file(s)) + 0.1 MB links=1 inode=655382 tv/Felhom Probe Show (2026)/Season 01/Felhom Probe Show (2026) - S01E01.mkv +== drive media_d (/mnt/felhom-drives/media_d/userdata/media) + -- torrents/ (1 file(s)) + 3.0 MB links=1 inode=786459 torrents/tv/k3-own-bytes-qbit/data.bin + -- transmission/ (1 file(s)) + 3.0 MB links=1 inode=786461 transmission/tv/k3-own-bytes-trans/data.bin + +== 71 file(s) on 5 drive(s) +== ONE FILE, TWO NAMES (hardlink — no extra copy): + drive media_a inode 4194391 (4697.5 MB): movies/…/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv <-> torrents/…/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv + drive media_a inode 4194364 (909.5 MB): torrents/…/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv <-> tv/…/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv + drive media_a inode 4194368 (720.3 MB): torrents/…/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv <-> tv/…/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv + drive media_a inode 4194375 (829.6 MB): transmission/…/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv <-> tv/…/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv + drive media_b inode 1048578 (3393.8 MB): movies/…/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv <-> torrents/…/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv + drive media_b inode 131100 (1314.1 MB): torrents/…/American.Horror.Story.S13E01.13.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + drive media_b inode 131110 (813.6 MB): torrents/…/American.Horror.Story.S13E03.Rauhnacht.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + drive media_b inode 393221 (956.5 MB): torrents/…/American.Horror.Story.S13E07.The.Baddest.Witch.of.Them.All.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + drive media_b inode 393218 (969.7 MB): torrents/…/American.Horror.Story.S13E05.Date.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + drive media_b inode 131103 (1274.2 MB): transmission/…/American.Horror.Story.S13E02.1.13.AM.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + drive media_b inode 131107 (1164.1 MB): transmission/…/American.Horror.Story.S13E04.Is.That.All.There.Is.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + drive media_b inode 262146 (1149.4 MB): transmission/…/American.Horror.Story.S13E08.Hell.No.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + drive media_b inode 131112 (913.5 MB): transmission/…/American.Horror.Story.S13E06.The.Return.of.Devils.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv + 13 pair(s) +== LIBRARY FILES WITH LINK COUNT 1 (a copy, or its download is gone): + drive media_b: media_b/userdata/media/movies/WHO (2026)/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv (2819.9 MB) + drive media_b: media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.mkv (3789.5 MB) + drive media_b: media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E01.1080p.WEB.H264-CAKES.mkv (3859.1 MB) + drive media_b: media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E04.1080p.WEB.H264-CAKES.mkv (4039.9 MB) + drive media_b: media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL.mkv (3758.3 MB) + drive media_b: media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E03.1080p.WEB.H264-CAKES.mkv (3931.2 MB) + drive media_c: media_c/userdata/media/movies/Felhom Probe Film (2026)/Felhom Probe Film (2026).mkv (0.1 MB) + drive media_c: media_c/userdata/media/tv/Felhom Probe Show (2026)/Season 01/Felhom Probe Show (2026) - S01E01.mkv (0.1 MB) diff --git a/documentation/audits/media-build-2026-10-15/G/TIMES.md b/documentation/audits/media-build-2026-10-15/G/TIMES.md new file mode 100644 index 00000000..13f0c6d4 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G/TIMES.md @@ -0,0 +1,6 @@ +10:06:44 G3 DETACH Media B (VM 341 scsi3, nvme-scratch:341/vm-341-disk-4.raw) — expect a hub mail +10:07:51 G3 RE-ATTACH Media B (scsi3, same volume) +10:10:19 G4 SAFE REMOVAL of Media D (POST /api/storage/eject) +10:12:11 G4 DETACH Media D disk (scsi5, nvme-scratch:341/vm-341-disk-6.raw) after the safe removal +10:26:11 G4 RE-ATTACH Media D disk (scsi5, same volume) +10:26:24 G4 RE-ATTACH Media D disk (scsi5, same volume) diff --git a/documentation/audits/media-build-2026-10-15/G7/G7a-sync.txt b/documentation/audits/media-build-2026-10-15/G7/G7a-sync.txt new file mode 100644 index 00000000..e25c2113 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G7/G7a-sync.txt @@ -0,0 +1,4 @@ +10:30:43 POST /api/sync -> 200 {"ok": true, "data": {"ok": true, "updated": ["emby", "jellyfin", "plex", "qbittorrent", "radarr", "sonarr", "transmission"], "message": "Sablonok frissítve — frissítve: emby, jellyfin, plex, qbittorrent, radarr, sonarr, transmission", "cat +felhom-controller gitea.dooplex.hu/admin/felhom-controller:0.312.0 +hdd_1 + diff --git a/documentation/audits/media-build-2026-10-15/G7/G7b-sonarr-on-0312.txt b/documentation/audits/media-build-2026-10-15/G7/G7b-sonarr-on-0312.txt new file mode 100644 index 00000000..aff2532b --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G7/G7b-sonarr-on-0312.txt @@ -0,0 +1,10 @@ +10:30:47 sonarr: POST deploy {"DOMAIN": "enkisfelhom.hu", "SUBDOMAIN": "sonarr", "HDD_PATH": "/mnt/felhom-drives/hdd_1"} -> 202 {"ok": true, "message": "The install has started – the card shows how it is going"} +10:31:17 sonarr: deployed, state=running, pinned={'sonarr': 'lscr.io/linuxserver/sonarr:4.0.20'} +running /var/lib/docker/volumes/sonarr_sonarr_config/_data->/config:true /mnt/felhom-drives/hdd_1/userdata/media->/mnt/felhom-drives/hdd_1/userdata/media:true +2026/10/15 08:30:47 router.go:449: [INFO] [api] Deploy requested for stack: sonarr +2026/10/15 08:30:47 deploy.go:526: [INFO] [stacks] Deploying stack sonarr with 3 env vars: [DOMAIN, SUBDOMAIN, HDD_PATH] +2026/10/15 08:30:47 manager.go:1773: [INFO] [stacks] Deploying stack sonarr — checking 1 images... +2026/10/15 08:30:47 notifier.go:353: [INFO] Event pushed: app_deploy_started (info) [+household(en)] — Alkalmazás telepítése elindult: Sonarr +2026/10/15 08:30:56 deploy.go:616: [INFO] [stacks] Stack sonarr deployed successfully (took 9.0s) +2026/10/15 08:30:56 notifier.go:353: [INFO] Event pushed: app_deployed (info) [+household(en)] — Alkalmazás telepítve: Sonarr + diff --git a/documentation/audits/media-build-2026-10-15/G7/G7c-sonarr-binds-0312.txt b/documentation/audits/media-build-2026-10-15/G7/G7c-sonarr-binds-0312.txt new file mode 100644 index 00000000..cb12fccf --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G7/G7c-sonarr-binds-0312.txt @@ -0,0 +1,4 @@ +marker: 1 +override: 0 +running /mnt/felhom-drives/hdd_1/userdata/media + diff --git a/documentation/audits/media-build-2026-10-15/G7/G7d-sync.txt b/documentation/audits/media-build-2026-10-15/G7/G7d-sync.txt new file mode 100644 index 00000000..df32b266 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G7/G7d-sync.txt @@ -0,0 +1,7 @@ +10:34:12 POST /api/sync -> 200 {"ok": true, "data": {"ok": true, "updated": ["plex"], "message": "Sablonok frissítve — frissítve: plex", "catalog_moved": true}, "message": "Sablonok frissítve — frissítve: plex"} +setup_done_probe: + url: http://plex:32400/library/sections + done_status: 401 + +gitea.dooplex.hu/admin/felhom-controller:0.312.0 + diff --git a/documentation/audits/media-build-2026-10-15/G7/G7e-plex-0312-install.txt b/documentation/audits/media-build-2026-10-15/G7/G7e-plex-0312-install.txt new file mode 100644 index 00000000..0af91802 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G7/G7e-plex-0312-install.txt @@ -0,0 +1,23 @@ +10:34:16 POST /api/stacks/plex/deploy {"DOMAIN": "enkisfelhom.hu", "SUBDOMAIN": "plex", "PLEX_CLAIM": "claim-expired0000000000000", "HDD_PATH": "/mnt/felhom-drives/hdd_1"} -> 202 {"ok": true, "message": "The install has started – the card shows how it is going"} +10:34:36 after 20s: deployed=True state=running setup_gate={"state": "closed", "since": "2026-10-15T08:34:16Z", "hosts": ["plex.enkisfelhom.hu"]} +-rw-r--r-- 1 root root 602 Oct 15 08:34 setup-gate-plex.yml +-rw-r--r-- 1 root root 616 Oct 15 08:30 setup-gate-sonarr.yml +# Setup gate for plex — managed by felhom-controller (`09` §3 decision 46). +# The app is closed to everyone but the household until its first setup is done; then this file is removed. +http: + middlewares: + felhom-setup-gate-plex: + forwardAuth: + address: "http://felhom-controller:8080/__felhom_gate/auth" + routers: + felhom-setup-gate-plex-plex: + rule: "Host(`plex.enkisfelhom.hu`)" + priority: 100027 + entryPoints: + - websecure + tls: + certResolver: letsencrypt + middlewares: + - felhom-setup-gate-plex@file + service: "plex@docker" + diff --git a/documentation/audits/media-build-2026-10-15/G7/G7f-plex-0312-press.txt b/documentation/audits/media-build-2026-10-15/G7/G7f-plex-0312-press.txt new file mode 100644 index 00000000..d9587cc7 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G7/G7f-plex-0312-press.txt @@ -0,0 +1,4 @@ +10:35:00 the household's „Kész” on an UNCLAIMED Plex (controller 0.312.0) -> HTTP 409 {"data": null, "error": "This app is already open.", "ok": false} +10:35:00 gate: {"state": "open", "since": "2026-10-15T08:34:16Z", "hosts": ["plex.enkisfelhom.hu"], "opened_at": "2026-10-15T08:34:56Z", "opened_by": "probe"} +probe answer now: HTTP 200 + diff --git a/documentation/audits/media-build-2026-10-15/G7/G7g-plex-0312-removed.txt b/documentation/audits/media-build-2026-10-15/G7/G7g-plex-0312-removed.txt new file mode 100644 index 00000000..218f3355 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G7/G7g-plex-0312-removed.txt @@ -0,0 +1,5 @@ +10:35:22 stop -> 200 +10:35:51 remove -> 200 {"ok": true, "data": {"removed": "plex", "volumes_removed": ["plex_plex_config", "plex_plex_transcode"], "hdd_paths_removed": [], "hdd_paths_preserved": [], "userdata_kept": ["/mnt/felhom-drives/hdd_1 +containers: 0 +volumes: 0 + diff --git a/documentation/audits/media-build-2026-10-15/G7/G7h-rc4.txt b/documentation/audits/media-build-2026-10-15/G7/G7h-rc4.txt new file mode 100644 index 00000000..d16c468e --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G7/G7h-rc4.txt @@ -0,0 +1,2 @@ +root@192.168.0.154: gitea.dooplex.hu/admin/felhom-controller:0.313.0-rc.4 Up 20 seconds (healthy) +hp: gitea.dooplex.hu/admin/felhom-controller:0.313.0-rc.4 Up 20 seconds (healthy) diff --git a/documentation/audits/media-build-2026-10-15/G7/G7i-qbit-install.txt b/documentation/audits/media-build-2026-10-15/G7/G7i-qbit-install.txt new file mode 100644 index 00000000..ede4d349 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G7/G7i-qbit-install.txt @@ -0,0 +1,12 @@ +10:38:31 qbittorrent: POST deploy {"DOMAIN": "enkisfelhom.hu", "SUBDOMAIN": "torrent", "HDD_PATH": "/mnt/felhom-drives/hdd_1", "QBT_ADMIN_PASSWORD": ""} -> 202 {"ok": true, "message": "The install has started – the card shows how it is going"} +10:38:46 qbittorrent: deployed, state=running, pinned={'qbittorrent': 'qbittorrentofficial/qbittorrent-nox:5.2.4-1'} +running /var/lib/docker/volumes/qbittorrent_qbittorrent_config/_data->/config:true /mnt/felhom-drives/hdd_1/userdata/media/torrents->/downloads:true /mnt/felhom-drives/hdd_1/userdata/media/torrents->/mnt/felhom-drives/hdd_1/userdata/media/torrents:true +2026/10/15 08:38:31 router.go:449: [INFO] [api] Deploy requested for stack: qbittorrent +2026/10/15 08:38:31 deploy.go:531: [INFO] [stacks] Deploying stack qbittorrent with 4 env vars: [SUBDOMAIN, HDD_PATH, QBT_ADMIN_PASSWORD, DOMAIN] +2026/10/15 08:38:31 manager.go:1812: [INFO] [stacks] Deploying stack qbittorrent — checking 1 images... +2026/10/15 08:38:31 notifier.go:353: [INFO] Event pushed: app_deploy_started (info) [+household(en)] — Alkalmazás telepítése elindult: qBittorrent +2026/10/15 08:38:37 deploy.go:621: [INFO] [stacks] Stack qbittorrent deployed successfully (took 6.1s) +2026/10/15 08:38:37 notifier.go:353: [INFO] Event pushed: app_deployed (info) [+household(en)] — Alkalmazás telepítve: qBittorrent +2026/10/15 08:38:43 after_install.go:184: [INFO] [stacks] after_install qbittorrent: qbittorrent [/bin/sh -c curl -s -c /tmp/fc -o /dev/null -X POST -d "username=admin&password=${QBT_ADMIN_PASSWORD}" -H 'Referer: http://127.0.0.1:8080' http://127.0.0.1:8080/api/v2/auth/login && curl -s -b /tmp/fc -o /dev/null -X POST --data-urlencode 'json={"upnp":false,"web_ui_domain_list":"${SUBDOMAIN}.${DOMAIN};qbittorrent;localhost;127.0.0.1"}' -H 'Referer: http://127.0.0.1:8080' http://127.0.0.1:8080/api/v2/app/setPreferences && curl -s -b /tmp/fc http://127.0.0.1:8080/api/v2/app/preferences | grep -q '"upnp":false' && curl -s -o /dev/null -w '%{http_code}' -H 'Host: qbittorrent:8080' http://127.0.0.1:8080/ | grep -qE '^(200|401|403)$' && echo FELHOM_AFTER_INSTALL_OK +2026/10/15 08:38:43 install_hold.go:135: [INFO] [stacks] qbittorrent: install hold OPENED by after_install — the app is reached as without a hold + diff --git a/documentation/audits/media-build-2026-10-15/G7/G7j-wiring.txt b/documentation/audits/media-build-2026-10-15/G7/G7j-wiring.txt new file mode 100644 index 00000000..da721f3c --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G7/G7j-wiring.txt @@ -0,0 +1,5 @@ +10:39:48 media apps: ['qbittorrent', 'sonarr'] wired_at: 2026-10-15T08:39:39Z + {"app": "folders", "state": "done"} + {"app": "qbittorrent", "state": "done", "wrote": ["auto_tmm_enabled=true", "createCategory tv-hdd-1", "createCategory movies-hdd-1"]} + {"app": "sonarr", "state": "done", "wrote": ["tag hdd-1", "rootfolder /mnt/felhom-drives/hdd_1/userdata/media/tv", "downloadclient qBittorrent hdd-1", "minimumFreeSpaceWhenImporting=10240"]} +candidates for a second drive: [] diff --git a/documentation/audits/media-build-2026-10-15/G7/G7k-hardlink-and-remove.txt b/documentation/audits/media-build-2026-10-15/G7/G7k-hardlink-and-remove.txt new file mode 100644 index 00000000..a8df8d94 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/G7/G7k-hardlink-and-remove.txt @@ -0,0 +1,12 @@ +9699345 /mnt/felhom-drives/hdd_1/userdata/media/torrents/tv/g7-hardlink-probe.bin +9699345 links=2 /mnt/felhom-drives/hdd_1/userdata/media/torrents/tv/g7-hardlink-probe.bin +9699345 links=2 /mnt/felhom-drives/hdd_1/userdata/media/tv/g7-hardlink-probe.bin +ls: cannot access '/mnt/felhom-drives/hdd_1/userdata/media/tv/g7*': No such file or directory +ls: cannot access '/mnt/felhom-drives/hdd_1/userdata/media/torrents/tv/g7*': No such file or directory + +10:40:33 remove qbittorrent -> 200 {"ok": true, "data": {"removed": "qbittorrent", "volumes_removed": ["qbittorrent_qbittorrent_config"], "hdd_paths_removed": [], "hdd_paths_preserved": [], "user +10:41:05 remove sonarr -> 200 {"ok": true, "data": {"removed": "sonarr", "volumes_removed": ["sonarr_sonarr_config"], "hdd_paths_removed": [], "hdd_paths_preserved": [], "userdata_kept": ["/ +containers: 0 +volumes: 0 +overrides: 0 + diff --git a/documentation/audits/media-build-2026-10-15/tools/filesig.py b/documentation/audits/media-build-2026-10-15/tools/filesig.py new file mode 100644 index 00000000..6df02620 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/tools/filesig.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 +"""filesig.py — the safety baseline: every regular file under each drive's userdata/media with size, inode, +link count and mtime, one line each, sorted. Run INSIDE the guest. Two runs compared = 'did any FILE change or vanish' +(the Part 2 STOP condition), as opposed to a library entry.""" +import glob, os +for root in sorted(glob.glob("/mnt/felhom-drives/*/userdata/media")): + for dp, dn, fn in os.walk(root): + for f in fn: + p = os.path.join(dp, f) + try: + s = os.lstat(p) + except OSError as e: + print(f"ERR {p} {e}"); continue + print(f"{p}\t{s.st_size}\t{s.st_ino}\t{s.st_nlink}\t{int(s.st_mtime)}") diff --git a/documentation/audits/media-build-2026-10-15/tools/grun.sh b/documentation/audits/media-build-2026-10-15/tools/grun.sh new file mode 100755 index 00000000..eaaca993 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/tools/grun.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# grun.sh [args...] — run a tool of this folder INSIDE the Tester 1 guest via stdin, with Jellyfin's admin +# password substituted for __JF_PW__ in the piped copy only (it lives in ~/.felhom-tester1/secrets.json). The guest copy is deleted. +cd "$(dirname "$0")" +python3 - "$@" <<'PY' | sed -E 's/X-Plex-Token=[A-Za-z0-9_-]+/X-Plex-Token=/g' +import json,os,sys,shlex +sys.path.insert(0,"/mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu/scripts") +os.environ.setdefault("SC",os.path.expanduser("~/.felhom-tester1")); os.environ.setdefault("TARGET","tester-1") +import box_walk as w +pw=json.load(open(os.path.expanduser("~/.felhom-tester1/secrets.json")))["jellyfin"]["admin"] +src=open(sys.argv[1]).read().replace("__JF_PW__",pw) +args=" ".join(shlex.quote(a) for a in sys.argv[2:]) +r=w.sh(w.ssh_args()+[f'pct exec 9201 -- sh -c "cat > /root/.g.py; timeout 900 python3 /root/.g.py {args} 2>&1; rm -f /root/.g.py"'],timeout=960,inp=src) +print(r.stdout, end=""); print(r.stderr[-600:]) if r.returncode else None +PY diff --git a/documentation/audits/media-build-2026-10-15/tools/k1.py b/documentation/audits/media-build-2026-10-15/tools/k1.py new file mode 100644 index 00000000..2a3bdd9f --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/tools/k1.py @@ -0,0 +1,173 @@ +#!/usr/bin/env python3 +"""k1.py — K1 (what the media apps do while a drive is gone), run INSIDE the Tester 1 guest. + +steps: + mark mark one Media B episode watched in Plex and Jellyfin (the watch-state probe) + state what every app shows now (per item: present / unavailable / gone; watch state of the probe) + plexscan force Plex to scan both libraries (and wait) + plexset <0|1> set Plex's „empty trash automatically after every scan" (autoEmptyTrash) + jfscan force Jellyfin to scan (and wait) + arrscan run Sonarr's RefreshSeries + RescanSeries and Radarr's RefreshMovie + RescanMovie (and wait) + arrset <0|1> set Sonarr/Radarr „unmonitor deleted episodes/movies" +Plex's token: its own Preferences.xml. Jellyfin's admin password: substituted into this copy by the runner. Nothing printed. +""" +import json, re, subprocess, sys, time, urllib.error, urllib.parse, urllib.request + +JFPW = "__JF_PW__" +PROBE_SHOW, PROBE_EP = "American Horror Story", (13, 1) # on Media B + + +def sh(c): + return subprocess.run(c, shell=True, capture_output=True, text=True).stdout.strip() + + +def ip(c): + return sh(f"docker inspect {c} -f '{{{{range .NetworkSettings.Networks}}}}{{{{.IPAddress}}}}{{{{end}}}}'") + + +def call(m, url, h=None, body=None, raw=False, t=60): + hh = dict(h or {}) + data = None + if body is not None: + data = json.dumps(body).encode(); hh["Content-Type"] = "application/json" + try: + with urllib.request.urlopen(urllib.request.Request(url, data=data, headers=hh, method=m), timeout=t) as r: + b = r.read(); return r.status, (b.decode() if raw else (json.loads(b) if b else None)) + except urllib.error.HTTPError as e: + return e.code, None + + +P = "/var/lib/docker/volumes/plex_plex_config/_data/Library/Application Support/Plex Media Server" +PT = re.search(r'PlexOnlineToken="([^"]+)', open(f"{P}/Preferences.xml").read()).group(1) +PB = f"http://{ip('plex')}:32400" +PH = {"Accept": "application/json", "X-Plex-Token": PT} + + +def plex(m, path, **q): + return call(m, PB + path + ("?" + urllib.parse.urlencode(q) if q else ""), PH) + + +def arr(app): + port = 8989 if app == "sonarr" else 7878 + k = re.search(r"([^<]+)", open(f"/var/lib/docker/volumes/{app}_{app}_config/_data/config.xml").read()).group(1) + return f"http://{ip(app)}:{port}/api/v3", {"X-Api-Key": k, "Host": app} + + +def jf(): + b = f"http://{ip('jellyfin')}:8096" + A = 'MediaBrowser Client="felhom-test", Device="k1", DeviceId="felhom-k1", Version="1"' + c, r = call("POST", b + "/Users/AuthenticateByName", {"Authorization": A}, {"Username": "admin", "Pw": JFPW}) + return b, {"X-Emby-Token": r["AccessToken"]}, r["User"]["Id"] + + +def plex_items(): + out = {} + for sec in (1, 2): + c, d = plex("GET", f"/library/sections/{sec}/all") + for m in (d or {}).get("MediaContainer", {}).get("Metadata", []): + out[m["title"]] = m["ratingKey"] + return out + + +def plex_probe(): + rk = plex_items().get(PROBE_SHOW) + if not rk: + return None, "show gone from Plex" + c, d = plex("GET", f"/library/metadata/{rk}/allLeaves") + for e in (d or {}).get("MediaContainer", {}).get("Metadata", []): + if (e.get("parentIndex"), e.get("index")) == PROBE_EP: + return e["ratingKey"], f"viewCount={e.get('viewCount', 0)}" + return None, "episode gone" + + +def jf_probe(b, H, uid): + # the plain recursive episode list (the per-show and search routes answered empty on this 10.11) + c, d = call("GET", b + f"/Users/{uid}/Items?Recursive=true&IncludeItemTypes=Episode", H) + for e in (d or {}).get("Items", []): + if "Horror" in (e.get("SeriesName") or "") and (e.get("ParentIndexNumber"), e.get("IndexNumber")) == PROBE_EP: + return e["Id"], f"Played={e.get('UserData', {}).get('Played')}" + return None, "episode gone" + + +def state(): + print(f"--- {time.strftime('%H:%M:%S')} state") + for sec in (1, 2): + c, d = plex("GET", f"/library/sections/{sec}/all", includeMissing=1) + for m in (d or {}).get("MediaContainer", {}).get("Metadata", []): + c2, d2 = plex("GET", f"/library/metadata/{m['ratingKey']}/allLeaves" if m["type"] == "show" else f"/library/metadata/{m['ratingKey']}") + leaves = (d2 or {}).get("MediaContainer", {}).get("Metadata", []) + parts = [p for l in leaves for md in l.get("Media", []) for p in md.get("Part", [])] + gone = sum(1 for p in parts if p.get("accessible") is False or p.get("exists") is False) + print(f" plex {m['type']:5} {m['title'][:24]:24} items={len(leaves)} parts={len(parts)} unavailable={gone}") + print(" plex probe:", plex_probe()[1]) + b, H, uid = jf() + c, d = call("GET", b + f"/Users/{uid}/Items?Recursive=true&IncludeItemTypes=Series,Movie,Episode", H) + items = (d or {}).get("Items", []) + print(" jellyfin:", {t: len([i for i in items if i["Type"] == t]) for t in ("Series", "Movie", "Episode")}, + sorted(i["Name"] for i in items if i["Type"] in ("Series", "Movie"))) + print(" jellyfin probe:", jf_probe(b, H, uid)[1]) + for app, kind in (("sonarr", "series"), ("radarr", "movie")): + base, H2 = arr(app) + c, s = call("GET", base + f"/{kind}", H2) + for x in s or []: + st = x.get("statistics") or {} + print(f" {app} {x['title'][:24]:24} monitored={x['monitored']} files={st.get('episodeFileCount', x.get('hasFile'))} path={x['path'].split('/')[3]}") + if app == "sonarr": + for x in s or []: + c, eps = call("GET", base + f"/episode?seriesId={x['id']}", H2) + eps = eps or [] + print(f" {x['title'][:24]:24} episodes monitored={sum(1 for e in eps if e['monitored'])}/{len(eps)} hasFile={sum(1 for e in eps if e['hasFile'])}") + + +def wait_cmd(base, H, cid): + for _ in range(60): + time.sleep(3) + c, d = call("GET", base + f"/command/{cid}", H) + if (d or {}).get("status") in ("completed", "failed", "aborted"): + return d["status"] + return "timeout" + + +step = sys.argv[1] +if step == "mark": + rk, s = plex_probe(); print("plex probe before:", s) + c, _ = plex("GET", "/:/scrobble", key=rk, identifier="com.plexapp.plugins.library"); print("plex scrobble ->", c) + b, H, uid = jf(); iid, s = jf_probe(b, H, uid); print("jellyfin probe before:", s) + c, _ = call("POST", b + f"/Users/{uid}/PlayedItems/{iid}", H); print("jellyfin played ->", c) + print("after: plex", plex_probe()[1], "| jellyfin", jf_probe(b, H, uid)[1]) +elif step == "state": + state() +elif step == "plexscan": + for sec in (1, 2): + print(f"plex refresh section {sec} ->", plex("GET", f"/library/sections/{sec}/refresh", force=1)[0]) + for _ in range(60): + time.sleep(5) + c, d = plex("GET", "/library/sections") + if not any(x.get("refreshing") for x in (d or {}).get("MediaContainer", {}).get("Directory", [])): + break + print("plex scan done", time.strftime("%H:%M:%S")) +elif step == "plexset": + print("plex autoEmptyTrash ->", plex("PUT", "/:/prefs", autoEmptyTrash=sys.argv[2])[0]) +elif step == "jfscan": + b, H, uid = jf() + print("jellyfin /Library/Refresh ->", call("POST", b + "/Library/Refresh", H)[0]) + for _ in range(60): + time.sleep(5) + c, tasks = call("GET", b + "/ScheduledTasks", H) + t = [x for x in tasks or [] if x.get("Key") == "RefreshLibrary"] + if t and t[0].get("State") == "Idle": + break + print("jellyfin scan done", time.strftime("%H:%M:%S")) +elif step == "arrscan": + for app, cmds in (("sonarr", ("RefreshSeries", "RescanSeries")), ("radarr", ("RefreshMovie", "RescanMovie"))): + base, H = arr(app) + for cmd in cmds: + c, d = call("POST", base + "/command", H, {"name": cmd}) + print(f"{app} {cmd} -> {c} {wait_cmd(base, H, (d or {}).get('id'))}") +elif step == "arrset": + v = sys.argv[2] == "1" + for app, key in (("sonarr", "autoUnmonitorPreviouslyDownloadedEpisodes"), ("radarr", "autoUnmonitorPreviouslyDownloadedMovies")): + base, H = arr(app) + c, mm = call("GET", base + "/config/mediamanagement", H) + mm[key] = v + print(f"{app} {key}={v} ->", call("PUT", base + f"/config/mediamanagement/{mm['id']}", H, mm)[0]) diff --git a/documentation/audits/media-build-2026-10-15/tools/k3.py b/documentation/audits/media-build-2026-10-15/tools/k3.py new file mode 100644 index 00000000..e29b0f7b --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/tools/k3.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python3 +"""k3.py create|state|pause|resume [drive] — K3 (a safe removal), run INSIDE the Tester 1 guest. + +create makes ONE torrent of our own random bytes (3 MB, private, no tracker) per client on Media C and adds it so it + seeds: qBittorrent (category tv-drive-c → media_c/userdata/media/torrents/tv), Transmission + (media_c/userdata/media/transmission/tv). +state every torrent: client, drive, state, progress — the „did anything else stop / re-check" record. +pause pause ONLY the torrents whose save folder is on (qBittorrent by save_path, Transmission by downloadDir). +resume start them again. +Passwords: the deploy secrets read from the containers' environment; never printed. +""" +import base64, hashlib, json, os, re, subprocess, sys, time, urllib.error, urllib.parse, urllib.request + +DRV = sys.argv[2] if len(sys.argv) > 2 else "media_c" +M = f"/mnt/felhom-drives/{DRV}/userdata/media" + + +def sh(c): + return subprocess.run(c, shell=True, capture_output=True, text=True).stdout.strip() + + +def ip(c): + return sh(f"docker inspect {c} -f '{{{{range .NetworkSettings.Networks}}}}{{{{.IPAddress}}}}{{{{end}}}}'") + + +def be(x): + if isinstance(x, int): return b"i%de" % x + if isinstance(x, bytes): return b"%d:%s" % (len(x), x) + if isinstance(x, str): return be(x.encode()) + if isinstance(x, list): return b"l" + b"".join(be(i) for i in x) + b"e" + return b"d" + b"".join(be(k) + be(x[k]) for k in sorted(x)) + b"e" + + +def mktorrent(d): + L = 262144 + files = sorted(os.listdir(d)); data = b"".join(open(os.path.join(d, f), "rb").read() for f in files) + info = {"name": os.path.basename(d), "piece length": L, "private": 1, + "pieces": b"".join(hashlib.sha1(data[i:i+L]).digest() for i in range(0, len(data), L)), + "files": [{"length": os.path.getsize(os.path.join(d, f)), "path": [f]} for f in files]} + return be({"info": info, "created by": "felhom K3 (own random bytes)"}) + + +QB = f"http://{ip('qbittorrent')}:8080" +qpw = sh("docker exec qbittorrent printenv QBT_ADMIN_PASSWORD") +req = urllib.request.Request(QB + "/api/v2/auth/login", data=urllib.parse.urlencode({"username": "admin", "password": qpw}).encode(), headers={"Referer": QB}) +with urllib.request.urlopen(req) as r: + m = re.search(r"((?:QBT_)?SID[A-Za-z0-9_]*)=([^;]+)", r.headers.get("Set-Cookie", "")) +QH = {"Referer": QB, "Cookie": f"{m.group(1)}={m.group(2)}"} + + +def qb(path, form=None, files=None): + if files: + bnd = "felhomk3" + body = b"" + for k, v in (form or {}).items(): + body += f"--{bnd}\r\nContent-Disposition: form-data; name=\"{k}\"\r\n\r\n{v}\r\n".encode() + for k, (fn, data) in files.items(): + body += f"--{bnd}\r\nContent-Disposition: form-data; name=\"{k}\"; filename=\"{fn}\"\r\nContent-Type: application/x-bittorrent\r\n\r\n".encode() + data + b"\r\n" + body += f"--{bnd}--\r\n".encode() + r = urllib.request.Request(QB + path, data=body, headers=dict(QH, **{"Content-Type": f"multipart/form-data; boundary={bnd}"})) + elif form is not None: + r = urllib.request.Request(QB + path, data=urllib.parse.urlencode(form).encode(), headers=QH) + else: + r = urllib.request.Request(QB + path, headers=QH) + with urllib.request.urlopen(r, timeout=60) as x: + t = x.read().decode() + try: return json.loads(t) + except ValueError: return t + + +TR = f"http://{ip('transmission')}:9091/transmission/rpc" +tpw = sh("docker exec transmission printenv PASS") +TA = {"Authorization": "Basic " + base64.b64encode(f"admin:{tpw}".encode()).decode()} + + +def tr(method, args=None): + h = dict(TA) + for _ in range(2): + r = urllib.request.Request(TR, data=json.dumps({"method": method, "arguments": args or {}}).encode(), headers=h) + try: + with urllib.request.urlopen(r, timeout=60) as x: return json.load(x) + except urllib.error.HTTPError as e: + if e.code == 409: h["X-Transmission-Session-Id"] = e.headers.get("X-Transmission-Session-Id"); continue + raise + + +def state(): + out = [] + for t in qb("/api/v2/torrents/info"): + out.append(("qbit", t["save_path"].split("/")[3], t["name"][:30], t["state"], round(t["progress"], 4))) + for t in tr("torrent-get", {"fields": ["name", "downloadDir", "status", "percentDone", "error", "errorString"]})["arguments"]["torrents"]: + st = {0: "stopped", 1: "check-wait", 2: "checking", 3: "dl-wait", 4: "downloading", 5: "seed-wait", 6: "seeding"}.get(t["status"], t["status"]) + out.append(("trans", t["downloadDir"].split("/")[3], t["name"][:30], st + (" ERR " + t["errorString"][:30] if t["error"] else ""), round(t["percentDone"], 4))) + return sorted(out) + + +step = sys.argv[1] +if step == "create": + for client, sub in (("qbit", "torrents/tv"), ("trans", "transmission/tv")): + d = f"{M}/{sub}/k3-own-bytes-{client}" + os.makedirs(d, exist_ok=True) + with open(f"{d}/data.bin", "wb") as f: f.write(os.urandom(3_000_000)) + sh(f"chown -R 1000:1000 '{d}'") + tor = mktorrent(d) + if client == "qbit": + print("qbit add ->", qb("/api/v2/torrents/add", {"category": (sys.argv[3] if len(sys.argv) > 3 else "tv-drive-c")}, {"torrents": ("k3.torrent", tor)})) + else: + print("trans add ->", json.dumps(tr("torrent-add", {"metainfo": base64.b64encode(tor).decode(), "download-dir": f"{M}/transmission/tv"}))[:160]) + time.sleep(20) + for s in state(): print(" ", s) +elif step == "state": + print(f"--- {time.strftime('%H:%M:%S')}") + for s in state(): print(" ", s) +elif step in ("pause", "resume"): + hs = [t["hash"] for t in qb("/api/v2/torrents/info") if t["save_path"].startswith(M)] + print(f"qbit {step} {len(hs)} torrent(s) on {DRV} ->", qb(f"/api/v2/torrents/{'stop' if step == 'pause' else 'start'}", {"hashes": "|".join(hs)}) if hs else "none") + ids = [t["id"] for t in tr("torrent-get", {"fields": ["id", "downloadDir"]})["arguments"]["torrents"] if t["downloadDir"].startswith(M)] + print(f"trans {step} {len(ids)} torrent(s) on {DRV} ->", tr("torrent-stop" if step == "pause" else "torrent-start", {"ids": ids})["result"] if ids else "none") + time.sleep(5) + for s in state(): print(" ", s) diff --git a/documentation/audits/media-build-2026-10-15/tools/mounts.py b/documentation/audits/media-build-2026-10-15/tools/mounts.py new file mode 100644 index 00000000..f540d30a --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/tools/mounts.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3 +"""mounts.py — every media app's (and the file browser's) bind mounts under /mnt/felhom-drives, and whether its own +mount table holds a dead drive (`shutdown`). Run INSIDE the guest. Also: the controller's override files.""" +import json, os, subprocess +def sh(c): return subprocess.run(c, shell=True, capture_output=True, text=True).stdout.strip() +for c in ("sonarr", "radarr", "qbittorrent", "transmission", "plex", "jellyfin", "prowlarr", "filebrowser"): + if not sh(f"docker ps -q -f name=^{c}$"): + print(f"{c:12} not running"); continue + ms = json.loads(sh(f"docker inspect {c} -f '{{{{json .Mounts}}}}'") or "[]") + binds = sorted(f"{m['Destination']}{'' if m.get('RW') else ':ro'}" for m in ms if m.get("Type") == "bind" and m["Source"].startswith("/mnt/felhom-drives")) + mi = sh(f"docker exec {c} cat /proc/self/mountinfo") + dead = sorted({l.split()[4] for l in mi.splitlines() if " - " in l and "shutdown" in l.split(" - ")[1].split()[2:3][0].split(",")} if mi else set()) + started = sh(f"docker inspect {c} -f '{{{{.State.StartedAt}}}}'")[:19] + print(f"{c:12} started={started} binds={binds} dead={dead}") +for d in sorted(os.listdir("/opt/docker/stacks")): + p = f"/opt/docker/stacks/{d}/docker-compose.override.yml" + if os.path.exists(p): + print(f"override {d}:\n" + open(p).read()) diff --git a/documentation/audits/media-build-2026-10-15/tools/where.py b/documentation/audits/media-build-2026-10-15/tools/where.py new file mode 100644 index 00000000..1406ad10 --- /dev/null +++ b/documentation/audits/media-build-2026-10-15/tools/where.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +"""where.py — S4: where every media file sits, per drive. Run INSIDE the guest (run_in_guest.py where.py). + +For each enrolled drive under /mnt/felhom-drives/*/userdata/media: every regular file (hidden temp folders included) +with its size, link count and inode, grouped by top folder (tv, movies, torrents, transmission, ...). Then the pairs +that are ONE file (same device + inode = a hardlink: no extra copy) and the library files that are NOT linked to any +download (link count 1 = a copy, or a download already removed). Stdlib only; reads, never writes. +""" +import collections, glob, os + +ROOTS = sorted(glob.glob("/mnt/felhom-drives/*/userdata/media")) +by_ino = collections.defaultdict(list) +total = 0 +for root in ROOTS: + drive = root.split("/")[3] + print(f"== drive {drive} ({root})") + for top in sorted(os.listdir(root)): + rows = [] + for dp, dn, fn in os.walk(os.path.join(root, top)): + for f in fn: + p = os.path.join(dp, f) + try: + s = os.lstat(p) + except OSError as e: + rows.append(f" ?? {p}: {e}") + continue + if not os.path.isfile(p) or os.path.islink(p): + continue + total += 1 + by_ino[(s.st_dev, s.st_ino)].append((drive, top, p, s.st_size, s.st_nlink)) + rows.append(f" {s.st_size/1e6:10.1f} MB links={s.st_nlink} inode={s.st_ino:<10} {os.path.relpath(p, root)}") + if rows: + print(f" -- {top}/ ({len(rows)} file(s))") + print("\n".join(rows)) +print(f"\n== {total} file(s) on {len(ROOTS)} drive(s)") +print("== ONE FILE, TWO NAMES (hardlink — no extra copy):") +n = 0 +for k, v in by_ino.items(): + if len(v) > 1: + n += 1 + print(f" drive {v[0][0]} inode {k[1]} ({v[0][3]/1e6:.1f} MB): " + " <-> ".join(f"{x[1]}/…/{os.path.basename(x[2])}" for x in v)) +print(f" {n} pair(s)") +print("== LIBRARY FILES WITH LINK COUNT 1 (a copy, or its download is gone):") +for k, v in by_ino.items(): + for d, top, p, size, nl in v: + if top in ("tv", "movies") and nl == 1: + print(f" drive {d}: {os.path.relpath(p, '/mnt/felhom-drives')} ({size/1e6:.1f} MB)")