diff --git a/.codex-input/dockdeck-before-authoritative-prune-20260722-062522.json b/.codex-input/dockdeck-before-authoritative-prune-20260722-062522.json deleted file mode 100644 index 0baac4b9..00000000 --- a/.codex-input/dockdeck-before-authoritative-prune-20260722-062522.json +++ /dev/null @@ -1 +0,0 @@ -{"version":1,"exportedAt":"2026-07-22T04:25:21.506Z","categories":[{"id":"cat-media","name":"Media","icon":"Play","sortOrder":10},{"id":"56567ddc-8247-4cf6-b8bc-107cdca19abe","name":"Downloads","icon":"Download","sortOrder":20},{"id":"258e13d8-db59-437c-9f73-13f47e9f2708","name":"Books & Documents","icon":"FileText","sortOrder":30},{"id":"2d920b78-7fda-4627-afa1-621e5fb85a94","name":"Photos","icon":"Image","sortOrder":40},{"id":"82379054-0179-4cd1-ad2a-52f21e24d1a5","name":"Home & Automation","icon":"Home","sortOrder":50},{"id":"2d9e8431-941f-4196-887a-9f57ca5e1c13","name":"Security & Identity","icon":"ShieldCheck","sortOrder":60},{"id":"8ec2b8e8-5e61-4448-a552-9208b7fddc47","name":"Network & Admin","icon":"Network","sortOrder":70},{"id":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","name":"Monitoring","icon":"Activity","sortOrder":80},{"id":"42a04073-0589-45e5-b13d-cf98e75405cb","name":"Development & Projects","icon":"Code2","sortOrder":90},{"id":"0c3ea354-dcd7-46a3-9ea8-d94744a5b531","name":"AI & ML","icon":"Bot","sortOrder":100},{"id":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","name":"Databases & Storage","icon":"Database","sortOrder":110},{"id":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","name":"Infrastructure","icon":"Server","sortOrder":120},{"id":"f24fbfb7-1a30-43bb-8247-e610dc76e3db","name":"Games & Emulation","icon":"Gamepad2","sortOrder":130},{"id":"cat-tools","name":"Tools & Productivity","icon":"Wrench","sortOrder":140},{"id":"19a1ba49-1109-41a9-9180-2384437309e0","name":"Experiments & Archived","icon":"Archive","sortOrder":150},{"id":"cat-favorites","name":"Favorites","icon":"Star","sortOrder":900}],"apps":[{"id":"f5083e79f2d7e9fb681903d84a620279c220dc050d67115bbef0300c31ac02f5","displayName":"068cb758e07b Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"b00db22e39233f09ac9c2a0a9839707abbed9afb7c204e9ca1732d8eacf7d3ca","displayName":"0b558b88f231 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"b670711c1a9e90942b291d8689df156ee91e4ccd0b3338e1c1a4470610d440e2","displayName":"221765bb0ef3 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"cac76996cd7eb29e18a1abb6a3a8945f93468f35453cafd19743873241aa5446","displayName":"2806fc6e2383 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"6ded81bf1ab25eaf78d798ff36e598c7d586b9e761bc20c1db414a9a5c49da93","displayName":"3bfb271a1615 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"3bfb271a1615778f23315471e2b8da1151e292cc2f246455804dbe9fbe9aa295","displayName":"3fa892f7cc26 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"82351e1a3f281b258ea81367b829de2da326e553c3fb3dce525251aec50a693b","displayName":"49b2a2cc55f2 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"0932e87fcadb933d28d03bd5b8940e6d164e1be754d900c76e05547f35deff88","displayName":"555a1a61e9f5 Evidencevault Worker 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"e0682a550b9a5d1cff34865c52684c9ea7a4c5b61725ce8212d4c4abce8d749b","displayName":"5dac460aeaf0 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"8ae812fe865f6b412d8df05995ea08df6e5ea0d4d06e198321f09e00c0a4396c","displayName":"79c5059e8a2e Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"063a59596a52ee6d04be5749b473d1e3e1fae25375c1b1df5ae5d0007a822ade","displayName":"7b366d881599 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"491063e5ebc69b7c5cd01989c26509574f1dd3b7817d6494f60f69ff6b8efb50","displayName":"84c2933f9a07 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"91f5d6e838f5002b248c473c2398ef02ed8d20fb5bb3e04da639dd600dc9c5c9","displayName":"9130302a6972 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"49b2a2cc55f22d34c879e9f48a93488131dab52247ca56e0ed37148619ad9f56","displayName":"9441ea4177f7 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"f3a4d474fe5cf25c151cfc3cad254e131724f4737112307c82164ba269abf402","displayName":"95b3d5e1bf3f Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"53a77010ef834d79ab354229fe6d0d78aeb1eb4084ed046d3670f8c434f9f9b8","displayName":"AdGuard-Home","visible":false,"widgetEnabled":true,"widgetSize":"wide","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d9e8431-941f-4196-887a-9f57ca5e1c13","sortOrder":0,"icon":"https://raw.githubusercontent.com/SiwatINC/unraid-ca-repository/master/icons/adguard.png","localUrlOverride":"http://192.168.10.3","externalUrlOverride":null},{"id":"3a82f5a08a3051ea29101c335b305f37854ad241f03a7ff22b2c044973edd52b","displayName":"Admiring Ramanujan","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"36e1a7fae607e9464b908c565d5592745a82fc4e926988d246b8f2d1e51a4dbd","displayName":"AnythingLLM","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"0c3ea354-dcd7-46a3-9ea8-d94744a5b531","sortOrder":0,"icon":"https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/anythingllm-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"5c5f556db82f20d3599f44f3a9a5d0c5346be3178423cd287fb9951e5e34e504","displayName":"BlockPilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"http://192.168.10.150:1222/blockpilot-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"13bd6291c12347b578350b5e019d0b7e69cc67538c3e24833668341884e4e1f2","displayName":"Blockpilot Autonomous Agent Runtime 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"55000ef6cc8247674b5f38c4fc0ba5dedb179cb4c46f4b64a9507eb166839897","displayName":"Blockpilot Autonomous Api 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"d10146e3e5206ce33fa6077315fc43cb14198c6ea5a6d9251d0a5131566ff685","displayName":"Blockpilot Autonomous Minecraft Sandbox 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"f24fbfb7-1a30-43bb-8247-e610dc76e3db","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"cc3df5832783547f18258acc1ad034ff4e7157c71348910c2c5d1b9b5a712b39","displayName":"Blockpilot Autonomous Postgres 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"4b4f6e51e46df47d3742887b1a272ed3fc4fc839a741691c4d9c771ffde0111f","displayName":"Blockpilot Autonomous Viaproxy 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"8ec2b8e8-5e61-4448-a552-9208b7fddc47","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"ed4c95067df45ae49ee91d4718026644c5145ff211ff89f45d53a36331e61edd","displayName":"Blockpilot Autonomous Web 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"9b1719bd46edba68e4b2329d527ae8100d08018fc41555ede75f84b34a2bbba5","displayName":"Buildx Buildkit Lumaops Clean0","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"206c6acad55707700beacf83fabdee18b1a48face2612ae147177b3a51678047","displayName":"Cc4fe0033113 Evidencevault Backend 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"ac16c10a2b623377265b2e8d7de76eecdc25034197910978759a3db6fdca76c4","displayName":"Chimera","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"2420b8ddaea69f732be3ee1dcfb4dd9699ec33ba8cb0dacb287ba6dc17e11b58","displayName":"Chimera","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"95b3d5e1bf3f0cc0bbcb63b9b90006a12723a13cf17f16b7e2d9f56985367793","displayName":"D5d67ca8a8d1 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"334fc5a2ead5ae3cb78ef208221fec9452d688911cb5b8dddc7e1ad964ff475e","displayName":"Deluge","visible":true,"widgetEnabled":true,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/deluge-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"45552a62d85ae6432708491fbdc711205730ec658a197852e9575b3bb57c1ecc","displayName":"DockDeck","visible":true,"widgetEnabled":true,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"http://192.168.10.150:1218/dockdeck-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"9a28572acdba4f69e54265cf66ffabec0edf8deb5d5e09b1cfc2955a8193aed6","displayName":"Drop OSS","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"f15f79939f264348e4c53cfbdc7f7354a2a3a3ca4cbe5612b7e577f9d0e1138c","displayName":"Evidencevault","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"a75872cfb8bb0131978a6de66a35b6c2786a8ec999a6a34fd376409e65ef8db9","displayName":"Evidencevault Backend 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"bcab97cbced8c3df20fe519e589c2d372ad296b7c49bb8f744ae323c0d4ede62","displayName":"Evidencevault Frontend 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"a600435fdfed4086ebbaf30bdbfe8360fbe7617e91d6b3bf74915dff4f48f333","displayName":"Evidencevault Postgres 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"ea4e95911227c41328d95278325ef5fe690ee51973f0e7a9207b425b340a8918","displayName":"Evidencevault Redis 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"ff58a2fae44aa1d83c0ee03122447eaeb25bc9dbb4eea647627d4c3fdb117a9e","displayName":"Evidencevault Worker 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"84c2933f9a078e9a9af22cb6601942acf8dfdddea18830f0836677ca3f5bc3f3","displayName":"F6d0062dc1c9 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"30172fd3255060509759d007c9d9245e8479be00c415fb7f4034cda234824c7a","displayName":"Fervent Bardeen","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"fae4760535877c5636b98e17bb7592d29d85ab828dc99d38a41e62a9cbf815f7","displayName":"Festive Brahmagupta","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"8cabb55abafb00db70bb1c5ba4d5decf08dc776f29d5ec1e40a2cb258ae93408","displayName":"GPU-Hot","visible":true,"widgetEnabled":true,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","sortOrder":0,"icon":"https://raw.githubusercontent.com/psalias2006/gpu-hot/main/static/favicon.svg","localUrlOverride":null,"externalUrlOverride":null},{"id":"327677558c165f22fda6b4d5de3a3eecfb563b707d979f3a79c7f20684a56335","displayName":"Gitea","visible":true,"widgetEnabled":true,"widgetSize":"wide","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"https://raw.githubusercontent.com/fanningert/unraid-docker-templates/master/fanningert/icons/gitea.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a43b3cc3feedb5e0e9e0beb1c1f8fc0dbc6b8a85ae2b2dfe74a9af4eba74616e","displayName":"Glances","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://github.com/nicolargo/glances/raw/master/glances/outputs/static/images/glances.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a2efd61d88e9e350d70f0bcc4d102e5bdca99d92a07849f06fa5e87d16272fba","displayName":"Great Panini","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"5668f5146fb7a7e370204db5a55c81d93ed91db399948ff9e1798f3b3f650c2d","displayName":"Grimmory","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"258e13d8-db59-437c-9f73-13f47e9f2708","sortOrder":0,"icon":"https://raw.githubusercontent.com/Watso4183/Unraid/master/grimmory.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"36c0bbce131f3dcf526f2bae398987dd8073109424aed21c348dc31dbcb92864","displayName":"Immich_PostgreSQL","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":"https://raw.githubusercontent.com/bmartino1/unraid-docker-templates/refs/heads/main/images/postgresql-immich-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"27866e474be7141a88d013edc7dbedf6457d077e7ecdcda8e8b4ae0f8ef5895a","displayName":"InfraBinder","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"http://boot/config/plugins/dockerMan/images/infrabinder-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"25a261bc65f1b90bdd76a6c6cf80d02ab11f51f7dd736d0765a7a14582760d1a","displayName":"InfraBinder Prev 699f5eb","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"26319eff919a9baadd888ca4999b57a3fe4d5a07fbc7da95cef4cef6c0766118","displayName":"Infrabinder Local","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"5e921fe460f069bcebe89c88f93a36b70dfefc554a2a2228dfd7888238f168b6","displayName":"Inspiring Carson","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"6d8f0e279fb3fe01032febe46e1fef7a2128094744938348608afa58ce250177","displayName":"JDownloader2","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/jlesage/docker-templates/master/jlesage/images/jdownloader-2-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"c81094d50a62891db6b0c6048d2bfad6466749d1d6aaa69555bcec58da403602","displayName":"Jolly Shannon","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"03fefbd0e23a7cbce157f43363effca3e3d4bf491e0c4a60cef22d9fdd1e1c1e","displayName":"Komga","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"258e13d8-db59-437c-9f73-13f47e9f2708","sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/komga.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a7723a21fa81a9ed0b1510ccaf044889afd45140a57db5ff1f567a37161597ed","displayName":"LiteLLM","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"0c3ea354-dcd7-46a3-9ea8-d94744a5b531","sortOrder":0,"icon":"https://raw.githubusercontent.com/BerriAI/litellm/refs/heads/main/ui/litellm-dashboard/src/app/favicon.ico","localUrlOverride":null,"externalUrlOverride":null},{"id":"d02aabe33dc46c8a1cb732e749dd9b08e31f3519a12b54fb93cbcb4822ddd79d","displayName":"Lumaops","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"04a729f4441a6c953e3ad66e91e38a2a8da8c4af962d4954ce3013d917542d3c","displayName":"Mcop Live Pilot Api 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"5a93438256763eec33a8bdff3bd94f569d71c88eba5b1804fc0bdb1fcbc9146f","displayName":"Mcop Live Pilot Postgres 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"625c9441abbaae130043108030f4bdcdc8e60f1d1d2c71475e72549e93b88bb2","displayName":"Mcop Live Pilot Web 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"4949a0da826ae2eae687ed989563e347fe493aaa77c8072e6807e4bdee903be4","displayName":"Mcop Live Pilot Worker Powershell 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"0c6628823d7bd6408ef9aa0ae2cb8c560723f2ca712893b7dc07a4f6ba29ff5f","displayName":"MeTube","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/metube-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"2b2f182885deec11726501cfde8c752c33c1f1555ac6a175e271f5db5bb50a35","displayName":"Media Codec Dashboard","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"246767a48b3f5ba457bb9699e30b84611e360502bcc43200c860c23637d877fe","displayName":"Media Curator","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"7bd6fa7227c853839552c55fdd9f87ac6e6e0440f1b6f211aa7308eae0b17421","displayName":"Media-Codec-Dashboard","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"http://boot/config/plugins/dockerMan/images/media-codec-dashboard-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"eb109d3a202d3fdbbb487f6460a87517827cea30a2b95821a280c0ab32f9e2d8","displayName":"Musing Tu","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"57a13e38fd28a002402f340818c4d57d6c6e63409a6c42d97d7861b717650f22","displayName":"NginxProxyManager","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/jlesage/docker-templates/master/jlesage/images/nginx-proxy-manager-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a5268ef6ed38ccc382f2c3fdc866066bedaece3d2133510ae73c25bd192a0966","displayName":"Nifty Galois","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"a4824d30fb13ff1ca4590852fe70fe4bde10c1bfb846f4a82191769b57b000f3","displayName":"OpenRGB-GUI-Unraid","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"82379054-0179-4cd1-ad2a-52f21e24d1a5","sortOrder":0,"icon":"https://github.com/cajuncoding/OpenRGB-GUI-Unraid/blob/main/OpenRGB.png?raw=true","localUrlOverride":null,"externalUrlOverride":null},{"id":"d1ec466e1f0ec4aa2961124e90861f21aa9c4f57c859f50ac8fa8bdb93680cbe","displayName":"PeerTube","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/peertube-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a5ba5c5054a43ada0a2cd5a8b196246eef350bbba10b26a646a9f579f27db0b1","displayName":"Pokemon Legacy Rom Builder","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"f24fbfb7-1a30-43bb-8247-e610dc76e3db","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"87c2a73095ef7c9b6a612cf93a3ea999480139b0ceef34d241aa5dc17ed44129","displayName":"Pokemon ROM Builder","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"f24fbfb7-1a30-43bb-8247-e610dc76e3db","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"e6dc872bfc15fe0e735d2abd77b02f180fad6154954e8b18abf0ac5f070700f4","displayName":"Porkfolio","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"93d5ab9943773e29e471b0281dd5813c624dbe4cba09a47befb0040c83174567","displayName":"PortainerCE","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"8ec2b8e8-5e61-4448-a552-9208b7fddc47","sortOrder":0,"icon":"https://raw.githubusercontent.com/EMP83/unraid-templates/main/PortainerCE/Portainer.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"ee0341d26738cfec49831742014e8397fa27623ffa1b9da48ff7f68c655f62af","displayName":"Project-Launchpad","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"http://boot/config/plugins/dockerMan/images/project-launchpad-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"ab995d4ec63090e01daad5285a77e03dd5e3e3a9dab2988605c9f2032fb93906","displayName":"Ps4 Http","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"c94ebf74273d6497e1f5fd9b7ecbd465548defe04893cf893247d90e6d0124c4","displayName":"QuizMonitor","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","sortOrder":0,"icon":"http://192.168.10.150:1205/quizmonitor-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"18e05f240e0ba98c1ad4660af80737553941491944d4e2be6fab13376bc8cc56","displayName":"ReadMeABook","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"258e13d8-db59-437c-9f73-13f47e9f2708","sortOrder":0,"icon":"https://raw.githubusercontent.com/kikootwo/ReadMeABook/main/public/RMAB_1024x1024_APPICON.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"fde54c7b700ba2ea5d49658f55a8133e66341b9232e0c2ea844c6713842a724c","displayName":"Rickroll","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"https://raw.githubusercontent.com/CorneliousJD/Docker-Templates/master/icons/rickroll.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"3bf189ee86965398fa077b61fd634052ef9af3acdef38827c3caebb8ef25666d","displayName":"StirlingPDF","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"258e13d8-db59-437c-9f73-13f47e9f2708","sortOrder":0,"icon":"https://raw.githubusercontent.com/Stirling-Tools/Stirling-PDF/refs/heads/main/app/core/src/main/resources/static/favicon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a8fddc3fe235ddb57c37e60cac1d7924c6ebc37b1cca8becdf73fa1d2ab6236e","displayName":"System-Monitor","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","sortOrder":0,"icon":"https://cdn-icons-png.flaticon.com/512/148/148824.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"23d4ca4401476208d9d2c3eed3ffbfb8fd3052d2c9a7c76eccf664a2d8b8e45e","displayName":"Transcoding GPU Benchmark","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"9899f25cc0398403c7f28886dd1bcd0beb39960fe03a4896c3f215af6fae0e8e","displayName":"Unraid AppOps Gateway","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"8ec2b8e8-5e61-4448-a552-9208b7fddc47","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"56b227f7470fe6290cf08c12482ea848a094c3eccf6d3bbd3a6469f1e58d5292","displayName":"Unraid Appops Gateway 1216","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"8ec2b8e8-5e61-4448-a552-9208b7fddc47","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"3ff6f317c794448b8117790746307be3af70f2c42b8315c09809764b2aa09fb0","displayName":"Unraid-progressive-web-app","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"https://raw.githubusercontent.com/laurensguijt/Unraid-PWA/main/frontend/public/icon.svg","localUrlOverride":null,"externalUrlOverride":null},{"id":"8400b449115d2eeda6a7344070f6e13b1a0fa77dee731b0037be61446c875416","displayName":"Vacatureradar Postgres 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"842f59d0c79e347c3ce8df23a56f7343f27fbc4388ac4f82afadf5291a28c945","displayName":"Vacatureradar Redis 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"638645c54305b12ee9fece1e589924fb9dcc03cf582c319cdc4d167278f95b3b","displayName":"Vacatureradar Scheduler 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"7ab1c152b0e6728a8ea11e71512d081ebba69681b7941fe21eab91f07c109fa8","displayName":"Vacatureradar Web 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"f4ab4cfbe8d326083beddc959912ebeb6751c514ab39274720db8e1c1b5591cd","displayName":"Vacatureradar Worker 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"fc20bcbe9a493079c82a7a83c8606e40601021e433c53289f28fb3b097a0e78f","displayName":"Zabbix Agent2","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"82d4243de72ca872b9e2c4a80d1dc05a2b5b25d9ca2937771e4331791c1f061b","displayName":"Zabbix Postgres","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"22cccbbfba9e244c60574765ccf197f9914778d0fdc379969cee905250324ee9","displayName":"Zabbix Server","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"e3c0630cb634a3c15e8a416a4758edda4fde3e1de0559177b57f7375283ef7b5","displayName":"Zabbix Web","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"c5b6254dc596834e2d5bddd3e0d1204819c20dcd8b3cb7e4326455448b4eddf1","displayName":"adminer","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/adminer.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"d7393899ed874b02da98dcf7b39a246f0d0e1e4fc570648346ffb05c385e9acc","displayName":"audiobookshelf","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"258e13d8-db59-437c-9f73-13f47e9f2708","sortOrder":0,"icon":"https://github.com/advplyr/audiobookshelf/raw/master/client/static/Logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"fbfe01ca6477a41c60426750199f11734d811f890f133bfb11cac350d08af76a","displayName":"audiodeck","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/JPDVM2014/icons/refs/heads/main/lms.webp","localUrlOverride":null,"externalUrlOverride":null},{"id":"7808471dee39a81ab14f6a89320fa10365a63eb76a57f7231abf3628d83d45d7","displayName":"authentik","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d9e8431-941f-4196-887a-9f57ca5e1c13","sortOrder":0,"icon":"https://raw.githubusercontent.com/ibracorp/app-logos/main/authentik/authentik.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"e434f121cbdaa7078066d9a5917757be86a65c5e223fead5e49ca73595607766","displayName":"authentik-worker","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d9e8431-941f-4196-887a-9f57ca5e1c13","sortOrder":0,"icon":"https://raw.githubusercontent.com/ibracorp/app-logos/main/authentik-worker/authentik_worker.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"3a5c9996eaa91364bcc39360b4fa75a5f241140e51953b3b05592c08a2f5d95a","displayName":"bazarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/bazarr-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"2cee9be49dca278fdb9a0b4e7fc8c7ea9c9c64898fdaf7e12a0dffd1f3d60634","displayName":"binhex-plexpass","visible":true,"widgetEnabled":true,"widgetSize":"wide","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/plex-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"19f86f7ece2f8101d9ee1d7e70e2db4ec7ac2e143915c526a380b1b8eb4d8200","displayName":"binhex-prowlarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/prowlarr-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"e9dbdaeac4ced6c07ddd7d6c00bff3d86efc0ca9c3112174fa0a13b48d9198e2","displayName":"binhex-radarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/radarr-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"1fc35296699c7f7ba06cafcedba6386ec527771218e466689c37b85736f32d47","displayName":"binhex-seerr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/seerr-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"ae46b40997d58e0382864fc3826128dc41d39f5dbacc0cdbd747245d739883ac","displayName":"binhex-sonarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/sonarr-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"622b32cdc83983dc9a8c02aefad32c4e088f5104f238caaaee038316aaf716f1","displayName":"flaresolverr","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"56567ddc-8247-4cf6-b8bc-107cdca19abe","sortOrder":0,"icon":"https://raw.githubusercontent.com/FlareSolverr/FlareSolverr/master/resources/flaresolverr_logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"2fa67dba95737d3e7e1e555999a83b90af9f50a132b0363ad675594ddcd10670","displayName":"geointel","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"http://192.168.10.150:1202/geointel-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"92ea092ade209c0ac28a6313ab5fee69fac4d54ffe760c204c080b5d7677bb73","displayName":"hivekeep","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":"https://hivekeep.app/apple-touch-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"943af848608bc35abc5391669566f92141ac6cd622c288118b0a73db52e8275e","displayName":"homeassistant","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"82379054-0179-4cd1-ad2a-52f21e24d1a5","sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/homeassistant-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"33b5972a0f47da98d794a3884098c1b2e05679ed3cd3f31e62cd6bfe4b806064","displayName":"immich","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/imagegenius/templates/main/unraid/img/immich.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"35df0c8cdd8c6d25217aa3f4cf0f7ee1859991affe38cf0ab8a7e9b3b73cc49f","displayName":"launchpad","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"3e4fe755313d90fd822a39a6b8b4ed9e12982b4822f823d6fafad0651dbf6018","displayName":"leafwiki","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"258e13d8-db59-437c-9f73-13f47e9f2708","sortOrder":0,"icon":"https://raw.githubusercontent.com/JPDVM2014/icons/refs/heads/main/leafwiki.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"00e7f7fed406c5c912d1913cf57081d13fa2b9ee749ba5c3ba1a9295ea285c5b","displayName":"lidarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/lidarr-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"c76b750c2ffc07969866bf89ad4219b885ab5941248324a84a340ef550d0cbf2","displayName":"listenarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/therobbiedavis/Listenarr/refs/heads/canary/.github/logo-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"1bd25878e4d7b6b166d326b3b9b87ff454f15bd67e6465e7eb6d84054ba7db93","displayName":"mariadb","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/mariadb-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"64e82bd257cfc1ff66b172c3e456a61ee81bc4bbe55a5925106b4da624e3a493","displayName":"mylar3","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/mylar3-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"57b8b5a44d7cb533316e8adb01bc4aa2a302d6c504747ac508fa348ce488da7f","displayName":"netdata","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","sortOrder":0,"icon":"https://raw.githubusercontent.com/Data-Monkey/docker-templates/master/Data-Monkey/img/netdata.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"8d6295c9ff4bd0e36e373b72d0d3836c36e55f04b447a976c8b4c7a1427145f3","displayName":"netronome","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"https://raw.githubusercontent.com/Soitora/Unraid-Templates/refs/heads/main/netronome/logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"6718fb9dbf6f8279c46e722562aff91b24e654fccbb1c895614c47c709fa3245","displayName":"ollama","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"0c3ea354-dcd7-46a3-9ea8-d94744a5b531","sortOrder":0,"icon":"https://ollama.ai/public/ollama.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"7fd116d864a8568da344c6ae60be730afb9309cfe956a91c640ec975d320e5bf","displayName":"opscenter-it-tools","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-tools","sortOrder":0,"icon":"http://192.168.10.150:1210/opscenter-it-tools-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"5eee414b49f454e21ec5bb84b720e27fe46e02b3eefcefe695df00457e8f4586","displayName":"organizrv2","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/causefx/Organizr/v2-master/plugins/images/organizr/logo-no-border.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"e9f6b0ca8220a84d90d6455888fa8039ba6f7c7e4ce600e9c7b0a23851ad1c7e","displayName":"paperless-ngx","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"258e13d8-db59-437c-9f73-13f47e9f2708","sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/paperless.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"62b43c3a22e35fd8481f5e5972f6f0f258b4cb2ec3791466b046e488075ce0ab","displayName":"postfix-relay","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/postfix-relay-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"dbd155b7781edf4c0348cc4c98cca05e868364dbc7d2d95876d6813db98aa3c4","displayName":"postgresql15","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":"https://github.com/juusujanar/unraid-templates/raw/master/img/PostgreSQL-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"9641eb162f00b33cbdd4e6a7119697603ad5f71173d552382e16d905e50a7c80","displayName":"projectbrain","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"/boot/config/plugins/dockerMan/images/projectbrain-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"f9c9848ce01b52b0ff9695f7d928e8da8140804fb9b3a37ec0678aa3fb488346","displayName":"psforge","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"/mnt/user/appdata/psforge/config/psforge-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"7a7e38dfceb96a8a5f19b3214b177c75e02957f1c48c26370a55beb9a3c515b9","displayName":"redis","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":"https://raw.githubusercontent.com/A75G/docker-templates/master/templates/icons/redis.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"4760a31bd4435f9bb6a58036bd7f0c429f1d8537acabe0d837f00e78f5cf4fc3","displayName":"retroarch","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"f24fbfb7-1a30-43bb-8247-e610dc76e3db","sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/retroarch-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"0ce503a4a7eefd56524ca826f111522600642e30f4808782e6cb72dc12125e00","displayName":"romm","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"f24fbfb7-1a30-43bb-8247-e610dc76e3db","sortOrder":0,"icon":"https://raw.githubusercontent.com/rommapp/romm/master/.github/resources/isotipo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"78239ad1675b2bd7a26d88adbff97b994942373b5f1cbf99318a6d32faf0fd4d","displayName":"slskd","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"56567ddc-8247-4cf6-b8bc-107cdca19abe","sortOrder":0,"icon":"https://raw.githubusercontent.com/manuel-rw/unraid-templates/master/templates/slskd/logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a2ec08d94f1c67a9402d48508d9a49e03431c0a6b82bf0d6bb7a6298fe16a56e","displayName":"spoortracker","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"/boot/config/plugins/dockerMan/images/spoortracker-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"8bec903a8d6d0c925ae7b6a69a15ffee63f5a05fcb2c2f20b26209dab40c4780","displayName":"tautulli","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/Tautulli/Tautulli-Unraid-Template/master/img/logo-circle.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"1f22cf8c72809a234571c2c2f12c5c8bf0ab1e2cd303d03d6c9c4d617a96a6b0","displayName":"tdarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/tdarr.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"d6535abb34e64372b9e9d647f22ad19a6580f9a24abe1f86100dc934b6c4b675","displayName":"tdarr_node","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/tdarr.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"c7f1cf79212a511eac8568095d99106978bde061c98ccd8aab610ec41ebaef7b","displayName":"unpackerr","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/wiki/davidnewhall/unpackerr/images/logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"773121d5f3fc33fcac373b1ba818cc4e1d1c57e23888a6232968d487c0950ab5","displayName":"unraid-stats","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/XeXSolutions/unraid-stats/main/images/logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"4350ced26ad36cf2042326a80c20a5648979196e51a8433b5ca471ab6cd8a55e","displayName":"vaultwarden","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d9e8431-941f-4196-887a-9f57ca5e1c13","sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/vaultwarden.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"9d9d34380ecde896f3fe3b03c99cfa3d328e661a4632fa7aa983b16609e7deb4","displayName":"watchtower","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://containrrr.dev/watchtower/images/logo-450px.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"5f2e57ffea26b275e1298d7a7e2c9f6a4d946a6cd0fbe508db0321207a0de075","displayName":"widefrog","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"http://127.0.0.1:1207/brand/widefrog-icon-128.png","localUrlOverride":null,"externalUrlOverride":null}],"favorites":[{"id":"2f2fe036-5290-4b65-911a-e3646b9bcb49","name":"Tweakers","url":"https://tweakers.net","icon":null,"categoryId":"cat-favorites","sortOrder":0}],"removedApps":["dockdeck-dockerproxy-1","odysseus-aio-app","odysseus-aio-chromadb","odysseus-aio-ntfy","odysseus-aio-searxng"],"preferences":{"theme":"dark","viewMode":"categories","accent":"coral","density":"comfortable","contentWidth":"wide","backgroundStyle":"aurora","reducedMotion":false,"showHero":true,"showStatus":true,"showServerWidget":true,"serverWidgetSize":"standard","serverWidgetShowStats":true,"serverWidgetShowDetails":true,"serverWidgetShowProgress":true,"serverWidgetShowNative":true,"serverWidgetShowChart":true,"serverWidgetChartMetric":"Running containers","serverWidgetChartType":"area","serverWidgetChartSamples":20,"serverWidgetShowLegend":true,"serverWidgetHiddenMetrics":[],"serverWidgetMetricOrder":[],"serverWidgetStatLimit":8,"serverWidgetOrder":0,"serverName":"Tower","serverUrl":"http://192.168.10.150:5000","pollingIntervalMs":30000,"externalAccess":false},"layoutPresets":[]} \ No newline at end of file diff --git a/.codex-input/dockdeck-before-widescreen-audit-20260722-140834.json b/.codex-input/dockdeck-before-widescreen-audit-20260722-140834.json deleted file mode 100644 index fa5821ee..00000000 --- a/.codex-input/dockdeck-before-widescreen-audit-20260722-140834.json +++ /dev/null @@ -1 +0,0 @@ -{"version":1,"exportedAt":"2026-07-22T12:08:33.596Z","categories":[{"id":"cat-media","name":"Media","icon":"Play","sortOrder":10},{"id":"56567ddc-8247-4cf6-b8bc-107cdca19abe","name":"Downloads","icon":"Download","sortOrder":20},{"id":"258e13d8-db59-437c-9f73-13f47e9f2708","name":"Books & Documents","icon":"FileText","sortOrder":30},{"id":"2d920b78-7fda-4627-afa1-621e5fb85a94","name":"Photos","icon":"Image","sortOrder":40},{"id":"82379054-0179-4cd1-ad2a-52f21e24d1a5","name":"Home & Automation","icon":"Home","sortOrder":50},{"id":"2d9e8431-941f-4196-887a-9f57ca5e1c13","name":"Security & Identity","icon":"ShieldCheck","sortOrder":60},{"id":"8ec2b8e8-5e61-4448-a552-9208b7fddc47","name":"Network & Admin","icon":"Network","sortOrder":70},{"id":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","name":"Monitoring","icon":"Activity","sortOrder":80},{"id":"42a04073-0589-45e5-b13d-cf98e75405cb","name":"Development & Projects","icon":"Code2","sortOrder":90},{"id":"0c3ea354-dcd7-46a3-9ea8-d94744a5b531","name":"AI & ML","icon":"Bot","sortOrder":100},{"id":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","name":"Databases & Storage","icon":"Database","sortOrder":110},{"id":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","name":"Infrastructure","icon":"Server","sortOrder":120},{"id":"f24fbfb7-1a30-43bb-8247-e610dc76e3db","name":"Games & Emulation","icon":"Gamepad2","sortOrder":130},{"id":"cat-tools","name":"Tools & Productivity","icon":"Wrench","sortOrder":140},{"id":"19a1ba49-1109-41a9-9180-2384437309e0","name":"Experiments & Archived","icon":"Archive","sortOrder":150},{"id":"cat-favorites","name":"Favorites","icon":"Star","sortOrder":900}],"apps":[{"id":"53a77010ef834d79ab354229fe6d0d78aeb1eb4084ed046d3670f8c434f9f9b8","displayName":"AdGuard-Home","visible":false,"widgetEnabled":true,"widgetSize":"wide","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d9e8431-941f-4196-887a-9f57ca5e1c13","sortOrder":0,"icon":"https://raw.githubusercontent.com/SiwatINC/unraid-ca-repository/master/icons/adguard.png","localUrlOverride":"http://192.168.10.3","externalUrlOverride":null},{"id":"36e1a7fae607e9464b908c565d5592745a82fc4e926988d246b8f2d1e51a4dbd","displayName":"AnythingLLM","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"0c3ea354-dcd7-46a3-9ea8-d94744a5b531","sortOrder":0,"icon":"https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/anythingllm-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"5c5f556db82f20d3599f44f3a9a5d0c5346be3178423cd287fb9951e5e34e504","displayName":"BlockPilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"http://192.168.10.150:1222/blockpilot-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"2420b8ddaea69f732be3ee1dcfb4dd9699ec33ba8cb0dacb287ba6dc17e11b58","displayName":"Chimera","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"334fc5a2ead5ae3cb78ef208221fec9452d688911cb5b8dddc7e1ad964ff475e","displayName":"Deluge","visible":true,"widgetEnabled":true,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/deluge-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"45552a62d85ae6432708491fbdc711205730ec658a197852e9575b3bb57c1ecc","displayName":"DockDeck","visible":true,"widgetEnabled":true,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"http://192.168.10.150:1218/dockdeck-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"9a28572acdba4f69e54265cf66ffabec0edf8deb5d5e09b1cfc2955a8193aed6","displayName":"Drop OSS","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"f15f79939f264348e4c53cfbdc7f7354a2a3a3ca4cbe5612b7e577f9d0e1138c","displayName":"Evidencevault","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"8cabb55abafb00db70bb1c5ba4d5decf08dc776f29d5ec1e40a2cb258ae93408","displayName":"GPU-Hot","visible":true,"widgetEnabled":true,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","sortOrder":0,"icon":"https://raw.githubusercontent.com/psalias2006/gpu-hot/main/static/favicon.svg","localUrlOverride":null,"externalUrlOverride":null},{"id":"327677558c165f22fda6b4d5de3a3eecfb563b707d979f3a79c7f20684a56335","displayName":"Gitea","visible":true,"widgetEnabled":true,"widgetSize":"wide","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"https://raw.githubusercontent.com/fanningert/unraid-docker-templates/master/fanningert/icons/gitea.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a43b3cc3feedb5e0e9e0beb1c1f8fc0dbc6b8a85ae2b2dfe74a9af4eba74616e","displayName":"Glances","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://github.com/nicolargo/glances/raw/master/glances/outputs/static/images/glances.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"5668f5146fb7a7e370204db5a55c81d93ed91db399948ff9e1798f3b3f650c2d","displayName":"Grimmory","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"258e13d8-db59-437c-9f73-13f47e9f2708","sortOrder":0,"icon":"https://raw.githubusercontent.com/Watso4183/Unraid/master/grimmory.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"36c0bbce131f3dcf526f2bae398987dd8073109424aed21c348dc31dbcb92864","displayName":"Immich_PostgreSQL","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":"https://raw.githubusercontent.com/bmartino1/unraid-docker-templates/refs/heads/main/images/postgresql-immich-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"27866e474be7141a88d013edc7dbedf6457d077e7ecdcda8e8b4ae0f8ef5895a","displayName":"InfraBinder","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"/api/icons/infrabinder-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"25a261bc65f1b90bdd76a6c6cf80d02ab11f51f7dd736d0765a7a14582760d1a","displayName":"InfraBinder Prev 699f5eb","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"6d8f0e279fb3fe01032febe46e1fef7a2128094744938348608afa58ce250177","displayName":"JDownloader2","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/jlesage/docker-templates/master/jlesage/images/jdownloader-2-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"03fefbd0e23a7cbce157f43363effca3e3d4bf491e0c4a60cef22d9fdd1e1c1e","displayName":"Komga","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"258e13d8-db59-437c-9f73-13f47e9f2708","sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/komga.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a7723a21fa81a9ed0b1510ccaf044889afd45140a57db5ff1f567a37161597ed","displayName":"LiteLLM","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"0c3ea354-dcd7-46a3-9ea8-d94744a5b531","sortOrder":0,"icon":"https://raw.githubusercontent.com/BerriAI/litellm/refs/heads/main/ui/litellm-dashboard/src/app/favicon.ico","localUrlOverride":null,"externalUrlOverride":null},{"id":"d02aabe33dc46c8a1cb732e749dd9b08e31f3519a12b54fb93cbcb4822ddd79d","displayName":"Lumaops","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"04a729f4441a6c953e3ad66e91e38a2a8da8c4af962d4954ce3013d917542d3c","displayName":"Mcop Live Pilot Api 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"5a93438256763eec33a8bdff3bd94f569d71c88eba5b1804fc0bdb1fcbc9146f","displayName":"Mcop Live Pilot Postgres 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"625c9441abbaae130043108030f4bdcdc8e60f1d1d2c71475e72549e93b88bb2","displayName":"Mcop Live Pilot Web 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"4949a0da826ae2eae687ed989563e347fe493aaa77c8072e6807e4bdee903be4","displayName":"Mcop Live Pilot Worker Powershell 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"0c6628823d7bd6408ef9aa0ae2cb8c560723f2ca712893b7dc07a4f6ba29ff5f","displayName":"MeTube","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/metube-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"2b2f182885deec11726501cfde8c752c33c1f1555ac6a175e271f5db5bb50a35","displayName":"Media Codec Dashboard","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"/api/icons/media-codec-dashboard-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"57a13e38fd28a002402f340818c4d57d6c6e63409a6c42d97d7861b717650f22","displayName":"NginxProxyManager","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/jlesage/docker-templates/master/jlesage/images/nginx-proxy-manager-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"d1ec466e1f0ec4aa2961124e90861f21aa9c4f57c859f50ac8fa8bdb93680cbe","displayName":"PeerTube","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/peertube-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a5ba5c5054a43ada0a2cd5a8b196246eef350bbba10b26a646a9f579f27db0b1","displayName":"Pokemon Legacy Rom Builder","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"f24fbfb7-1a30-43bb-8247-e610dc76e3db","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"93d5ab9943773e29e471b0281dd5813c624dbe4cba09a47befb0040c83174567","displayName":"PortainerCE","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"8ec2b8e8-5e61-4448-a552-9208b7fddc47","sortOrder":0,"icon":"https://raw.githubusercontent.com/EMP83/unraid-templates/main/PortainerCE/Portainer.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"ee0341d26738cfec49831742014e8397fa27623ffa1b9da48ff7f68c655f62af","displayName":"Project-Launchpad","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"/api/icons/project-launchpad-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"c94ebf74273d6497e1f5fd9b7ecbd465548defe04893cf893247d90e6d0124c4","displayName":"QuizMonitor","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","sortOrder":0,"icon":"http://192.168.10.150:1205/quizmonitor-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"18e05f240e0ba98c1ad4660af80737553941491944d4e2be6fab13376bc8cc56","displayName":"ReadMeABook","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"258e13d8-db59-437c-9f73-13f47e9f2708","sortOrder":0,"icon":"https://raw.githubusercontent.com/kikootwo/ReadMeABook/main/public/RMAB_1024x1024_APPICON.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"fde54c7b700ba2ea5d49658f55a8133e66341b9232e0c2ea844c6713842a724c","displayName":"Rickroll","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"https://raw.githubusercontent.com/CorneliousJD/Docker-Templates/master/icons/rickroll.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"3bf189ee86965398fa077b61fd634052ef9af3acdef38827c3caebb8ef25666d","displayName":"StirlingPDF","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"258e13d8-db59-437c-9f73-13f47e9f2708","sortOrder":0,"icon":"https://raw.githubusercontent.com/Stirling-Tools/Stirling-PDF/refs/heads/main/app/core/src/main/resources/static/favicon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a8fddc3fe235ddb57c37e60cac1d7924c6ebc37b1cca8becdf73fa1d2ab6236e","displayName":"System-Monitor","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","sortOrder":0,"icon":"https://cdn-icons-png.flaticon.com/512/148/148824.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"23d4ca4401476208d9d2c3eed3ffbfb8fd3052d2c9a7c76eccf664a2d8b8e45e","displayName":"Transcoding GPU Benchmark","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"9899f25cc0398403c7f28886dd1bcd0beb39960fe03a4896c3f215af6fae0e8e","displayName":"Unraid AppOps Gateway","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"8ec2b8e8-5e61-4448-a552-9208b7fddc47","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"8400b449115d2eeda6a7344070f6e13b1a0fa77dee731b0037be61446c875416","displayName":"Vacatureradar Postgres 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"842f59d0c79e347c3ce8df23a56f7343f27fbc4388ac4f82afadf5291a28c945","displayName":"Vacatureradar Redis 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"638645c54305b12ee9fece1e589924fb9dcc03cf582c319cdc4d167278f95b3b","displayName":"Vacatureradar Scheduler 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"7ab1c152b0e6728a8ea11e71512d081ebba69681b7941fe21eab91f07c109fa8","displayName":"Vacatureradar Web 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"f4ab4cfbe8d326083beddc959912ebeb6751c514ab39274720db8e1c1b5591cd","displayName":"Vacatureradar Worker 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"fc20bcbe9a493079c82a7a83c8606e40601021e433c53289f28fb3b097a0e78f","displayName":"Zabbix Agent2","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"82d4243de72ca872b9e2c4a80d1dc05a2b5b25d9ca2937771e4331791c1f061b","displayName":"Zabbix Postgres","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"22cccbbfba9e244c60574765ccf197f9914778d0fdc379969cee905250324ee9","displayName":"Zabbix Server","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"e3c0630cb634a3c15e8a416a4758edda4fde3e1de0559177b57f7375283ef7b5","displayName":"Zabbix Web","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"c5b6254dc596834e2d5bddd3e0d1204819c20dcd8b3cb7e4326455448b4eddf1","displayName":"adminer","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/adminer.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"d7393899ed874b02da98dcf7b39a246f0d0e1e4fc570648346ffb05c385e9acc","displayName":"audiobookshelf","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"258e13d8-db59-437c-9f73-13f47e9f2708","sortOrder":0,"icon":"https://github.com/advplyr/audiobookshelf/raw/master/client/static/Logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"fbfe01ca6477a41c60426750199f11734d811f890f133bfb11cac350d08af76a","displayName":"audiodeck","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/JPDVM2014/icons/refs/heads/main/lms.webp","localUrlOverride":null,"externalUrlOverride":null},{"id":"7808471dee39a81ab14f6a89320fa10365a63eb76a57f7231abf3628d83d45d7","displayName":"authentik","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d9e8431-941f-4196-887a-9f57ca5e1c13","sortOrder":0,"icon":"https://raw.githubusercontent.com/ibracorp/app-logos/main/authentik/authentik.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"e434f121cbdaa7078066d9a5917757be86a65c5e223fead5e49ca73595607766","displayName":"authentik-worker","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d9e8431-941f-4196-887a-9f57ca5e1c13","sortOrder":0,"icon":"https://raw.githubusercontent.com/ibracorp/app-logos/main/authentik-worker/authentik_worker.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"3a5c9996eaa91364bcc39360b4fa75a5f241140e51953b3b05592c08a2f5d95a","displayName":"bazarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/bazarr-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"2cee9be49dca278fdb9a0b4e7fc8c7ea9c9c64898fdaf7e12a0dffd1f3d60634","displayName":"binhex-plexpass","visible":true,"widgetEnabled":true,"widgetSize":"wide","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/plex-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"19f86f7ece2f8101d9ee1d7e70e2db4ec7ac2e143915c526a380b1b8eb4d8200","displayName":"binhex-prowlarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/prowlarr-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"e9dbdaeac4ced6c07ddd7d6c00bff3d86efc0ca9c3112174fa0a13b48d9198e2","displayName":"binhex-radarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/radarr-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"1fc35296699c7f7ba06cafcedba6386ec527771218e466689c37b85736f32d47","displayName":"binhex-seerr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/seerr-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"ae46b40997d58e0382864fc3826128dc41d39f5dbacc0cdbd747245d739883ac","displayName":"binhex-sonarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/sonarr-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"622b32cdc83983dc9a8c02aefad32c4e088f5104f238caaaee038316aaf716f1","displayName":"flaresolverr","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"56567ddc-8247-4cf6-b8bc-107cdca19abe","sortOrder":0,"icon":"https://raw.githubusercontent.com/FlareSolverr/FlareSolverr/master/resources/flaresolverr_logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"2fa67dba95737d3e7e1e555999a83b90af9f50a132b0363ad675594ddcd10670","displayName":"geointel","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"http://192.168.10.150:1202/geointel-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"92ea092ade209c0ac28a6313ab5fee69fac4d54ffe760c204c080b5d7677bb73","displayName":"hivekeep","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"b8a4b723-c689-4397-acdd-8b46ae1c6e1f","sortOrder":0,"icon":"https://hivekeep.app/apple-touch-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"943af848608bc35abc5391669566f92141ac6cd622c288118b0a73db52e8275e","displayName":"homeassistant","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"82379054-0179-4cd1-ad2a-52f21e24d1a5","sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/homeassistant-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"33b5972a0f47da98d794a3884098c1b2e05679ed3cd3f31e62cd6bfe4b806064","displayName":"immich","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/imagegenius/templates/main/unraid/img/immich.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"3e4fe755313d90fd822a39a6b8b4ed9e12982b4822f823d6fafad0651dbf6018","displayName":"leafwiki","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"258e13d8-db59-437c-9f73-13f47e9f2708","sortOrder":0,"icon":"https://raw.githubusercontent.com/JPDVM2014/icons/refs/heads/main/leafwiki.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"00e7f7fed406c5c912d1913cf57081d13fa2b9ee749ba5c3ba1a9295ea285c5b","displayName":"lidarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/lidarr-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"c76b750c2ffc07969866bf89ad4219b885ab5941248324a84a340ef550d0cbf2","displayName":"listenarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/therobbiedavis/Listenarr/refs/heads/canary/.github/logo-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"1bd25878e4d7b6b166d326b3b9b87ff454f15bd67e6465e7eb6d84054ba7db93","displayName":"mariadb","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/mariadb-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"64e82bd257cfc1ff66b172c3e456a61ee81bc4bbe55a5925106b4da624e3a493","displayName":"mylar3","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/mylar3-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"57b8b5a44d7cb533316e8adb01bc4aa2a302d6c504747ac508fa348ce488da7f","displayName":"netdata","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"9ba34cc1-2bdf-43eb-9bae-1a13d6e84e25","sortOrder":0,"icon":"https://raw.githubusercontent.com/Data-Monkey/docker-templates/master/Data-Monkey/img/netdata.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"8d6295c9ff4bd0e36e373b72d0d3836c36e55f04b447a976c8b4c7a1427145f3","displayName":"netronome","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"https://raw.githubusercontent.com/Soitora/Unraid-Templates/refs/heads/main/netronome/logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"6718fb9dbf6f8279c46e722562aff91b24e654fccbb1c895614c47c709fa3245","displayName":"ollama","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"0c3ea354-dcd7-46a3-9ea8-d94744a5b531","sortOrder":0,"icon":"https://ollama.ai/public/ollama.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"7fd116d864a8568da344c6ae60be730afb9309cfe956a91c640ec975d320e5bf","displayName":"opscenter-it-tools","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-tools","sortOrder":0,"icon":"http://192.168.10.150:1210/opscenter-it-tools-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"5eee414b49f454e21ec5bb84b720e27fe46e02b3eefcefe695df00457e8f4586","displayName":"organizrv2","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/causefx/Organizr/v2-master/plugins/images/organizr/logo-no-border.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"e9f6b0ca8220a84d90d6455888fa8039ba6f7c7e4ce600e9c7b0a23851ad1c7e","displayName":"paperless-ngx","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"258e13d8-db59-437c-9f73-13f47e9f2708","sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/paperless.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"62b43c3a22e35fd8481f5e5972f6f0f258b4cb2ec3791466b046e488075ce0ab","displayName":"postfix-relay","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/postfix-relay-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"dbd155b7781edf4c0348cc4c98cca05e868364dbc7d2d95876d6813db98aa3c4","displayName":"postgresql15","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":"https://github.com/juusujanar/unraid-templates/raw/master/img/PostgreSQL-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"9641eb162f00b33cbdd4e6a7119697603ad5f71173d552382e16d905e50a7c80","displayName":"projectbrain","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"/api/icons/projectbrain-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"f9c9848ce01b52b0ff9695f7d928e8da8140804fb9b3a37ec0678aa3fb488346","displayName":"psforge","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"/mnt/user/appdata/psforge/config/psforge-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"7a7e38dfceb96a8a5f19b3214b177c75e02957f1c48c26370a55beb9a3c515b9","displayName":"redis","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"e2bb0342-77b1-49f0-9d19-79d1a7f64a7e","sortOrder":0,"icon":"https://raw.githubusercontent.com/A75G/docker-templates/master/templates/icons/redis.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"4760a31bd4435f9bb6a58036bd7f0c429f1d8537acabe0d837f00e78f5cf4fc3","displayName":"retroarch","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"f24fbfb7-1a30-43bb-8247-e610dc76e3db","sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/retroarch-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"0ce503a4a7eefd56524ca826f111522600642e30f4808782e6cb72dc12125e00","displayName":"romm","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"f24fbfb7-1a30-43bb-8247-e610dc76e3db","sortOrder":0,"icon":"https://raw.githubusercontent.com/rommapp/romm/master/.github/resources/isotipo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"78239ad1675b2bd7a26d88adbff97b994942373b5f1cbf99318a6d32faf0fd4d","displayName":"slskd","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"56567ddc-8247-4cf6-b8bc-107cdca19abe","sortOrder":0,"icon":"https://raw.githubusercontent.com/manuel-rw/unraid-templates/master/templates/slskd/logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a2ec08d94f1c67a9402d48508d9a49e03431c0a6b82bf0d6bb7a6298fe16a56e","displayName":"spoortracker","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"/api/icons/spoortracker-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"8bec903a8d6d0c925ae7b6a69a15ffee63f5a05fcb2c2f20b26209dab40c4780","displayName":"tautulli","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/Tautulli/Tautulli-Unraid-Template/master/img/logo-circle.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"1f22cf8c72809a234571c2c2f12c5c8bf0ab1e2cd303d03d6c9c4d617a96a6b0","displayName":"tdarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/tdarr.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"d6535abb34e64372b9e9d647f22ad19a6580f9a24abe1f86100dc934b6c4b675","displayName":"tdarr_node","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/tdarr.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"c7f1cf79212a511eac8568095d99106978bde061c98ccd8aab610ec41ebaef7b","displayName":"unpackerr","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/wiki/davidnewhall/unpackerr/images/logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"773121d5f3fc33fcac373b1ba818cc4e1d1c57e23888a6232968d487c0950ab5","displayName":"unraid-stats","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://raw.githubusercontent.com/XeXSolutions/unraid-stats/main/images/logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"4350ced26ad36cf2042326a80c20a5648979196e51a8433b5ca471ab6cd8a55e","displayName":"vaultwarden","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d9e8431-941f-4196-887a-9f57ca5e1c13","sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/vaultwarden.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"9d9d34380ecde896f3fe3b03c99cfa3d328e661a4632fa7aa983b16609e7deb4","displayName":"watchtower","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"2d920b78-7fda-4627-afa1-621e5fb85a94","sortOrder":0,"icon":"https://containrrr.dev/watchtower/images/logo-450px.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"5f2e57ffea26b275e1298d7a7e2c9f6a4d946a6cd0fbe508db0321207a0de075","displayName":"widefrog","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"42a04073-0589-45e5-b13d-cf98e75405cb","sortOrder":0,"icon":"http://127.0.0.1:1207/brand/widefrog-icon-128.png","localUrlOverride":null,"externalUrlOverride":null}],"favorites":[{"id":"2f2fe036-5290-4b65-911a-e3646b9bcb49","name":"Tweakers","url":"https://tweakers.net","icon":null,"categoryId":"cat-favorites","sortOrder":0}],"removedApps":["dockdeck-dockerproxy-1","odysseus-aio-app","odysseus-aio-chromadb","odysseus-aio-ntfy","odysseus-aio-searxng"],"preferences":{"theme":"dark","viewMode":"categories","accent":"coral","density":"comfortable","contentWidth":"wide","backgroundStyle":"aurora","reducedMotion":false,"showHero":true,"showStatus":true,"showServerWidget":true,"serverWidgetSize":"standard","serverWidgetShowStats":true,"serverWidgetShowDetails":true,"serverWidgetShowProgress":true,"serverWidgetShowNative":true,"serverWidgetShowChart":true,"serverWidgetChartMetric":"Running containers","serverWidgetChartType":"area","serverWidgetChartSamples":20,"serverWidgetShowLegend":true,"serverWidgetHiddenMetrics":[],"serverWidgetMetricOrder":[],"serverWidgetStatLimit":8,"serverWidgetOrder":0,"serverName":"Tower","serverUrl":"http://192.168.10.150:5000","pollingIntervalMs":30000,"externalAccess":false},"layoutPresets":[]} \ No newline at end of file diff --git a/.codex-input/dockdeck-categories-before-20260722-051055.json b/.codex-input/dockdeck-categories-before-20260722-051055.json deleted file mode 100644 index 18703e3f..00000000 --- a/.codex-input/dockdeck-categories-before-20260722-051055.json +++ /dev/null @@ -1 +0,0 @@ -{"version":1,"exportedAt":"2026-07-22T03:10:54.447Z","categories":[{"id":"cat-media","name":"Media","icon":"Play","sortOrder":10},{"id":"cat-tools","name":"Tools","icon":"Wrench","sortOrder":20},{"id":"cat-favorites","name":"Favorites","icon":"Star","sortOrder":30}],"apps":[{"id":"f5083e79f2d7e9fb681903d84a620279c220dc050d67115bbef0300c31ac02f5","displayName":"068cb758e07b Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"b00db22e39233f09ac9c2a0a9839707abbed9afb7c204e9ca1732d8eacf7d3ca","displayName":"0b558b88f231 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"b670711c1a9e90942b291d8689df156ee91e4ccd0b3338e1c1a4470610d440e2","displayName":"221765bb0ef3 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"cac76996cd7eb29e18a1abb6a3a8945f93468f35453cafd19743873241aa5446","displayName":"2806fc6e2383 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"6ded81bf1ab25eaf78d798ff36e598c7d586b9e761bc20c1db414a9a5c49da93","displayName":"3bfb271a1615 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"3bfb271a1615778f23315471e2b8da1151e292cc2f246455804dbe9fbe9aa295","displayName":"3fa892f7cc26 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"82351e1a3f281b258ea81367b829de2da326e553c3fb3dce525251aec50a693b","displayName":"49b2a2cc55f2 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"0932e87fcadb933d28d03bd5b8940e6d164e1be754d900c76e05547f35deff88","displayName":"555a1a61e9f5 Evidencevault Worker 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"e0682a550b9a5d1cff34865c52684c9ea7a4c5b61725ce8212d4c4abce8d749b","displayName":"5dac460aeaf0 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"8ae812fe865f6b412d8df05995ea08df6e5ea0d4d06e198321f09e00c0a4396c","displayName":"79c5059e8a2e Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"063a59596a52ee6d04be5749b473d1e3e1fae25375c1b1df5ae5d0007a822ade","displayName":"7b366d881599 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"491063e5ebc69b7c5cd01989c26509574f1dd3b7817d6494f60f69ff6b8efb50","displayName":"84c2933f9a07 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"91f5d6e838f5002b248c473c2398ef02ed8d20fb5bb3e04da639dd600dc9c5c9","displayName":"9130302a6972 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"49b2a2cc55f22d34c879e9f48a93488131dab52247ca56e0ed37148619ad9f56","displayName":"9441ea4177f7 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"f3a4d474fe5cf25c151cfc3cad254e131724f4737112307c82164ba269abf402","displayName":"95b3d5e1bf3f Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"53a77010ef834d79ab354229fe6d0d78aeb1eb4084ed046d3670f8c434f9f9b8","displayName":"AdGuard-Home","visible":false,"widgetEnabled":true,"widgetSize":"wide","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":"cat-media","sortOrder":0,"icon":"https://raw.githubusercontent.com/SiwatINC/unraid-ca-repository/master/icons/adguard.png","localUrlOverride":"http://192.168.10.3","externalUrlOverride":null},{"id":"3a82f5a08a3051ea29101c335b305f37854ad241f03a7ff22b2c044973edd52b","displayName":"Admiring Ramanujan","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"36e1a7fae607e9464b908c565d5592745a82fc4e926988d246b8f2d1e51a4dbd","displayName":"AnythingLLM","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/anythingllm-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"5c5f556db82f20d3599f44f3a9a5d0c5346be3178423cd287fb9951e5e34e504","displayName":"BlockPilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"http://192.168.10.150:1222/blockpilot-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"13bd6291c12347b578350b5e019d0b7e69cc67538c3e24833668341884e4e1f2","displayName":"Blockpilot Autonomous Agent Runtime 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"55000ef6cc8247674b5f38c4fc0ba5dedb179cb4c46f4b64a9507eb166839897","displayName":"Blockpilot Autonomous Api 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"d10146e3e5206ce33fa6077315fc43cb14198c6ea5a6d9251d0a5131566ff685","displayName":"Blockpilot Autonomous Minecraft Sandbox 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"cc3df5832783547f18258acc1ad034ff4e7157c71348910c2c5d1b9b5a712b39","displayName":"Blockpilot Autonomous Postgres 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"4b4f6e51e46df47d3742887b1a272ed3fc4fc839a741691c4d9c771ffde0111f","displayName":"Blockpilot Autonomous Viaproxy 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"ed4c95067df45ae49ee91d4718026644c5145ff211ff89f45d53a36331e61edd","displayName":"Blockpilot Autonomous Web 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"9b1719bd46edba68e4b2329d527ae8100d08018fc41555ede75f84b34a2bbba5","displayName":"Buildx Buildkit Lumaops Clean0","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"206c6acad55707700beacf83fabdee18b1a48face2612ae147177b3a51678047","displayName":"Cc4fe0033113 Evidencevault Backend 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"ac16c10a2b623377265b2e8d7de76eecdc25034197910978759a3db6fdca76c4","displayName":"Chimera","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"2420b8ddaea69f732be3ee1dcfb4dd9699ec33ba8cb0dacb287ba6dc17e11b58","displayName":"Chimera","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"95b3d5e1bf3f0cc0bbcb63b9b90006a12723a13cf17f16b7e2d9f56985367793","displayName":"D5d67ca8a8d1 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"334fc5a2ead5ae3cb78ef208221fec9452d688911cb5b8dddc7e1ad964ff475e","displayName":"Deluge","visible":true,"widgetEnabled":true,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/deluge-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"45552a62d85ae6432708491fbdc711205730ec658a197852e9575b3bb57c1ecc","displayName":"DockDeck","visible":true,"widgetEnabled":true,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"http://192.168.10.150:1218/dockdeck-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"9a28572acdba4f69e54265cf66ffabec0edf8deb5d5e09b1cfc2955a8193aed6","displayName":"Drop OSS","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"f15f79939f264348e4c53cfbdc7f7354a2a3a3ca4cbe5612b7e577f9d0e1138c","displayName":"Evidencevault","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"a75872cfb8bb0131978a6de66a35b6c2786a8ec999a6a34fd376409e65ef8db9","displayName":"Evidencevault Backend 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"bcab97cbced8c3df20fe519e589c2d372ad296b7c49bb8f744ae323c0d4ede62","displayName":"Evidencevault Frontend 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"a600435fdfed4086ebbaf30bdbfe8360fbe7617e91d6b3bf74915dff4f48f333","displayName":"Evidencevault Postgres 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"ea4e95911227c41328d95278325ef5fe690ee51973f0e7a9207b425b340a8918","displayName":"Evidencevault Redis 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"ff58a2fae44aa1d83c0ee03122447eaeb25bc9dbb4eea647627d4c3fdb117a9e","displayName":"Evidencevault Worker 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"84c2933f9a078e9a9af22cb6601942acf8dfdddea18830f0836677ca3f5bc3f3","displayName":"F6d0062dc1c9 Blockpilot","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"30172fd3255060509759d007c9d9245e8479be00c415fb7f4034cda234824c7a","displayName":"Fervent Bardeen","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"fae4760535877c5636b98e17bb7592d29d85ab828dc99d38a41e62a9cbf815f7","displayName":"Festive Brahmagupta","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"8cabb55abafb00db70bb1c5ba4d5decf08dc776f29d5ec1e40a2cb258ae93408","displayName":"GPU-Hot","visible":true,"widgetEnabled":true,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/psalias2006/gpu-hot/main/static/favicon.svg","localUrlOverride":null,"externalUrlOverride":null},{"id":"327677558c165f22fda6b4d5de3a3eecfb563b707d979f3a79c7f20684a56335","displayName":"Gitea","visible":true,"widgetEnabled":true,"widgetSize":"wide","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/fanningert/unraid-docker-templates/master/fanningert/icons/gitea.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a43b3cc3feedb5e0e9e0beb1c1f8fc0dbc6b8a85ae2b2dfe74a9af4eba74616e","displayName":"Glances","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://github.com/nicolargo/glances/raw/master/glances/outputs/static/images/glances.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a2efd61d88e9e350d70f0bcc4d102e5bdca99d92a07849f06fa5e87d16272fba","displayName":"Great Panini","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"5668f5146fb7a7e370204db5a55c81d93ed91db399948ff9e1798f3b3f650c2d","displayName":"Grimmory","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/Watso4183/Unraid/master/grimmory.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"36c0bbce131f3dcf526f2bae398987dd8073109424aed21c348dc31dbcb92864","displayName":"Immich_PostgreSQL","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/bmartino1/unraid-docker-templates/refs/heads/main/images/postgresql-immich-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"27866e474be7141a88d013edc7dbedf6457d077e7ecdcda8e8b4ae0f8ef5895a","displayName":"InfraBinder","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"http://boot/config/plugins/dockerMan/images/infrabinder-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"25a261bc65f1b90bdd76a6c6cf80d02ab11f51f7dd736d0765a7a14582760d1a","displayName":"InfraBinder Prev 699f5eb","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"26319eff919a9baadd888ca4999b57a3fe4d5a07fbc7da95cef4cef6c0766118","displayName":"Infrabinder Local","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"5e921fe460f069bcebe89c88f93a36b70dfefc554a2a2228dfd7888238f168b6","displayName":"Inspiring Carson","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"6d8f0e279fb3fe01032febe46e1fef7a2128094744938348608afa58ce250177","displayName":"JDownloader2","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/jlesage/docker-templates/master/jlesage/images/jdownloader-2-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"c81094d50a62891db6b0c6048d2bfad6466749d1d6aaa69555bcec58da403602","displayName":"Jolly Shannon","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"03fefbd0e23a7cbce157f43363effca3e3d4bf491e0c4a60cef22d9fdd1e1c1e","displayName":"Komga","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/komga.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a7723a21fa81a9ed0b1510ccaf044889afd45140a57db5ff1f567a37161597ed","displayName":"LiteLLM","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/BerriAI/litellm/refs/heads/main/ui/litellm-dashboard/src/app/favicon.ico","localUrlOverride":null,"externalUrlOverride":null},{"id":"d02aabe33dc46c8a1cb732e749dd9b08e31f3519a12b54fb93cbcb4822ddd79d","displayName":"Lumaops","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"04a729f4441a6c953e3ad66e91e38a2a8da8c4af962d4954ce3013d917542d3c","displayName":"Mcop Live Pilot Api 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"5a93438256763eec33a8bdff3bd94f569d71c88eba5b1804fc0bdb1fcbc9146f","displayName":"Mcop Live Pilot Postgres 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"625c9441abbaae130043108030f4bdcdc8e60f1d1d2c71475e72549e93b88bb2","displayName":"Mcop Live Pilot Web 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"4949a0da826ae2eae687ed989563e347fe493aaa77c8072e6807e4bdee903be4","displayName":"Mcop Live Pilot Worker Powershell 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"0c6628823d7bd6408ef9aa0ae2cb8c560723f2ca712893b7dc07a4f6ba29ff5f","displayName":"MeTube","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/metube-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"2b2f182885deec11726501cfde8c752c33c1f1555ac6a175e271f5db5bb50a35","displayName":"Media Codec Dashboard","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"246767a48b3f5ba457bb9699e30b84611e360502bcc43200c860c23637d877fe","displayName":"Media Curator","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"7bd6fa7227c853839552c55fdd9f87ac6e6e0440f1b6f211aa7308eae0b17421","displayName":"Media-Codec-Dashboard","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"http://boot/config/plugins/dockerMan/images/media-codec-dashboard-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"eb109d3a202d3fdbbb487f6460a87517827cea30a2b95821a280c0ab32f9e2d8","displayName":"Musing Tu","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"57a13e38fd28a002402f340818c4d57d6c6e63409a6c42d97d7861b717650f22","displayName":"NginxProxyManager","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/jlesage/docker-templates/master/jlesage/images/nginx-proxy-manager-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a5268ef6ed38ccc382f2c3fdc866066bedaece3d2133510ae73c25bd192a0966","displayName":"Nifty Galois","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"a4824d30fb13ff1ca4590852fe70fe4bde10c1bfb846f4a82191769b57b000f3","displayName":"OpenRGB-GUI-Unraid","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://github.com/cajuncoding/OpenRGB-GUI-Unraid/blob/main/OpenRGB.png?raw=true","localUrlOverride":null,"externalUrlOverride":null},{"id":"d1ec466e1f0ec4aa2961124e90861f21aa9c4f57c859f50ac8fa8bdb93680cbe","displayName":"PeerTube","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/peertube-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a5ba5c5054a43ada0a2cd5a8b196246eef350bbba10b26a646a9f579f27db0b1","displayName":"Pokemon Legacy Rom Builder","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"87c2a73095ef7c9b6a612cf93a3ea999480139b0ceef34d241aa5dc17ed44129","displayName":"Pokemon ROM Builder","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"e6dc872bfc15fe0e735d2abd77b02f180fad6154954e8b18abf0ac5f070700f4","displayName":"Porkfolio","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"93d5ab9943773e29e471b0281dd5813c624dbe4cba09a47befb0040c83174567","displayName":"PortainerCE","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/EMP83/unraid-templates/main/PortainerCE/Portainer.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"ee0341d26738cfec49831742014e8397fa27623ffa1b9da48ff7f68c655f62af","displayName":"Project-Launchpad","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"http://boot/config/plugins/dockerMan/images/project-launchpad-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"ab995d4ec63090e01daad5285a77e03dd5e3e3a9dab2988605c9f2032fb93906","displayName":"Ps4 Http","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"c94ebf74273d6497e1f5fd9b7ecbd465548defe04893cf893247d90e6d0124c4","displayName":"QuizMonitor","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"http://192.168.10.150:1205/quizmonitor-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"18e05f240e0ba98c1ad4660af80737553941491944d4e2be6fab13376bc8cc56","displayName":"ReadMeABook","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/kikootwo/ReadMeABook/main/public/RMAB_1024x1024_APPICON.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"fde54c7b700ba2ea5d49658f55a8133e66341b9232e0c2ea844c6713842a724c","displayName":"Rickroll","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/CorneliousJD/Docker-Templates/master/icons/rickroll.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"3bf189ee86965398fa077b61fd634052ef9af3acdef38827c3caebb8ef25666d","displayName":"StirlingPDF","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/Stirling-Tools/Stirling-PDF/refs/heads/main/app/core/src/main/resources/static/favicon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a8fddc3fe235ddb57c37e60cac1d7924c6ebc37b1cca8becdf73fa1d2ab6236e","displayName":"System-Monitor","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://cdn-icons-png.flaticon.com/512/148/148824.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"23d4ca4401476208d9d2c3eed3ffbfb8fd3052d2c9a7c76eccf664a2d8b8e45e","displayName":"Transcoding GPU Benchmark","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"9899f25cc0398403c7f28886dd1bcd0beb39960fe03a4896c3f215af6fae0e8e","displayName":"Unraid AppOps Gateway","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"56b227f7470fe6290cf08c12482ea848a094c3eccf6d3bbd3a6469f1e58d5292","displayName":"Unraid Appops Gateway 1216","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"3ff6f317c794448b8117790746307be3af70f2c42b8315c09809764b2aa09fb0","displayName":"Unraid-progressive-web-app","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/laurensguijt/Unraid-PWA/main/frontend/public/icon.svg","localUrlOverride":null,"externalUrlOverride":null},{"id":"8400b449115d2eeda6a7344070f6e13b1a0fa77dee731b0037be61446c875416","displayName":"Vacatureradar Postgres 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"842f59d0c79e347c3ce8df23a56f7343f27fbc4388ac4f82afadf5291a28c945","displayName":"Vacatureradar Redis 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"638645c54305b12ee9fece1e589924fb9dcc03cf582c319cdc4d167278f95b3b","displayName":"Vacatureradar Scheduler 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"7ab1c152b0e6728a8ea11e71512d081ebba69681b7941fe21eab91f07c109fa8","displayName":"Vacatureradar Web 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"f4ab4cfbe8d326083beddc959912ebeb6751c514ab39274720db8e1c1b5591cd","displayName":"Vacatureradar Worker 1","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"fc20bcbe9a493079c82a7a83c8606e40601021e433c53289f28fb3b097a0e78f","displayName":"Zabbix Agent2","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"82d4243de72ca872b9e2c4a80d1dc05a2b5b25d9ca2937771e4331791c1f061b","displayName":"Zabbix Postgres","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"22cccbbfba9e244c60574765ccf197f9914778d0fdc379969cee905250324ee9","displayName":"Zabbix Server","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"e3c0630cb634a3c15e8a416a4758edda4fde3e1de0559177b57f7375283ef7b5","displayName":"Zabbix Web","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"c5b6254dc596834e2d5bddd3e0d1204819c20dcd8b3cb7e4326455448b4eddf1","displayName":"adminer","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/adminer.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"d7393899ed874b02da98dcf7b39a246f0d0e1e4fc570648346ffb05c385e9acc","displayName":"audiobookshelf","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://github.com/advplyr/audiobookshelf/raw/master/client/static/Logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"fbfe01ca6477a41c60426750199f11734d811f890f133bfb11cac350d08af76a","displayName":"audiodeck","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/JPDVM2014/icons/refs/heads/main/lms.webp","localUrlOverride":null,"externalUrlOverride":null},{"id":"7808471dee39a81ab14f6a89320fa10365a63eb76a57f7231abf3628d83d45d7","displayName":"authentik","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/ibracorp/app-logos/main/authentik/authentik.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"e434f121cbdaa7078066d9a5917757be86a65c5e223fead5e49ca73595607766","displayName":"authentik-worker","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/ibracorp/app-logos/main/authentik-worker/authentik_worker.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"3a5c9996eaa91364bcc39360b4fa75a5f241140e51953b3b05592c08a2f5d95a","displayName":"bazarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/bazarr-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"2cee9be49dca278fdb9a0b4e7fc8c7ea9c9c64898fdaf7e12a0dffd1f3d60634","displayName":"binhex-plexpass","visible":true,"widgetEnabled":true,"widgetSize":"wide","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/plex-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"19f86f7ece2f8101d9ee1d7e70e2db4ec7ac2e143915c526a380b1b8eb4d8200","displayName":"binhex-prowlarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/prowlarr-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"e9dbdaeac4ced6c07ddd7d6c00bff3d86efc0ca9c3112174fa0a13b48d9198e2","displayName":"binhex-radarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/radarr-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"1fc35296699c7f7ba06cafcedba6386ec527771218e466689c37b85736f32d47","displayName":"binhex-seerr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/seerr-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"ae46b40997d58e0382864fc3826128dc41d39f5dbacc0cdbd747245d739883ac","displayName":"binhex-sonarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/sonarr-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"622b32cdc83983dc9a8c02aefad32c4e088f5104f238caaaee038316aaf716f1","displayName":"flaresolverr","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/FlareSolverr/FlareSolverr/master/resources/flaresolverr_logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"2fa67dba95737d3e7e1e555999a83b90af9f50a132b0363ad675594ddcd10670","displayName":"geointel","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"http://192.168.10.150:1202/geointel-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"92ea092ade209c0ac28a6313ab5fee69fac4d54ffe760c204c080b5d7677bb73","displayName":"hivekeep","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://hivekeep.app/apple-touch-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"943af848608bc35abc5391669566f92141ac6cd622c288118b0a73db52e8275e","displayName":"homeassistant","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/homeassistant-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"33b5972a0f47da98d794a3884098c1b2e05679ed3cd3f31e62cd6bfe4b806064","displayName":"immich","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/imagegenius/templates/main/unraid/img/immich.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"35df0c8cdd8c6d25217aa3f4cf0f7ee1859991affe38cf0ab8a7e9b3b73cc49f","displayName":"launchpad","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":null,"localUrlOverride":null,"externalUrlOverride":null},{"id":"3e4fe755313d90fd822a39a6b8b4ed9e12982b4822f823d6fafad0651dbf6018","displayName":"leafwiki","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/JPDVM2014/icons/refs/heads/main/leafwiki.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"00e7f7fed406c5c912d1913cf57081d13fa2b9ee749ba5c3ba1a9295ea285c5b","displayName":"lidarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/lidarr-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"c76b750c2ffc07969866bf89ad4219b885ab5941248324a84a340ef550d0cbf2","displayName":"listenarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/therobbiedavis/Listenarr/refs/heads/canary/.github/logo-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"1bd25878e4d7b6b166d326b3b9b87ff454f15bd67e6465e7eb6d84054ba7db93","displayName":"mariadb","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/mariadb-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"64e82bd257cfc1ff66b172c3e456a61ee81bc4bbe55a5925106b4da624e3a493","displayName":"mylar3","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/mylar3-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"57b8b5a44d7cb533316e8adb01bc4aa2a302d6c504747ac508fa348ce488da7f","displayName":"netdata","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/Data-Monkey/docker-templates/master/Data-Monkey/img/netdata.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"8d6295c9ff4bd0e36e373b72d0d3836c36e55f04b447a976c8b4c7a1427145f3","displayName":"netronome","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/Soitora/Unraid-Templates/refs/heads/main/netronome/logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"6718fb9dbf6f8279c46e722562aff91b24e654fccbb1c895614c47c709fa3245","displayName":"ollama","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://ollama.ai/public/ollama.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"7fd116d864a8568da344c6ae60be730afb9309cfe956a91c640ec975d320e5bf","displayName":"opscenter-it-tools","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"http://192.168.10.150:1210/opscenter-it-tools-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"5eee414b49f454e21ec5bb84b720e27fe46e02b3eefcefe695df00457e8f4586","displayName":"organizrv2","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/causefx/Organizr/v2-master/plugins/images/organizr/logo-no-border.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"e9f6b0ca8220a84d90d6455888fa8039ba6f7c7e4ce600e9c7b0a23851ad1c7e","displayName":"paperless-ngx","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/paperless.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"62b43c3a22e35fd8481f5e5972f6f0f258b4cb2ec3791466b046e488075ce0ab","displayName":"postfix-relay","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/postfix-relay-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"dbd155b7781edf4c0348cc4c98cca05e868364dbc7d2d95876d6813db98aa3c4","displayName":"postgresql15","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://github.com/juusujanar/unraid-templates/raw/master/img/PostgreSQL-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"9641eb162f00b33cbdd4e6a7119697603ad5f71173d552382e16d905e50a7c80","displayName":"projectbrain","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"/boot/config/plugins/dockerMan/images/projectbrain-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"f9c9848ce01b52b0ff9695f7d928e8da8140804fb9b3a37ec0678aa3fb488346","displayName":"psforge","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"/mnt/user/appdata/psforge/config/psforge-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"7a7e38dfceb96a8a5f19b3214b177c75e02957f1c48c26370a55beb9a3c515b9","displayName":"redis","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/A75G/docker-templates/master/templates/icons/redis.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"4760a31bd4435f9bb6a58036bd7f0c429f1d8537acabe0d837f00e78f5cf4fc3","displayName":"retroarch","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/retroarch-logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"0ce503a4a7eefd56524ca826f111522600642e30f4808782e6cb72dc12125e00","displayName":"romm","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/rommapp/romm/master/.github/resources/isotipo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"78239ad1675b2bd7a26d88adbff97b994942373b5f1cbf99318a6d32faf0fd4d","displayName":"slskd","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/manuel-rw/unraid-templates/master/templates/slskd/logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"a2ec08d94f1c67a9402d48508d9a49e03431c0a6b82bf0d6bb7a6298fe16a56e","displayName":"spoortracker","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"/boot/config/plugins/dockerMan/images/spoortracker-icon.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"8bec903a8d6d0c925ae7b6a69a15ffee63f5a05fcb2c2f20b26209dab40c4780","displayName":"tautulli","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/Tautulli/Tautulli-Unraid-Template/master/img/logo-circle.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"1f22cf8c72809a234571c2c2f12c5c8bf0ab1e2cd303d03d6c9c4d617a96a6b0","displayName":"tdarr","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/tdarr.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"d6535abb34e64372b9e9d647f22ad19a6580f9a24abe1f86100dc934b6c4b675","displayName":"tdarr_node","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/tdarr.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"c7f1cf79212a511eac8568095d99106978bde061c98ccd8aab610ec41ebaef7b","displayName":"unpackerr","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/wiki/davidnewhall/unpackerr/images/logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"773121d5f3fc33fcac373b1ba818cc4e1d1c57e23888a6232968d487c0950ab5","displayName":"unraid-stats","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/XeXSolutions/unraid-stats/main/images/logo.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"4350ced26ad36cf2042326a80c20a5648979196e51a8433b5ca471ab6cd8a55e","displayName":"vaultwarden","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/vaultwarden.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"9d9d34380ecde896f3fe3b03c99cfa3d328e661a4632fa7aa983b16609e7deb4","displayName":"watchtower","visible":false,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"https://containrrr.dev/watchtower/images/logo-450px.png","localUrlOverride":null,"externalUrlOverride":null},{"id":"5f2e57ffea26b275e1298d7a7e2c9f6a4d946a6cd0fbe508db0321207a0de075","displayName":"widefrog","visible":true,"widgetEnabled":false,"widgetSize":"standard","widgetShowSummary":true,"widgetShowMetrics":true,"widgetShowInfrastructure":true,"widgetShowProgress":true,"widgetShowSparkline":true,"widgetChartMetric":"auto","widgetChartType":"line","widgetChartSamples":20,"widgetShowLegend":true,"widgetMetricStyles":{},"widgetStatLimit":6,"widgetOrder":0,"widgetMetricOrder":[],"widgetHiddenMetrics":[],"widgetPrimaryMetric":null,"widgetCustomLabel":null,"widgetWarningMetric":"cpu","widgetWarningDirection":"above","widgetWarningThreshold":null,"widgetRefreshIntervalMs":30000,"categoryId":null,"sortOrder":0,"icon":"http://127.0.0.1:1207/brand/widefrog-icon-128.png","localUrlOverride":null,"externalUrlOverride":null}],"favorites":[{"id":"2f2fe036-5290-4b65-911a-e3646b9bcb49","name":"Tweakers","url":"https://tweakers.net","icon":null,"categoryId":"cat-favorites","sortOrder":0}],"removedApps":["dockdeck-dockerproxy-1","odysseus-aio-app","odysseus-aio-chromadb","odysseus-aio-ntfy","odysseus-aio-searxng"],"preferences":{"theme":"dark","viewMode":"overview","accent":"coral","density":"comfortable","contentWidth":"wide","backgroundStyle":"aurora","reducedMotion":false,"showHero":true,"showStatus":true,"showServerWidget":true,"serverWidgetSize":"standard","serverWidgetShowStats":true,"serverWidgetShowDetails":true,"serverWidgetShowProgress":true,"serverWidgetShowNative":true,"serverWidgetShowChart":true,"serverWidgetChartMetric":"Running containers","serverWidgetChartType":"area","serverWidgetChartSamples":20,"serverWidgetShowLegend":true,"serverWidgetHiddenMetrics":[],"serverWidgetMetricOrder":[],"serverWidgetStatLimit":8,"serverWidgetOrder":0,"serverName":"Tower","serverUrl":"http://192.168.10.150:5000","pollingIntervalMs":30000,"externalAccess":false},"layoutPresets":[]} \ No newline at end of file diff --git a/.codex-input/dockdeck-categories-before-20260722-052942.json b/.codex-input/dockdeck-categories-before-20260722-052942.json deleted file mode 100644 index 45da2a8c..00000000 --- a/.codex-input/dockdeck-categories-before-20260722-052942.json +++ /dev/null @@ -1,5362 +0,0 @@ -{ - "version": 1, - "exportedAt": "2026-07-22T03:29:41.614Z", - "categories": [ - { - "id": "cat-media", - "name": "Media", - "icon": "Play", - "sortOrder": 10 - }, - { - "id": "cat-tools", - "name": "Tools", - "icon": "Wrench", - "sortOrder": 20 - }, - { - "id": "cat-favorites", - "name": "Favorites", - "icon": "Star", - "sortOrder": 30 - } - ], - "apps": [ - { - "id": "f5083e79f2d7e9fb681903d84a620279c220dc050d67115bbef0300c31ac02f5", - "displayName": "068cb758e07b Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "b00db22e39233f09ac9c2a0a9839707abbed9afb7c204e9ca1732d8eacf7d3ca", - "displayName": "0b558b88f231 Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "b670711c1a9e90942b291d8689df156ee91e4ccd0b3338e1c1a4470610d440e2", - "displayName": "221765bb0ef3 Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "cac76996cd7eb29e18a1abb6a3a8945f93468f35453cafd19743873241aa5446", - "displayName": "2806fc6e2383 Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "6ded81bf1ab25eaf78d798ff36e598c7d586b9e761bc20c1db414a9a5c49da93", - "displayName": "3bfb271a1615 Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "3bfb271a1615778f23315471e2b8da1151e292cc2f246455804dbe9fbe9aa295", - "displayName": "3fa892f7cc26 Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "82351e1a3f281b258ea81367b829de2da326e553c3fb3dce525251aec50a693b", - "displayName": "49b2a2cc55f2 Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "0932e87fcadb933d28d03bd5b8940e6d164e1be754d900c76e05547f35deff88", - "displayName": "555a1a61e9f5 Evidencevault Worker 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "e0682a550b9a5d1cff34865c52684c9ea7a4c5b61725ce8212d4c4abce8d749b", - "displayName": "5dac460aeaf0 Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "8ae812fe865f6b412d8df05995ea08df6e5ea0d4d06e198321f09e00c0a4396c", - "displayName": "79c5059e8a2e Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "063a59596a52ee6d04be5749b473d1e3e1fae25375c1b1df5ae5d0007a822ade", - "displayName": "7b366d881599 Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "491063e5ebc69b7c5cd01989c26509574f1dd3b7817d6494f60f69ff6b8efb50", - "displayName": "84c2933f9a07 Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "91f5d6e838f5002b248c473c2398ef02ed8d20fb5bb3e04da639dd600dc9c5c9", - "displayName": "9130302a6972 Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "49b2a2cc55f22d34c879e9f48a93488131dab52247ca56e0ed37148619ad9f56", - "displayName": "9441ea4177f7 Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "f3a4d474fe5cf25c151cfc3cad254e131724f4737112307c82164ba269abf402", - "displayName": "95b3d5e1bf3f Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "53a77010ef834d79ab354229fe6d0d78aeb1eb4084ed046d3670f8c434f9f9b8", - "displayName": "AdGuard-Home", - "visible": false, - "widgetEnabled": true, - "widgetSize": "wide", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": "cat-media", - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/SiwatINC/unraid-ca-repository/master/icons/adguard.png", - "localUrlOverride": "http://192.168.10.3", - "externalUrlOverride": null - }, - { - "id": "3a82f5a08a3051ea29101c335b305f37854ad241f03a7ff22b2c044973edd52b", - "displayName": "Admiring Ramanujan", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "36e1a7fae607e9464b908c565d5592745a82fc4e926988d246b8f2d1e51a4dbd", - "displayName": "AnythingLLM", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/anythingllm-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "5c5f556db82f20d3599f44f3a9a5d0c5346be3178423cd287fb9951e5e34e504", - "displayName": "BlockPilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "http://192.168.10.150:1222/blockpilot-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "13bd6291c12347b578350b5e019d0b7e69cc67538c3e24833668341884e4e1f2", - "displayName": "Blockpilot Autonomous Agent Runtime 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "55000ef6cc8247674b5f38c4fc0ba5dedb179cb4c46f4b64a9507eb166839897", - "displayName": "Blockpilot Autonomous Api 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "d10146e3e5206ce33fa6077315fc43cb14198c6ea5a6d9251d0a5131566ff685", - "displayName": "Blockpilot Autonomous Minecraft Sandbox 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "cc3df5832783547f18258acc1ad034ff4e7157c71348910c2c5d1b9b5a712b39", - "displayName": "Blockpilot Autonomous Postgres 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "4b4f6e51e46df47d3742887b1a272ed3fc4fc839a741691c4d9c771ffde0111f", - "displayName": "Blockpilot Autonomous Viaproxy 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "ed4c95067df45ae49ee91d4718026644c5145ff211ff89f45d53a36331e61edd", - "displayName": "Blockpilot Autonomous Web 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "9b1719bd46edba68e4b2329d527ae8100d08018fc41555ede75f84b34a2bbba5", - "displayName": "Buildx Buildkit Lumaops Clean0", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "206c6acad55707700beacf83fabdee18b1a48face2612ae147177b3a51678047", - "displayName": "Cc4fe0033113 Evidencevault Backend 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "ac16c10a2b623377265b2e8d7de76eecdc25034197910978759a3db6fdca76c4", - "displayName": "Chimera", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "2420b8ddaea69f732be3ee1dcfb4dd9699ec33ba8cb0dacb287ba6dc17e11b58", - "displayName": "Chimera", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "95b3d5e1bf3f0cc0bbcb63b9b90006a12723a13cf17f16b7e2d9f56985367793", - "displayName": "D5d67ca8a8d1 Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "334fc5a2ead5ae3cb78ef208221fec9452d688911cb5b8dddc7e1ad964ff475e", - "displayName": "Deluge", - "visible": true, - "widgetEnabled": true, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/deluge-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "45552a62d85ae6432708491fbdc711205730ec658a197852e9575b3bb57c1ecc", - "displayName": "DockDeck", - "visible": true, - "widgetEnabled": true, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "http://192.168.10.150:1218/dockdeck-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "9a28572acdba4f69e54265cf66ffabec0edf8deb5d5e09b1cfc2955a8193aed6", - "displayName": "Drop OSS", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "f15f79939f264348e4c53cfbdc7f7354a2a3a3ca4cbe5612b7e577f9d0e1138c", - "displayName": "Evidencevault", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "a75872cfb8bb0131978a6de66a35b6c2786a8ec999a6a34fd376409e65ef8db9", - "displayName": "Evidencevault Backend 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "bcab97cbced8c3df20fe519e589c2d372ad296b7c49bb8f744ae323c0d4ede62", - "displayName": "Evidencevault Frontend 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "a600435fdfed4086ebbaf30bdbfe8360fbe7617e91d6b3bf74915dff4f48f333", - "displayName": "Evidencevault Postgres 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "ea4e95911227c41328d95278325ef5fe690ee51973f0e7a9207b425b340a8918", - "displayName": "Evidencevault Redis 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "ff58a2fae44aa1d83c0ee03122447eaeb25bc9dbb4eea647627d4c3fdb117a9e", - "displayName": "Evidencevault Worker 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "84c2933f9a078e9a9af22cb6601942acf8dfdddea18830f0836677ca3f5bc3f3", - "displayName": "F6d0062dc1c9 Blockpilot", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "30172fd3255060509759d007c9d9245e8479be00c415fb7f4034cda234824c7a", - "displayName": "Fervent Bardeen", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "fae4760535877c5636b98e17bb7592d29d85ab828dc99d38a41e62a9cbf815f7", - "displayName": "Festive Brahmagupta", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "8cabb55abafb00db70bb1c5ba4d5decf08dc776f29d5ec1e40a2cb258ae93408", - "displayName": "GPU-Hot", - "visible": true, - "widgetEnabled": true, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/psalias2006/gpu-hot/main/static/favicon.svg", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "327677558c165f22fda6b4d5de3a3eecfb563b707d979f3a79c7f20684a56335", - "displayName": "Gitea", - "visible": true, - "widgetEnabled": true, - "widgetSize": "wide", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/fanningert/unraid-docker-templates/master/fanningert/icons/gitea.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "a43b3cc3feedb5e0e9e0beb1c1f8fc0dbc6b8a85ae2b2dfe74a9af4eba74616e", - "displayName": "Glances", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://github.com/nicolargo/glances/raw/master/glances/outputs/static/images/glances.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "a2efd61d88e9e350d70f0bcc4d102e5bdca99d92a07849f06fa5e87d16272fba", - "displayName": "Great Panini", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "5668f5146fb7a7e370204db5a55c81d93ed91db399948ff9e1798f3b3f650c2d", - "displayName": "Grimmory", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/Watso4183/Unraid/master/grimmory.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "36c0bbce131f3dcf526f2bae398987dd8073109424aed21c348dc31dbcb92864", - "displayName": "Immich_PostgreSQL", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/bmartino1/unraid-docker-templates/refs/heads/main/images/postgresql-immich-logo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "27866e474be7141a88d013edc7dbedf6457d077e7ecdcda8e8b4ae0f8ef5895a", - "displayName": "InfraBinder", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "http://boot/config/plugins/dockerMan/images/infrabinder-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "25a261bc65f1b90bdd76a6c6cf80d02ab11f51f7dd736d0765a7a14582760d1a", - "displayName": "InfraBinder Prev 699f5eb", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "26319eff919a9baadd888ca4999b57a3fe4d5a07fbc7da95cef4cef6c0766118", - "displayName": "Infrabinder Local", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "5e921fe460f069bcebe89c88f93a36b70dfefc554a2a2228dfd7888238f168b6", - "displayName": "Inspiring Carson", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "6d8f0e279fb3fe01032febe46e1fef7a2128094744938348608afa58ce250177", - "displayName": "JDownloader2", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/jlesage/docker-templates/master/jlesage/images/jdownloader-2-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "c81094d50a62891db6b0c6048d2bfad6466749d1d6aaa69555bcec58da403602", - "displayName": "Jolly Shannon", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "03fefbd0e23a7cbce157f43363effca3e3d4bf491e0c4a60cef22d9fdd1e1c1e", - "displayName": "Komga", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/komga.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "a7723a21fa81a9ed0b1510ccaf044889afd45140a57db5ff1f567a37161597ed", - "displayName": "LiteLLM", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/BerriAI/litellm/refs/heads/main/ui/litellm-dashboard/src/app/favicon.ico", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "d02aabe33dc46c8a1cb732e749dd9b08e31f3519a12b54fb93cbcb4822ddd79d", - "displayName": "Lumaops", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "04a729f4441a6c953e3ad66e91e38a2a8da8c4af962d4954ce3013d917542d3c", - "displayName": "Mcop Live Pilot Api 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "5a93438256763eec33a8bdff3bd94f569d71c88eba5b1804fc0bdb1fcbc9146f", - "displayName": "Mcop Live Pilot Postgres 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "625c9441abbaae130043108030f4bdcdc8e60f1d1d2c71475e72549e93b88bb2", - "displayName": "Mcop Live Pilot Web 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "4949a0da826ae2eae687ed989563e347fe493aaa77c8072e6807e4bdee903be4", - "displayName": "Mcop Live Pilot Worker Powershell 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "0c6628823d7bd6408ef9aa0ae2cb8c560723f2ca712893b7dc07a4f6ba29ff5f", - "displayName": "MeTube", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/metube-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "2b2f182885deec11726501cfde8c752c33c1f1555ac6a175e271f5db5bb50a35", - "displayName": "Media Codec Dashboard", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "246767a48b3f5ba457bb9699e30b84611e360502bcc43200c860c23637d877fe", - "displayName": "Media Curator", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "7bd6fa7227c853839552c55fdd9f87ac6e6e0440f1b6f211aa7308eae0b17421", - "displayName": "Media-Codec-Dashboard", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "http://boot/config/plugins/dockerMan/images/media-codec-dashboard-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "eb109d3a202d3fdbbb487f6460a87517827cea30a2b95821a280c0ab32f9e2d8", - "displayName": "Musing Tu", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "57a13e38fd28a002402f340818c4d57d6c6e63409a6c42d97d7861b717650f22", - "displayName": "NginxProxyManager", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/jlesage/docker-templates/master/jlesage/images/nginx-proxy-manager-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "a5268ef6ed38ccc382f2c3fdc866066bedaece3d2133510ae73c25bd192a0966", - "displayName": "Nifty Galois", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "a4824d30fb13ff1ca4590852fe70fe4bde10c1bfb846f4a82191769b57b000f3", - "displayName": "OpenRGB-GUI-Unraid", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://github.com/cajuncoding/OpenRGB-GUI-Unraid/blob/main/OpenRGB.png?raw=true", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "d1ec466e1f0ec4aa2961124e90861f21aa9c4f57c859f50ac8fa8bdb93680cbe", - "displayName": "PeerTube", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/peertube-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "a5ba5c5054a43ada0a2cd5a8b196246eef350bbba10b26a646a9f579f27db0b1", - "displayName": "Pokemon Legacy Rom Builder", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "87c2a73095ef7c9b6a612cf93a3ea999480139b0ceef34d241aa5dc17ed44129", - "displayName": "Pokemon ROM Builder", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "e6dc872bfc15fe0e735d2abd77b02f180fad6154954e8b18abf0ac5f070700f4", - "displayName": "Porkfolio", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "93d5ab9943773e29e471b0281dd5813c624dbe4cba09a47befb0040c83174567", - "displayName": "PortainerCE", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/EMP83/unraid-templates/main/PortainerCE/Portainer.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "ee0341d26738cfec49831742014e8397fa27623ffa1b9da48ff7f68c655f62af", - "displayName": "Project-Launchpad", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "http://boot/config/plugins/dockerMan/images/project-launchpad-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "ab995d4ec63090e01daad5285a77e03dd5e3e3a9dab2988605c9f2032fb93906", - "displayName": "Ps4 Http", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "c94ebf74273d6497e1f5fd9b7ecbd465548defe04893cf893247d90e6d0124c4", - "displayName": "QuizMonitor", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "http://192.168.10.150:1205/quizmonitor-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "18e05f240e0ba98c1ad4660af80737553941491944d4e2be6fab13376bc8cc56", - "displayName": "ReadMeABook", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/kikootwo/ReadMeABook/main/public/RMAB_1024x1024_APPICON.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "fde54c7b700ba2ea5d49658f55a8133e66341b9232e0c2ea844c6713842a724c", - "displayName": "Rickroll", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/CorneliousJD/Docker-Templates/master/icons/rickroll.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "3bf189ee86965398fa077b61fd634052ef9af3acdef38827c3caebb8ef25666d", - "displayName": "StirlingPDF", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/Stirling-Tools/Stirling-PDF/refs/heads/main/app/core/src/main/resources/static/favicon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "a8fddc3fe235ddb57c37e60cac1d7924c6ebc37b1cca8becdf73fa1d2ab6236e", - "displayName": "System-Monitor", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://cdn-icons-png.flaticon.com/512/148/148824.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "23d4ca4401476208d9d2c3eed3ffbfb8fd3052d2c9a7c76eccf664a2d8b8e45e", - "displayName": "Transcoding GPU Benchmark", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "9899f25cc0398403c7f28886dd1bcd0beb39960fe03a4896c3f215af6fae0e8e", - "displayName": "Unraid AppOps Gateway", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "56b227f7470fe6290cf08c12482ea848a094c3eccf6d3bbd3a6469f1e58d5292", - "displayName": "Unraid Appops Gateway 1216", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "3ff6f317c794448b8117790746307be3af70f2c42b8315c09809764b2aa09fb0", - "displayName": "Unraid-progressive-web-app", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/laurensguijt/Unraid-PWA/main/frontend/public/icon.svg", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "8400b449115d2eeda6a7344070f6e13b1a0fa77dee731b0037be61446c875416", - "displayName": "Vacatureradar Postgres 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "842f59d0c79e347c3ce8df23a56f7343f27fbc4388ac4f82afadf5291a28c945", - "displayName": "Vacatureradar Redis 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "638645c54305b12ee9fece1e589924fb9dcc03cf582c319cdc4d167278f95b3b", - "displayName": "Vacatureradar Scheduler 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "7ab1c152b0e6728a8ea11e71512d081ebba69681b7941fe21eab91f07c109fa8", - "displayName": "Vacatureradar Web 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "f4ab4cfbe8d326083beddc959912ebeb6751c514ab39274720db8e1c1b5591cd", - "displayName": "Vacatureradar Worker 1", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "fc20bcbe9a493079c82a7a83c8606e40601021e433c53289f28fb3b097a0e78f", - "displayName": "Zabbix Agent2", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "82d4243de72ca872b9e2c4a80d1dc05a2b5b25d9ca2937771e4331791c1f061b", - "displayName": "Zabbix Postgres", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "22cccbbfba9e244c60574765ccf197f9914778d0fdc379969cee905250324ee9", - "displayName": "Zabbix Server", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "e3c0630cb634a3c15e8a416a4758edda4fde3e1de0559177b57f7375283ef7b5", - "displayName": "Zabbix Web", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "c5b6254dc596834e2d5bddd3e0d1204819c20dcd8b3cb7e4326455448b4eddf1", - "displayName": "adminer", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/adminer.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "d7393899ed874b02da98dcf7b39a246f0d0e1e4fc570648346ffb05c385e9acc", - "displayName": "audiobookshelf", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://github.com/advplyr/audiobookshelf/raw/master/client/static/Logo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "fbfe01ca6477a41c60426750199f11734d811f890f133bfb11cac350d08af76a", - "displayName": "audiodeck", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/JPDVM2014/icons/refs/heads/main/lms.webp", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "7808471dee39a81ab14f6a89320fa10365a63eb76a57f7231abf3628d83d45d7", - "displayName": "authentik", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/ibracorp/app-logos/main/authentik/authentik.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "e434f121cbdaa7078066d9a5917757be86a65c5e223fead5e49ca73595607766", - "displayName": "authentik-worker", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/ibracorp/app-logos/main/authentik-worker/authentik_worker.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "3a5c9996eaa91364bcc39360b4fa75a5f241140e51953b3b05592c08a2f5d95a", - "displayName": "bazarr", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/bazarr-logo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "2cee9be49dca278fdb9a0b4e7fc8c7ea9c9c64898fdaf7e12a0dffd1f3d60634", - "displayName": "binhex-plexpass", - "visible": true, - "widgetEnabled": true, - "widgetSize": "wide", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/plex-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "19f86f7ece2f8101d9ee1d7e70e2db4ec7ac2e143915c526a380b1b8eb4d8200", - "displayName": "binhex-prowlarr", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/prowlarr-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "e9dbdaeac4ced6c07ddd7d6c00bff3d86efc0ca9c3112174fa0a13b48d9198e2", - "displayName": "binhex-radarr", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/radarr-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "1fc35296699c7f7ba06cafcedba6386ec527771218e466689c37b85736f32d47", - "displayName": "binhex-seerr", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/seerr-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "ae46b40997d58e0382864fc3826128dc41d39f5dbacc0cdbd747245d739883ac", - "displayName": "binhex-sonarr", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/binhex/docker-templates/master/binhex/images/sonarr-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "622b32cdc83983dc9a8c02aefad32c4e088f5104f238caaaee038316aaf716f1", - "displayName": "flaresolverr", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/FlareSolverr/FlareSolverr/master/resources/flaresolverr_logo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "2fa67dba95737d3e7e1e555999a83b90af9f50a132b0363ad675594ddcd10670", - "displayName": "geointel", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "http://192.168.10.150:1202/geointel-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "92ea092ade209c0ac28a6313ab5fee69fac4d54ffe760c204c080b5d7677bb73", - "displayName": "hivekeep", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://hivekeep.app/apple-touch-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "943af848608bc35abc5391669566f92141ac6cd622c288118b0a73db52e8275e", - "displayName": "homeassistant", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/homeassistant-logo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "33b5972a0f47da98d794a3884098c1b2e05679ed3cd3f31e62cd6bfe4b806064", - "displayName": "immich", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/imagegenius/templates/main/unraid/img/immich.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "35df0c8cdd8c6d25217aa3f4cf0f7ee1859991affe38cf0ab8a7e9b3b73cc49f", - "displayName": "launchpad", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": null, - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "3e4fe755313d90fd822a39a6b8b4ed9e12982b4822f823d6fafad0651dbf6018", - "displayName": "leafwiki", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/JPDVM2014/icons/refs/heads/main/leafwiki.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "00e7f7fed406c5c912d1913cf57081d13fa2b9ee749ba5c3ba1a9295ea285c5b", - "displayName": "lidarr", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/lidarr-logo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "c76b750c2ffc07969866bf89ad4219b885ab5941248324a84a340ef550d0cbf2", - "displayName": "listenarr", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/therobbiedavis/Listenarr/refs/heads/canary/.github/logo-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "1bd25878e4d7b6b166d326b3b9b87ff454f15bd67e6465e7eb6d84054ba7db93", - "displayName": "mariadb", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/mariadb-logo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "64e82bd257cfc1ff66b172c3e456a61ee81bc4bbe55a5925106b4da624e3a493", - "displayName": "mylar3", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/mylar3-logo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "57b8b5a44d7cb533316e8adb01bc4aa2a302d6c504747ac508fa348ce488da7f", - "displayName": "netdata", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/Data-Monkey/docker-templates/master/Data-Monkey/img/netdata.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "8d6295c9ff4bd0e36e373b72d0d3836c36e55f04b447a976c8b4c7a1427145f3", - "displayName": "netronome", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/Soitora/Unraid-Templates/refs/heads/main/netronome/logo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "6718fb9dbf6f8279c46e722562aff91b24e654fccbb1c895614c47c709fa3245", - "displayName": "ollama", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://ollama.ai/public/ollama.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "7fd116d864a8568da344c6ae60be730afb9309cfe956a91c640ec975d320e5bf", - "displayName": "opscenter-it-tools", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "http://192.168.10.150:1210/opscenter-it-tools-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "5eee414b49f454e21ec5bb84b720e27fe46e02b3eefcefe695df00457e8f4586", - "displayName": "organizrv2", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/causefx/Organizr/v2-master/plugins/images/organizr/logo-no-border.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "e9f6b0ca8220a84d90d6455888fa8039ba6f7c7e4ce600e9c7b0a23851ad1c7e", - "displayName": "paperless-ngx", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/paperless.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "62b43c3a22e35fd8481f5e5972f6f0f258b4cb2ec3791466b046e488075ce0ab", - "displayName": "postfix-relay", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/nwithan8/unraid_templates/master/images/postfix-relay-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "dbd155b7781edf4c0348cc4c98cca05e868364dbc7d2d95876d6813db98aa3c4", - "displayName": "postgresql15", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://github.com/juusujanar/unraid-templates/raw/master/img/PostgreSQL-logo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "9641eb162f00b33cbdd4e6a7119697603ad5f71173d552382e16d905e50a7c80", - "displayName": "projectbrain", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "/boot/config/plugins/dockerMan/images/projectbrain-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "f9c9848ce01b52b0ff9695f7d928e8da8140804fb9b3a37ec0678aa3fb488346", - "displayName": "psforge", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "/mnt/user/appdata/psforge/config/psforge-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "7a7e38dfceb96a8a5f19b3214b177c75e02957f1c48c26370a55beb9a3c515b9", - "displayName": "redis", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/A75G/docker-templates/master/templates/icons/redis.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "4760a31bd4435f9bb6a58036bd7f0c429f1d8537acabe0d837f00e78f5cf4fc3", - "displayName": "retroarch", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/retroarch-logo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "0ce503a4a7eefd56524ca826f111522600642e30f4808782e6cb72dc12125e00", - "displayName": "romm", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/rommapp/romm/master/.github/resources/isotipo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "78239ad1675b2bd7a26d88adbff97b994942373b5f1cbf99318a6d32faf0fd4d", - "displayName": "slskd", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/manuel-rw/unraid-templates/master/templates/slskd/logo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "a2ec08d94f1c67a9402d48508d9a49e03431c0a6b82bf0d6bb7a6298fe16a56e", - "displayName": "spoortracker", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "/boot/config/plugins/dockerMan/images/spoortracker-icon.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "8bec903a8d6d0c925ae7b6a69a15ffee63f5a05fcb2c2f20b26209dab40c4780", - "displayName": "tautulli", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/Tautulli/Tautulli-Unraid-Template/master/img/logo-circle.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "1f22cf8c72809a234571c2c2f12c5c8bf0ab1e2cd303d03d6c9c4d617a96a6b0", - "displayName": "tdarr", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/tdarr.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "d6535abb34e64372b9e9d647f22ad19a6580f9a24abe1f86100dc934b6c4b675", - "displayName": "tdarr_node", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/tdarr.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "c7f1cf79212a511eac8568095d99106978bde061c98ccd8aab610ec41ebaef7b", - "displayName": "unpackerr", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/wiki/davidnewhall/unpackerr/images/logo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "773121d5f3fc33fcac373b1ba818cc4e1d1c57e23888a6232968d487c0950ab5", - "displayName": "unraid-stats", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/XeXSolutions/unraid-stats/main/images/logo.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "4350ced26ad36cf2042326a80c20a5648979196e51a8433b5ca471ab6cd8a55e", - "displayName": "vaultwarden", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/vaultwarden.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "9d9d34380ecde896f3fe3b03c99cfa3d328e661a4632fa7aa983b16609e7deb4", - "displayName": "watchtower", - "visible": false, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "https://containrrr.dev/watchtower/images/logo-450px.png", - "localUrlOverride": null, - "externalUrlOverride": null - }, - { - "id": "5f2e57ffea26b275e1298d7a7e2c9f6a4d946a6cd0fbe508db0321207a0de075", - "displayName": "widefrog", - "visible": true, - "widgetEnabled": false, - "widgetSize": "standard", - "widgetShowSummary": true, - "widgetShowMetrics": true, - "widgetShowInfrastructure": true, - "widgetShowProgress": true, - "widgetShowSparkline": true, - "widgetChartMetric": "auto", - "widgetChartType": "line", - "widgetChartSamples": 20, - "widgetShowLegend": true, - "widgetMetricStyles": { - - }, - "widgetStatLimit": 6, - "widgetOrder": 0, - "widgetMetricOrder": [ - - ], - "widgetHiddenMetrics": [ - - ], - "widgetPrimaryMetric": null, - "widgetCustomLabel": null, - "widgetWarningMetric": "cpu", - "widgetWarningDirection": "above", - "widgetWarningThreshold": null, - "widgetRefreshIntervalMs": 30000, - "categoryId": null, - "sortOrder": 0, - "icon": "http://127.0.0.1:1207/brand/widefrog-icon-128.png", - "localUrlOverride": null, - "externalUrlOverride": null - } - ], - "favorites": [ - { - "id": "2f2fe036-5290-4b65-911a-e3646b9bcb49", - "name": "Tweakers", - "url": "https://tweakers.net", - "icon": null, - "categoryId": "cat-favorites", - "sortOrder": 0 - } - ], - "removedApps": [ - "dockdeck-dockerproxy-1", - "odysseus-aio-app", - "odysseus-aio-chromadb", - "odysseus-aio-ntfy", - "odysseus-aio-searxng" - ], - "preferences": { - "theme": "dark", - "viewMode": "overview", - "accent": "coral", - "density": "comfortable", - "contentWidth": "wide", - "backgroundStyle": "aurora", - "reducedMotion": false, - "showHero": true, - "showStatus": true, - "showServerWidget": true, - "serverWidgetSize": "standard", - "serverWidgetShowStats": true, - "serverWidgetShowDetails": true, - "serverWidgetShowProgress": true, - "serverWidgetShowNative": true, - "serverWidgetShowChart": true, - "serverWidgetChartMetric": "Running containers", - "serverWidgetChartType": "area", - "serverWidgetChartSamples": 20, - "serverWidgetShowLegend": true, - "serverWidgetHiddenMetrics": [ - - ], - "serverWidgetMetricOrder": [ - - ], - "serverWidgetStatLimit": 8, - "serverWidgetOrder": 0, - "serverName": "Tower", - "serverUrl": "http://192.168.10.150:5000", - "pollingIntervalMs": 30000, - "externalAccess": false - }, - "layoutPresets": [ - - ] -} diff --git a/.codex-input/geometry-final.txt b/.codex-input/geometry-final.txt deleted file mode 100644 index 9095dc2f..00000000 --- a/.codex-input/geometry-final.txt +++ /dev/null @@ -1,176 +0,0 @@ - width: 100%; - } - - .dashboard-widgets .widgets-edit, - .dashboard-widgets .widgets-refresh { - flex: 1 1 0; - justify-content: center; - } -} - -/* Cascade guard: platform geometry must win over the legacy launcher layer. */ -.dashboard-topbar-inner, -.dashboard-workspace { - width: calc(100% - var(--platform-inset)); - max-width: var(--platform-max); -} - -.dashboard-workspace { - grid-template-columns: clamp(248px, 15vw, 292px) minmax(0, 1fr); - gap: clamp(24px, 2vw, 36px); -} - -.dashboard-rail { - padding: 20px; -} - -.rail-intro span, -.rail-favorites nav a small, -.rail-widget-link small, -.rail-empty-action small, -.rail-deck-health p, -.rail-deck-health > button { - font-size: 12px; - line-height: 1.45; -} - -.rail-favorites nav a strong, -.rail-widget-link strong, -.rail-empty-action strong, -.rail-favorites > header > span, -.rail-deck-health > header > span { - font-size: 14px; -} - -.settings-layout { - width: calc(100% - var(--platform-inset)); - max-width: var(--platform-max); - grid-template-columns: clamp(300px, 18vw, 348px) minmax(0, 1fr); - margin: 0 auto; -} - -.settings-content, -.settings-page[data-section="appearance"] .settings-content { - max-width: none; - padding-right: clamp(40px, 4vw, 76px); - padding-left: clamp(40px, 4vw, 76px); - font-size: 16px; -} - -.settings-sidebar nav button { - font-size: 15.5px; - font-weight: 520; -} - -.settings-heading .eyebrow { - font-size: 13px; -} - -.settings-heading h2 { - font-size: clamp(34px, 2vw, 40px); - line-height: 1.15; -} - -.settings-heading > p:last-child { - max-width: 900px; - font-size: 17px; - line-height: 1.6; -} - -.settings-content :where(input, select, textarea, button) { - font-size: 15px; -} - -.settings-content :where( - .management-title small, - .management-card small, - .widget-option > p, - .widget-option > header small, - .integration-list article small, - .security-callout small, - .toggle-list article small, - .appearance-advanced small, - .integration-section-heading small - ) { - font-size: 13px; - line-height: 1.55; -} - -@media (min-width: 1900px) { - .dashboard-canvas { - padding-right: calc(var(--widget-dock-width) + 32px); - } - - .dashboard-insights-panel { - position: fixed; - z-index: 20; - top: 96px; - right: max(var(--platform-gutter), calc((100vw - var(--platform-max)) / 2)); - width: var(--widget-dock-width); - max-height: calc(100vh - 120px); - overflow: auto; - margin: 0; - background: color-mix(in srgb, var(--stitch-surface) 92%, transparent); - box-shadow: 0 20px 70px rgb(0 0 0 / 0.18); - backdrop-filter: blur(20px); - scrollbar-width: thin; - } - - .dashboard-insights-panel > summary { - position: sticky; - z-index: 3; - top: 0; - min-height: 76px; - background: color-mix(in srgb, var(--stitch-surface) 96%, transparent); - backdrop-filter: blur(16px); - } - - .dashboard-insights-panel .widgets-grid { - grid-template-columns: 1fr; - } - - .dashboard-insights-panel .widget-shell.widget-size-wide { - grid-column: auto; - } - - .dashboard-canvas .app-grid { - grid-template-columns: repeat(auto-fill, minmax(235px, 1fr)); - } - - .dashboard-canvas .app-grid.feature-grid { - grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); - } -} - -@media (max-width: 1399px) and (min-width: 1101px) { - .dashboard-workspace { - grid-template-columns: 232px minmax(0, 1fr); - } -} - -@media (max-width: 1100px) { - .dashboard-workspace { - width: 100%; - display: block; - } -} - -@media (max-width: 900px) { - .settings-layout { - width: 100%; - display: block; - } - - .settings-content, - .settings-page[data-section="appearance"] .settings-content { - padding: 28px 22px 100px; - font-size: 15px; - } -} - -@media (max-width: 600px) { - .settings-content, - .settings-page[data-section="appearance"] .settings-content { - padding: 24px 16px 96px; - } -} diff --git a/.codex-input/geometry-first.txt b/.codex-input/geometry-first.txt deleted file mode 100644 index 53019b3d..00000000 --- a/.codex-input/geometry-first.txt +++ /dev/null @@ -1,358 +0,0 @@ - - .canon-preference-columns { - grid-template-columns: 1fr; - } - - .app-editor-drawer { - width: 100%; - } -} - -/* Platform geometry v2 — shared scaling, readable settings and widescreen dock. */ -:root { - --platform-max: 3040px; - --platform-gutter: clamp(24px, 2.25vw, 56px); - --platform-inset: clamp(48px, 4.5vw, 112px); - --widget-dock-width: clamp(360px, 22vw, 430px); -} - -.dashboard-topbar-inner, -.dashboard-workspace { - width: calc(100% - var(--platform-inset)); - max-width: var(--platform-max); -} - -.dashboard-workspace { - grid-template-columns: clamp(248px, 15vw, 292px) minmax(0, 1fr); - gap: clamp(24px, 2vw, 36px); -} - -.dashboard-rail { - padding: 20px; -} - -.rail-intro span, -.rail-favorites nav a small, -.rail-widget-link small, -.rail-empty-action small, -.rail-deck-health p, -.rail-deck-health > button { - font-size: 12px; - line-height: 1.45; -} - -.rail-favorites nav a strong, -.rail-widget-link strong, -.rail-empty-action strong, -.rail-favorites > header > span, -.rail-deck-health > header > span { - font-size: 14px; -} - -.app-tile.standard { - isolation: isolate; - overflow: hidden; - border-color: color-mix( - in srgb, - var(--stitch-border) 88%, - var(--stitch-primary) 12% - ); - background: linear-gradient( - 145deg, - color-mix(in srgb, var(--stitch-surface) 94%, var(--stitch-primary) 6%), - var(--stitch-surface) - ); -} - -.app-tile.standard::before { - content: ""; - position: absolute; - z-index: -1; - inset: 0 auto 0 0; - width: 3px; - background: linear-gradient( - 180deg, - var(--stitch-primary), - var(--stitch-success-bright) - ); - opacity: 0; - transition: opacity 180ms ease; -} - -.app-tile.standard:hover, -.app-tile.standard:focus-visible { - border-color: color-mix( - in srgb, - var(--stitch-primary) 46%, - var(--stitch-border) - ); - box-shadow: 0 16px 34px rgb(0 0 0 / 0.13); - transform: translateY(-3px); -} - -.app-tile.standard:hover::before, -.app-tile.standard:focus-visible::before { - opacity: 1; -} - -.app-tile.standard .tile-arrow { - opacity: 0.42; - transition: - opacity 160ms ease, - transform 160ms ease; -} - -.app-tile.standard:hover .tile-arrow, -.app-tile.standard:focus-visible .tile-arrow { - opacity: 1; - transform: translate(2px, -2px); -} - -.quick-launch-home { - display: grid; - gap: 10px; - padding-bottom: 12px; -} - -.quick-links-section { - padding: 0 10px 12px; -} - -.quick-links-section > h2 { - margin: 0; - padding: 10px 10px 12px; - color: var(--stitch-text-muted); - font-size: 12px; - font-weight: 650; - letter-spacing: 0.08em; - text-transform: uppercase; -} - -.quick-links-grid { - display: grid; - grid-template-columns: repeat(3, minmax(0, 1fr)); - gap: 10px; -} - -.search-results .quick-links-grid > a { - min-width: 0; - min-height: 108px; - display: grid; - grid-template-columns: 46px minmax(0, 1fr) auto; - grid-template-rows: 1fr; - align-items: center; - gap: 12px; - border: 1px solid var(--stitch-border) !important; - border-radius: 13px !important; - padding: 14px; - background: color-mix(in srgb, var(--stitch-surface) 82%, transparent); -} - -.search-results .quick-links-grid > a:hover, -.search-results .quick-links-grid > a:focus-visible { - border-color: color-mix( - in srgb, - var(--stitch-primary) 48%, - var(--stitch-border) - ) !important; - background: var(--stitch-primary-soft); - transform: translateY(-2px); -} - -.quick-links-grid > a > span:nth-child(2) { - min-width: 0; - display: grid; - gap: 4px; -} - -.quick-links-grid > a strong, -.quick-links-grid > a small { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.quick-links-grid > a strong { - font-size: 14px; -} - -.quick-links-grid > a small { - color: var(--stitch-text-muted); - font-size: 12px; -} - -.quick-links-grid .result-icon { - width: 46px; - height: 46px; -} - -.settings-topbar { - padding-right: max( - calc(var(--platform-gutter) + 30px), - calc((100vw - var(--platform-max)) / 2 + 30px) - ); - padding-left: max( - calc(var(--platform-gutter) + 30px), - calc((100vw - var(--platform-max)) / 2 + 30px) - ); -} - -.settings-layout { - width: calc(100% - var(--platform-inset)); - max-width: var(--platform-max); - grid-template-columns: clamp(300px, 18vw, 348px) minmax(0, 1fr); - margin: 0 auto; -} - -.settings-content, -.settings-page[data-section="appearance"] .settings-content { - max-width: none; - padding-right: clamp(40px, 4vw, 76px); - padding-left: clamp(40px, 4vw, 76px); - font-size: 16px; -} - -.settings-sidebar nav button { - font-size: 15.5px; - font-weight: 520; -} - -.settings-sidebar h1, -.settings-sidebar .local-note { - font-size: 13px; - line-height: 1.45; -} - -.settings-heading .eyebrow { - font-size: 13px; -} - -.settings-heading h2 { - font-size: clamp(34px, 2vw, 40px); - line-height: 1.15; -} - -.settings-heading > p:last-child { - max-width: 900px; - font-size: 17px; - line-height: 1.6; -} - -.settings-content :where(input, select, textarea, button) { - font-size: 15px; -} - -.settings-content :where(.setting-label, label > span, .results-note) { - font-size: 13px; - line-height: 1.45; -} - -.settings-content - :where( - .management-title small, - .management-card small, - .widget-option > p, - .widget-option > header small, - .integration-list article small, - .security-callout small, - .toggle-list article small, - .appearance-advanced small, - .integration-section-heading small - ) { - font-size: 13px; - line-height: 1.55; -} - -.settings-content - :where( - .management-title strong, - .management-card strong, - .widget-option strong, - .toggle-list article strong, - .integration-list article strong - ) { - font-size: 15px; -} - -.management-table-head, -.filter-pills button, -.pagination span, -.favorite-editor > summary { - font-size: 13px; -} - -@media (min-width: 1900px) { - .dashboard-canvas { - padding-right: calc(var(--widget-dock-width) + 32px); - } - - .dashboard-insights-panel { - position: fixed; - z-index: 20; - top: 96px; - right: max(var(--platform-gutter), calc((100vw - var(--platform-max)) / 2)); - width: var(--widget-dock-width); - max-height: calc(100vh - 120px); - overflow: auto; - margin: 0; - background: color-mix(in srgb, var(--stitch-surface) 92%, transparent); - box-shadow: 0 20px 70px rgb(0 0 0 / 0.18); - backdrop-filter: blur(20px); - scrollbar-width: thin; - } - - .dashboard-insights-panel > summary { - position: sticky; - z-index: 3; - top: 0; - min-height: 76px; - background: color-mix(in srgb, var(--stitch-surface) 96%, transparent); - backdrop-filter: blur(16px); - } - - .dashboard-insights-panel .dashboard-widgets { - padding: 18px; - } - - .dashboard-insights-panel .widgets-grid { - grid-template-columns: 1fr; - } - - .dashboard-insights-panel .widget-shell.widget-size-wide { - grid-column: auto; - } - - .dashboard-insights-panel .widgets-section > header { - align-items: flex-start; - gap: 14px; - } - - .dashboard-insights-panel .widgets-actions { - width: 100%; - } - - .dashboard-insights-panel .widgets-edit, - .dashboard-insights-panel .widgets-refresh { - flex: 1 1 0; - justify-content: center; - } - - .dashboard-canvas .app-grid { - grid-template-columns: repeat(auto-fill, minmax(235px, 1fr)); - } - - .dashboard-canvas .app-grid.feature-grid { - grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); - } -} - -@media (min-width: 2600px) { - .dashboard-canvas .app-grid { - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - } - - .category-card-grid, - .integration-list, - .settings-page[data-section="favorites"] .compact-list { - grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)); - } diff --git a/.codex-input/layout-v2.db b/.codex-input/layout-v2.db deleted file mode 100644 index 4a3492ca..00000000 Binary files a/.codex-input/layout-v2.db and /dev/null differ diff --git a/.codex-input/layout-v2.db-shm b/.codex-input/layout-v2.db-shm deleted file mode 100644 index 8d7296ff..00000000 Binary files a/.codex-input/layout-v2.db-shm and /dev/null differ diff --git a/.codex-input/layout-v2.db-wal b/.codex-input/layout-v2.db-wal deleted file mode 100644 index cbab7e65..00000000 Binary files a/.codex-input/layout-v2.db-wal and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_app_editor_drawer_1440_900/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_app_editor_drawer_1440_900/code.html deleted file mode 100644 index 7ecdc1f1..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_app_editor_drawer_1440_900/code.html +++ /dev/null @@ -1,342 +0,0 @@ - - - - - - - - - - - - - - -
- - - -
-
-

Apps beheren

-
-
- -
-
-
-dns -
-
-

Pi-hole

-Networking -
-
-
-
-Online -
-
- -
-
-
-play_circle -
-
-

Plex

-Media -
-
-
-
-Online -
-
-
-
-
- -
- -
- -
-
-BEWERKEN -

Plex

-
-
- -
-
- -
- -
-
-info -

Algemene informatie

-
-
-
- - -
-
- -
-
-play_circle -
-
-

play_circle

-

Material Symbol

-
- -
-
-
-
- -
-
-visibility -

Zichtbaarheid en categorie

-
-
-
-
-Tonen op dashboard -Maak deze app zichtbaar voor alle gebruikers -
- -
-
- -
- -expand_more -
-
-
-
- -
-
-lan -

Lokale URL

-
-
-
-
- - -auto_awesome - Automatisch ontdekt - -
-
- -
-
-
- - -
- -
-
- -
-
-public -

Externe URL

-
-
-
-Externe toegang inschakelen - -
- - -
-
-
- -
- - -
-
- - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_app_editor_drawer_1440_900/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_app_editor_drawer_1440_900/screen.png deleted file mode 100644 index 7ff818fa..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_app_editor_drawer_1440_900/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_categorie_modus_1440_900_donker/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_categorie_modus_1440_900_donker/code.html deleted file mode 100644 index 2a85eccd..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_categorie_modus_1440_900_donker/code.html +++ /dev/null @@ -1,420 +0,0 @@ - - - - - -DockDeck - Media Categorie - - - - - - - - - -
-
-
-
-dock - DockDeck -
- -
-
- - - -
-
-
-
- - - -
- -
- -
-
-

Media Bibliotheek

-

Beheer en bekijk al je streaming services en media-automatisering.

-
-
- - -
-
-
- -
- - - - -
- -
- -
-
-
-
-play_circle -
-Zichtbaar -
-
-

Plex

-

Ultieme Media Server

-
-
-
-
-Online -
-arrow_forward_ios -
-
-
- -
-
-
-
-movie -
-Zichtbaar -
-
-

Jellyfin

-

Open Source Media System

-
-
-
-
-Online -
-arrow_forward_ios -
-
-
- -
-
-
-
-tv -
-Zichtbaar -
-
-

Sonarr

-

TV Series Automatisering

-
-
-
-
-Online -
-arrow_forward_ios -
-
-
- -
-
-
-
-theaters -
-Zichtbaar -
-
-

Radarr

-

Film Automatisering

-
-
-
-
-Online -
-arrow_forward_ios -
-
-
- -
-
-
-
-insights -
-Verborgen -
-
-

Tautulli

-

Plex Statistieken & Monitoring

-
-
-
-
-Online -
-arrow_forward_ios -
-
-
- -
-
-
-
-subtitles -
-Zichtbaar -
-
-

Bazarr

-

Ondertitel Beheer

-
-
-
-
-Online -
-arrow_forward_ios -
-
-
- -
-
-
-
-add_to_queue -
-Zichtbaar -
-
-

Overseerr

-

Verzoeken & Ontdekking

-
-
-
-
-Online -
-arrow_forward_ios -
-
-
- -
-
-
-
-music_note -
-Zichtbaar -
-
-

Lidarr

-

Muziek Automatisering

-
-
-
-
-Offline -
-arrow_forward_ios -
-
-
-
- -
-
-NIEUW ONTDEKT -
-

Nieuwe container gevonden?

-

DockDeck heeft een nieuwe onbekende container gedetecteerd. Wil je deze toevoegen aan je media overzicht?

- -
-
-
- - - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_categorie_modus_1440_900_donker/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_categorie_modus_1440_900_donker/screen.png deleted file mode 100644 index d2fa0ec2..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_categorie_modus_1440_900_donker/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1440_900_donker/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1440_900_donker/code.html deleted file mode 100644 index f9e456a3..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1440_900_donker/code.html +++ /dev/null @@ -1,331 +0,0 @@ - - - - - - - - - - - - - - -
-
-
-DockDeck Logo -DockDeck -
- - - -
-
-
- -
-
-

Goedenavond

-

Welkom terug bij je digitale hoofdkwartier.

-
-
-auto_awesome -3 nieuwe apps ontdekt -chevron_right -
-
- -
- - - - - -
- -
-
-star -

Favorieten

-
- -
- -
-
-movie -

Media

-
-
- -
-
-
-play_circle -
-
-
-Online -
-
-
-

Plex

-

Media server & Streaming

-
-
- -
-
-
-stream -
-
-
-Online -
-
-
-

Jellyfin

-

De vrije software mediaserver

-
-
- -
-
-
-tv -
-
-
-Offline -
-
-
-

Sonarr

-

PVR voor TV series

-
-
- -
-
-
-movie_filter -
-
-
-Status onbekend -
-
-
-

Radarr

-

PVR voor films

-
-
-
-
- -
-
-home -

Smart Home

-
-
- -
-
-
-home_app_logo -
-
-
-
-

Home Assistant

-

Centrale automatisering

-
-arrow_forward_ios -
- -
-
-
-shield -
-
-
-
-

AdGuard Home

-

Netwerkbeveiliging & Filter

-
-arrow_forward_ios -
-
-
-
- -
-
-
-
- - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1440_900_donker/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1440_900_donker/screen.png deleted file mode 100644 index 164054c6..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1440_900_donker/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1440_900_licht/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1440_900_licht/code.html deleted file mode 100644 index a26a13a7..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1440_900_licht/code.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -DockDeck — Dashboard - - - - - - - - -
-
-
- -
-badge -
-DockDeck -
- - -
- - - -
- - -
-
-
-
-
- - - -
-
- -
-
-

Favorieten

- -
-
- -
-
-
-home_mini -
-Nieuw -
-

Home Assistant

-

Zichtbaar op netwerk

-
- -Online -
-
- -
-
-
-movie -
-
-

Plex Media Server

-

Zichtbaar op netwerk

-
- -Online -
-
- -
-
-
-security -
-
-

Pi-hole

-

Zichtbaar op netwerk

-
- -Online -
-
- -
-
-
-storage -
-
-

NAS Opslag

-

Verborgen status

-
- -Offline -
-
-
-
- -
-
-
-
-theaters -

Media & Entertainment

-

Toegang tot al je streamingdiensten en lokale media bibliotheken op ƩƩn plek.

- -
- -
-play_circle -
-
-
-
-
-
-podcasts -
-
-

AudioBooks

-4 ACTIEF -
-chevron_right -
-
-
-tv -
-
-

Jellyfin

-ONLINE -
-chevron_right -
-
-
-download -
-
-

Transmission

-12 TAKEN -
-chevron_right -
-
-
-music_note -
-
-

Spotify Connect

-STANDBY -
-chevron_right -
-
-
- -
-

Smart Home

-
- -
-
-
-
-
-Camera Feed -

Woonkamer Camera

-
-
-
-
-
-

Temp

-

21°C

-
-
-

Vocht

-

45%

-
-
- -
-
- -
-
-
-lightbulb -
-
-
-
-
-

Verlichting

-

8 lampen actief

-
-
-
-
-thermostat -
-
-

Klimaat

-

Verwarming uit

-
-
-
-
-
-
-
-
- - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1440_900_licht/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1440_900_licht/screen.png deleted file mode 100644 index 512c113b..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1440_900_licht/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1920_1080_donker/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1920_1080_donker/code.html deleted file mode 100644 index 39fb0a47..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1920_1080_donker/code.html +++ /dev/null @@ -1,492 +0,0 @@ - - - - - -DockDeck — Dashboard - - - - - - - - - -
-
-
-dock -DockDeck -
- -
- - - -
-
-
-
- -
-

Goedenavond

-

Je digitale haven is klaar voor gebruik. Alle 24 diensten zijn operationeel.

-
- -
- -
-
-

-star - Favorieten -

-
-
- -
-
-
-cloud -
-Zichtbaar -
-
-

Nextcloud

-

Opslag & Sync

-
-
- -Online -
-
- -
-
-
-terminal -
-Zichtbaar -
-
-

Portainer

-

Container Management

-
-
- -Online -
-
-
-
-
-mail -
-Zichtbaar -
-
-

Mailserver

-

Posteo Relay

-
-
- -Online -
-
-
-
-
-monitoring -
-Zichtbaar -
-
-

Grafana

-

Server Statistieken

-
-
- -Online -
-
-
-
-
-key -
-Zichtbaar -
-
-

Vaultwarden

-

Wachtwoordbeheer

-
-
- -Online -
-
-
-
-
-dns -
-Zichtbaar -
-
-

Pi-hole

-

Advertentieblokkering

-
-
- -Online -
-
-
-
- -
-
-

-play_circle - Media -

-3 Actieve Streams -
-
-
-
-
-movie -
-
-
-

Plex

-

Home Theater

-
-
- -Online -
-
-
-
-
-music_note -
-
-
-

Navidrome

-

Muziek Streaming

-
-
- -Online -
-
-
-
-
-download -
-
-
-

Transmission

-

Download Manager

-
-
- -Online -
-
-
-
- -
-
-

-home - Smart Home -

-
-
-
-
-
-settings_remote -
-
-
-

Home Assistant

-

Automatisering

-
-
- -Online -
-
-
-
-
-videocam -
-
-
-

Frigate

-

Beveiliging NVR

-
-
- -Offline -
-
-
-
- -
-
-

-edit_note - Productiviteit -

-
-
-
-
-
-description -
-
-
-

Paperless-ngx

-

Documentenbeheer

-
-
- -Online -
-
-
-
-
-task_alt -
-
-
-

Vikunja

-

Takenlijst

-
-
- -Online -
-
-
-
- -
-
-

-hub - Netwerk -

-
-
-
-
-
-vpn_lock -
-
-
-

WireGuard

-

Toegang op Afstand

-
-
- -Online -
-
-
-
-
-router -
-
-
-

UniFi Controller

-

Netwerkbeheer

-
-
- -Online -
-
-
-
-
-
- -
-
-
-
- - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1920_1080_donker/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1920_1080_donker/screen.png deleted file mode 100644 index 5fd29073..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_dashboard_overzicht_1920_1080_donker/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_design_system_en_componentoverzicht/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_design_system_en_componentoverzicht/code.html deleted file mode 100644 index fa1e2e26..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_design_system_en_componentoverzicht/code.html +++ /dev/null @@ -1,394 +0,0 @@ - - - - - -DockDeck Canon v1 Design System - - - - - - - - - - -
-
-
-dock_to_bottom -DockDeck -
- -
- - - -
-
-
-
- - - -
- -
-

DockDeck Canon v1

-

- Het fundament van onze digitale homebase. Een minimalistisch en modern design system gebouwd voor sereniteit, controle en naadloze navigatie tussen je services. -

-
-
- -
-
- -
-
-

Logo Familie

-
-
- -Standaard -
-
-
-dock_to_bottom -
-Monochroom -
-
-
-dock_to_bottom -
-Favicon -
-
-
-
- -
-

Kleurenpalet

-
-
-
-
-

Navy Basis

-

#0B1326

-
-
-
-
-
-

Lavender Accent

-

#818CF8

-
-
-
-
-
-

Green Status

-

#4EDEA3

-
-
-
-
- -
-

Typografie (Geist Sans)

-
-
-

Headline LG

-

Serene Digital Bridge

-
-
-

Headline MD

-

Dashboard Overzicht

-
-
-

Body MD

-

De snelle vos springt over de luie hond.

-
-
-

Label Caps

-

ACTIE VEREIST

-
-
-
- -
-

App- & Service Tiles

-
- -
-
-terminal -FAVORIET -
-
Home Assistant
-

Zichtbaar

-
-
-Online -
-
- -
-
-dns -
-
Pi-Hole Base
-

Verborgen

-
-
-Offline -
-
-
-
- -
-

Interactieve Componenten

-
- -
-

Knoppen

-
- - - -
-
- -
-

Inputs & Switches

-
-
- -
-
-Donkere Modus - -
-
-
- -
-

Indicators

-
-Operationeel -Kritiek -Onderhoud -
-auto_awesome -Nieuw ontdekt -
-
-
-
-
- -
- -
-

Interface Atmosfeer

-

"Digital Zen—een georganiseerde, rustige ruimte."

-
-
-
- - -
-
- - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_design_system_en_componentoverzicht/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_design_system_en_componentoverzicht/screen.png deleted file mode 100644 index ac69036d..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_design_system_en_componentoverzicht/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_apps_1440_900/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_apps_1440_900/code.html deleted file mode 100644 index d98c0f46..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_apps_1440_900/code.html +++ /dev/null @@ -1,450 +0,0 @@ - - - - - -DockDeck - Apps Instellingen - - - - - - - - - -
-
-
-dock -DockDeck -
- -
-
-
- - - -
- -
-
-
- -

App Beheer

-

- DockDeck leest beschikbare apps uit Unraid-metadata en haalt hun actuele status op via een beperkte read-only Docker Proxy. Nieuwe apps zijn standaard verborgen. -

-
-
- - - Statussen worden bij het openen en daarna ongeveer iedere 30 seconden bijgewerkt. - -
-
-
- -
- -
- - - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AppStatusCategorieZichtbaarheidActie
-
-
-router -
-
-
Plex Media Server
-
plex-linuxserver
-
-
-
-
- -Online -
-
-Media - -
- -
-
- -
-
-
-terminal -
-
-
Home Assistant
-
ha-core
-
-
-
-
- -Online -
-
-Domotica - -
- -
-
- -
-
-
-cloud -
-
-
Nextcloud
-
nextcloud-aio
-
-
-
-
- -Offline -
-
-Opslag - -
- -
-
- -
-
-
-dns -
-
-
- Pi-hole - NIEUW -
-
pihole-official
-
-
-
-
- -Online -
-
-Netwerk - -
- -
-
- -
-
- -
-
-

Live Dashboard Preview

-

- Instellingen worden direct toegepast op je startscherm. De verborgen apps zijn alleen zichtbaar in dit beheeroverzicht. -

-
-
-
-router -
-Plex -
-
-
-terminal -
-Home Assistant -
-
-
-add -
-Verborgen -
-
-
-
- -
-auto_awesome -

Auto-Sync Actief

-

Sync met Unraid API voltooid 2m geleden

-
-
-
-
-
-
- - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_apps_1440_900/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_apps_1440_900/screen.png deleted file mode 100644 index 118c393a..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_apps_1440_900/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_back_up_en_herstel/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_back_up_en_herstel/code.html deleted file mode 100644 index 4e870975..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_back_up_en_herstel/code.html +++ /dev/null @@ -1,348 +0,0 @@ - - - - - - - - - - - - - - -
-
-DockDeck -
- -
- -
-
-
- - - -
- -
-
- -
-

Back-up & Herstel

-

Beveilig je configuratie door back-ups te maken of een eerdere staat te herstellen.

-
- -
- -
-
-
-
-download -
-

Configuratie exporteren

-
-

- Download een volledige kopie van je huidige instellingen, dashboards en app-configuraties in JSON-formaat. -

-
- -
- -
- -
-upload_file -
-

Configuratie importeren

-

- Sleep een bestand hierheen of klik om te uploaden -

-JSON BESTANDEN MAX 10MB -
-
- -
-
-

Recente back-ups

-Laatste 30 dagen -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DatumBestandsnaamStatusActie
Vandaag, 14:22dockdeck-backup-2023-10-27.json -
-
-Succesvol -
-
- -
24 okt 2023, 09:15dockdeck-auto-weekly.json -
-
-Succesvol -
-
- -
17 okt 2023, 10:04pre-update-v1.2.json -
-
-Succesvol -
-
- -
-
-
- -
-
- -
-info -
-

Automatische back-ups

-

Systeemgebaseerde back-ups worden elke zondag om 03:00 uur uitgevoerd en 30 dagen bewaard.

-
-
-
-
-
- - - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_back_up_en_herstel/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_back_up_en_herstel/screen.png deleted file mode 100644 index 386d1452..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_back_up_en_herstel/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_categorie_n/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_categorie_n/code.html deleted file mode 100644 index ecb0680f..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_categorie_n/code.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - -DockDeck — Instellingen CategorieĆ«n - - - - - - - - - -
-
-dock_to_bottom -

DockDeck

-
- -
- -
-
-
- - - -
-
-
-
-

Categorieƫn Beheren

-

Organiseer je diensten in overzichtelijke groepen.

-
- -
- -
- -
-
-
-movie -
- - 8 items - -
-

Media

-

Streaming diensten en home-server bibliotheken.

-
- - - -
-
- -
-
-
-home_iot_device -
- - 12 items - -
-

Smart Home

-

Automatisering, verlichting en sensor management.

-
- - - -
-
- -
-
-
-lan -
- - 4 items - -
-

Netwerk

-

Router UI, Pi-hole en netwerk monitoring tools.

-
- - - -
-
- -
-
-
-work -
- - 5 items - -
-

Werk

-

Productiviteit, Git server en documentbeheer.

-
- - - -
-
- -
-
-add -
-

Voeg nieuwe toe

-
-
- -
-
-

Tip: Slimme Groepering

-

Het groeperen van diensten op basis van functie helpt bij het sneller navigeren in een groeiend dashboard. Gebruik herkenbare iconen om visuele rust te creƫren.

-
- -
-
- - - -
-
- - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_categorie_n/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_categorie_n/screen.png deleted file mode 100644 index 5b2bd1fd..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_categorie_n/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_favorieten/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_favorieten/code.html deleted file mode 100644 index e5d315ff..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_favorieten/code.html +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - - - - - - - - - -
-
-DockDeck -
-
- - -
-
-
- - - -
-
-
-

Favoriete Websites

-

Beheer de snelkoppelingen op jouw dashboard voor snelle toegang.

-
- -
- -
- -
-
-
-
-language -
-
-

Google

-

google.com

-
-
-
- - -
-
-
- - - Online - - - Bezoek site open_in_new - -
-
- -
-
-
-
-play_circle -
-
-

YouTube

-

youtube.com

-
-
-
- - -
-
-
- - - Online - - - Bezoek site open_in_new - -
-
- -
-
-
-
-terminal -
-
-

GitHub

-

github.com

-
-
-
- - -
-
-
- - - Online - - - Bezoek site open_in_new - -
-
- -
-
-add -
-Nieuwe Favoriet -
-
- -
-
-info -
-

Wist je dat?

-

Favorieten worden automatisch gesynchroniseerd over al je apparaten. Je kunt tot wel 24 favorieten toevoegen aan je hoofddashboard voor maximale productiviteit.

-
-
-
-
-
- - - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_favorieten/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_favorieten/screen.png deleted file mode 100644 index 277f17c6..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_favorieten/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_integraties/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_integraties/code.html deleted file mode 100644 index a5dd1833..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_integraties/code.html +++ /dev/null @@ -1,348 +0,0 @@ - - - - - - - - - - - - - - -
-
-DockDeck -
-
-
-search - -
- -
-
-
- - - -
- -
- -
-
-
-

Integraties

-

- Koppel DockDeck aan je bestaande infrastructuur. Hieronder staan de actieve systeemintegraties. Deze verbindingen zijn essentieel voor de kernfunctionaliteit. -

-
- -
- -
-
-
-
-storage -
-
READ-ONLY
-
-

Unraid Metadata

-

Synchroniseert serverstatus, CPU-gebruik en schijfinformatie rechtstreeks vanuit het OS.

-
-
- -Verbonden -
-
- -
-
-
-
-terminal -
-
READ-ONLY
-
-

Docker Socket Proxy

-

Veilige container-monitoring via een beperkte proxy zonder schrijf-rechten op de socket.

-
-
- -Actief -
-
- -
-
-
READ-ONLY
-
-
-
-
-router -
-
-

Nginx Proxy Manager

-

Haalt geconfigureerde hosts op voor automatische dashboard-mapping.

-
-Externe URL's inschakelen - -
-
-
- -Gekoppeld -
-
-
- -
-info -
-

Privacy & Beveiliging

-

- Alle bovenstaande integraties zijn geconfigureerd met het principe van 'least privilege'. DockDeck heeft geen toestemming om wijzigingen aan te brengen aan je containers of netwerkinstellingen. -

-
-
-
-
-
- - - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_integraties/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_integraties/screen.png deleted file mode 100644 index 61f30694..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_integraties/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_weergave/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_weergave/code.html deleted file mode 100644 index a7b69d43..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_weergave/code.html +++ /dev/null @@ -1,438 +0,0 @@ - - - - - -DockDeck - Instellingen Weergave - - - - - - - - - -
-
-DockDeck - - -
-
-
-settings -
-
-
-
- - - -
-
- -
-
-

Thema

-

Kies de visuele stijl die het beste bij je workflow past.

-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-Donker -check_circle -
-
- -
-
-
-
-
-
-
-
-
-
-
-
-Licht -
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-Neon -
-
-
-
-
- -
-
-
-dashboard -

Dashboardmodus

-
-
- - -
-
-
-
-grid_view -

Grid-dichtheid

-
-
- - -
-
-
-
- -
-
-
-motion_photos_off -
-
-

Reduced Motion

-

Beperk animaties en overgangen voor een rustigere interface ervaring.

-
-
-
-
- -
- - -
-
- -
-
-
-
-
- - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_weergave/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_weergave/screen.png deleted file mode 100644 index ed7f4014..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_instellingen_weergave/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_mobiel_dashboard_390_844/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_mobiel_dashboard_390_844/code.html deleted file mode 100644 index 09899e4f..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_mobiel_dashboard_390_844/code.html +++ /dev/null @@ -1,349 +0,0 @@ - - - - - -DockDeck - Mobiel Dashboard - - - - - - - - - - -
-
-
-dock -
-

DockDeck

-
-
- - -
-
-
- -
-
- -
-
-ONTDEKKING -

3 nieuwe apps ontdekt

-
- -
-
- -
-
-search - -
-
- -
-
-CATEGORIEƋN -
-
- - - - - -
-
- -
-
-

Favorieten

-star -
-
-
-
-
-play_circle -
-
-
-LIVE -
-
-
-

Plex

-

Media Server

-
-
-
-
-
-folder -
-
-
-OK -
-
-
-

Nextcloud

-

Bestandshosting

-
-
-
-
-
-terminal -
-
-

Portainer CLI

-

Container Management

-
-
-chevron_right -
-
-
- -
-
-

Media

-Alles tonen -
-
-
-
-
-download -
-
-

Transmission

-
-
-Online -
-
-
-open_in_new -
-
-
-
-volume_up -
-
-

Navidrome

-
-
-Online -
-
-
-open_in_new -
-
-
- -
-
-

Smart Home

-bolt -
-
-
-home_app_logo -Home Assistant -
-
-router -Pi-hole -
-
-thermostat -Netatmo -
-
-
-
- - - - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_mobiel_dashboard_390_844/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_mobiel_dashboard_390_844/screen.png deleted file mode 100644 index b98be4bb..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_mobiel_dashboard_390_844/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_quick_launch_geen_lokale_resultaten/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_quick_launch_geen_lokale_resultaten/code.html deleted file mode 100644 index a0621f21..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_quick_launch_geen_lokale_resultaten/code.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - -DockDeck - Snel Zoeken - - - - - - - - - -
-
-
-
- -
-
- -
-dock -DOCKDECK QUICK LAUNCH -
- -
-search - -
-ESC -
-
- -
- -
-
-search_off -
-
-

Geen lokale resultaten gevonden

-

We konden geen apps of services vinden die overeenkomen met 'asdfgh'.

-
-
- -
- - -
-Suggesties: - - -
-
-
- -
-
-keyboard_arrow_up -keyboard_arrow_down -Navigeren -
-
-keyboard_return -Selecteren -
-
-
-
- -
- -
-
-dock - DockDeck -
- -
- -
-
-
-
-
-
-
-
- - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_quick_launch_geen_lokale_resultaten/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_quick_launch_geen_lokale_resultaten/screen.png deleted file mode 100644 index 349313d8..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_quick_launch_geen_lokale_resultaten/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_quick_launch_zoekresultaten/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_quick_launch_zoekresultaten/code.html deleted file mode 100644 index 5b378a49..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_quick_launch_zoekresultaten/code.html +++ /dev/null @@ -1,278 +0,0 @@ - - - - - -DockDeck - Quick Launch - - - - - - - - - - - -
- -
- -
-search - -
-ESC -
-
- -
- -
-

Apps

-
- -
-
-
-play_circle -
-
-Plex -
-
-Online -
-
-
-subdirectory_arrow_left -
- -
-
-
-analytics -
-
-Plausible -
-
-Offline -
-
-
-
-
-
- -
-

Favorieten

-
-
-
-
-push_pin -
-
-Pinterest -
-
-open_in_new -
-
-
- -
-

Google

-
-
-
-
-search -
-
-Zoeken op Google naar "Pl" -
-
-
-
-
-
- -
-
-
-ENTER -
-Openen in nieuw tabblad -
-
-
-ESC -
-Sluiten -
-
-
-arrow_upward -arrow_downward -
-Navigeren -
-
-
- -
-
-dock - DockDeck -
-

Typ om door je digitale universum te navigeren

-
-
- -
- -
- - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_quick_launch_zoekresultaten/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_quick_launch_zoekresultaten/screen.png deleted file mode 100644 index f1b2163c..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/canon_quick_launch_zoekresultaten/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/core_modernist/DESIGN.md b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/core_modernist/DESIGN.md deleted file mode 100644 index 7080587b..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/core_modernist/DESIGN.md +++ /dev/null @@ -1,180 +0,0 @@ ---- -name: DockDeck Cyber-Utility -colors: - surface: '#0b1326' - surface-dim: '#0b1326' - surface-bright: '#31394e' - surface-container-lowest: '#060d20' - surface-container-low: '#131b2e' - surface-container: '#171f33' - surface-container-high: '#222a3e' - surface-container-highest: '#2d3449' - on-surface: '#dbe2fd' - on-surface-variant: '#c7c4d7' - inverse-surface: '#dbe2fd' - inverse-on-surface: '#283044' - outline: '#908fa0' - outline-variant: rgba(30, 41, 59, 0.5) - surface-tint: '#c0c1ff' - primary: '#c0c1ff' - on-primary: '#292b5e' - primary-container: '#8a8cc6' - on-primary-container: '#222457' - inverse-primary: '#585990' - secondary: '#4edea3' - on-secondary: '#003824' - secondary-container: '#00b47d' - on-secondary-container: '#003e28' - tertiary: '#ffb783' - on-tertiary: '#4f2500' - tertiary-container: '#d97721' - on-tertiary-container: '#452000' - error: '#ffb4ab' - on-error: '#690005' - error-container: '#93000a' - on-error-container: '#ffdad6' - primary-fixed: '#e1e0ff' - primary-fixed-dim: '#c0c1ff' - on-primary-fixed: '#131449' - on-primary-fixed-variant: '#404176' - secondary-fixed: '#6ffbbe' - secondary-fixed-dim: '#4edea3' - on-secondary-fixed: '#002114' - on-secondary-fixed-variant: '#005236' - tertiary-fixed: '#ffdcc5' - tertiary-fixed-dim: '#ffb783' - on-tertiary-fixed: '#301400' - on-tertiary-fixed-variant: '#703700' - background: '#0b1326' - on-background: '#dbe2fd' - surface-variant: '#2d3449' - surface-glass: rgba(15, 23, 42, 0.6) - status-online: '#4edea3' - status-offline: '#ffb4ab' - status-degraded: '#ffb783' -typography: - display-lg: - fontFamily: Geist - fontSize: 48px - fontWeight: '600' - lineHeight: 56px - letterSpacing: -0.02em - headline-lg: - fontFamily: Geist - fontSize: 32px - fontWeight: '600' - lineHeight: 40px - letterSpacing: -0.01em - headline-lg-mobile: - fontFamily: Geist - fontSize: 24px - fontWeight: '600' - lineHeight: 32px - headline-md: - fontFamily: Geist - fontSize: 24px - fontWeight: '500' - lineHeight: 32px - body-lg: - fontFamily: Inter - fontSize: 18px - fontWeight: '400' - lineHeight: 28px - body-md: - fontFamily: Inter - fontSize: 16px - fontWeight: '400' - lineHeight: 24px - label-md: - fontFamily: Geist - fontSize: 14px - fontWeight: '500' - lineHeight: 20px - letterSpacing: 0.02em - code-sm: - fontFamily: Geist - fontSize: 13px - fontWeight: '400' - lineHeight: 18px -rounded: - sm: 0.25rem - DEFAULT: 0.5rem - md: 0.75rem - lg: 1rem - xl: 1.5rem - full: 9999px -spacing: - base: 8px - stack-sm: 12px - stack-md: 24px - stack-lg: 48px - gutter: 24px - margin-mobile: 16px - margin-desktop: 40px - container-max: 1440px ---- - -## Brand & Style - -DockDeck is a high-performance utility dashboard designed for developers and home-lab enthusiasts. The brand personality is technical, precise, and sophisticated, evoking the feeling of a futuristic mission control center. - -The design style is **Glassmorphism** mixed with **Corporate Modernism**. It utilizes deep indigo backgrounds, translucent surface layers with backdrop blurs, and vibrant "status" accents. The aesthetic relies on the interplay between dark navy tones and high-fidelity neon primary/secondary colors to create a clear visual hierarchy that feels both premium and functional. - -## Colors - -The palette is centered around a deep "Midnight Navy" base (`#0b1326`). Primary actions and branding use a high-fidelity "Periwinkle" (`#c0c1ff`), while system states are communicated through a semantic set of "Cyber Green" (Online), "Amber Glow" (Degraded), and "Soft Coral" (Offline). - -Surface colors are built using varying levels of transparency rather than flat hex codes to maintain the glass effect. Text uses high-contrast off-white (`#dae2fd`) for primary readability and muted lavender-grey (`#c7c4d7`) for secondary metadata. - -## Typography - -The system uses a duo-font pairing: **Geist** for technical precision and **Inter** for interface readability. - -- **Geist** is reserved for headlines, labels, and status indicators, emphasizing the "developer-tool" nature of the product. It uses tighter letter spacing at large scales to feel more modern. -- **Inter** is used for all body text and descriptive content to ensure maximum legibility across different densities. -- **Monospaced-style Geist** is used for "code-sm" roles, such as version numbers or technical metadata. - -## Layout & Spacing - -The layout follows a **Fixed Grid** approach for the central content canvas while the navigation bars are **Fluid (Full-Width)**. - -- **Breakpoints:** The layout transitions from a single column on mobile to a multi-column dashboard at 768px (MD) and introduces a fixed sidebar at 1280px (XL). -- **Rhythm:** An 8px base unit drives all spacing. Vertical "Stack" spacing is used to separate semantic sections (48px for major sections, 24px for interior groups). -- **Grid:** Card containers follow a flexible auto-grid that scales from 1 column to 4 columns depending on screen width, utilizing a consistent 24px gutter. - -## Elevation & Depth - -Depth is conveyed through **Glassmorphism** and **Tonal Layering** rather than traditional drop shadows. - -1. **Level 0 (Base):** Background color `#0b1326`. -2. **Level 1 (Panels):** Translucent surfaces (`rgba(15, 23, 42, 0.6)`) with a `12px` backdrop blur and a subtle `1px` border (`rgba(30, 41, 59, 0.5)`). -3. **Level 2 (Interaction):** On hover, panels shift to a brighter background (`rgba(45, 52, 73, 0.5)`) and translate `-2px` on the Y-axis. -4. **Level 3 (Pop-ups/Active):** Reserved for search inputs and active modal states, using a scale of `1.01` and high-intensity glows (e.g., `0 0 8px #4edea3` for active dots). - -## Shapes - -The shape language is consistently **Rounded**, using specific radii to differentiate between container types: -- **Tiles & Panels:** `12px` (xl) rounded corners provide a friendly but structured look. -- **Status Pills:** `9999px` (full) for high-contrast status chips. -- **Buttons:** `12px` (xl) to match the card containers. -- **Inputs:** `12px` (xl) for a cohesive form-factor. - -## Components - -### Buttons -- **Primary:** Solid `#c0c1ff` background with `#1000a9` text. High-contrast, no shadow, uses brightness shift on hover. -- **Ghost/Icon:** Unfilled, using `on-surface-variant` color. Rounded-full background appears on hover at 50% opacity. - -### App Tiles (Cards) -The core component. Built with the `glass-panel` style. They must contain a `48x48px` icon container (rounded-xl) and a top-right status indicator. - -### Status Chips -Ultra-compact badges with a 2px active pulse animation. -- **Online:** Bordered with 20% opacity secondary color, containing an `active-dot` with a glowing shadow. -- **Offline/Degraded:** Uses corresponding semantic colors with a lower opacity container border. - -### Search Bar -A full-width (max-xl) input field with a `surface-container-low` background and an inset search icon. Focus state includes a `primary-container` ring and a subtle scale-up animation. - -### Side Navigation -Fixed-position rail using `surface-container-low`. Active links use `secondary-container` background with `on-secondary-container` text to distinguish current location from the primary dashboard actions. \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/design.md_dockdeck_canon_v1.md b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/design.md_dockdeck_canon_v1.md deleted file mode 100644 index e73a06ea..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/design.md_dockdeck_canon_v1.md +++ /dev/null @@ -1,38 +0,0 @@ -# DESIGN.md — DockDeck Canon v1 - -## Productdefinitie -DockDeck is een premium persoonlijke browserstartpagina voor ƩƩn gebruiker op een Unraid-server. Het fungeert als de centrale 'home base' voor snelle navigatie naar Docker-apps en favoriete websites. - -**Kernervaring:** -1. Zoeken via de kenmerkende 'Quick Launch'. -2. Docker-apps en favorieten openen in een nieuw tabblad. -3. Navigeren door persoonlijke categorieĆ«n. -4. Beheren van app-configuratie (naam, icoon, categorie, URL). -5. Personaliseren van de visuele weergave. - -**Wat DockDeck niet is:** -Geen beheerplatform voor containers of servers. Geen monitoring, logs of console. Docker-data wordt uitsluitend read-only getoond. - -## Visuele Identiteit -- **Kleurpalet:** Basis van diep navy (#0b1326). Accentkleur: verfijnd lavendel (#818cf8). Positieve status: smaragdgroen (#10b981). -- **Typografie:** Geist (Sans-serif), gefocust op leesbaarheid en hiĆ«rarchie. -- **Vormtaal:** Subtiele borders (outline-variant), afgeronde hoeken (8-12px), doelbewuste witruimte. -- **Merk:** Minimalistisch geometrisch dock/brug beeldmerk met horizontaal woordmerk. - -## Design Tokens & Componenten -- **App Tegel:** Bevat icoon, naam en status (Online, Offline, Status onbekend). Geen technische poorten of stats. -- **Favoriet Tegel:** Zelfde vormentaal als app tegel, maar zonder statusdot en met extern-link icoon. -- **Quick Launch:** Command-palette overlay gegroepeerd op Apps, Favorieten en Google. -- **Status Indicatoren:** Gebruik kleur (groen/rood/grijs) EN tekst. Geen permanente animaties. - -## Terminologie -- **Apps:** Online, Offline, Status onbekend. -- **Discovery:** Nieuw ontdekt, Zichtbaar, Verborgen. -- **Integraties:** Verbonden, Niet verbonden, Beperkt beschikbaar. -- **Taal:** Consequent Nederlands ("je/jouw"). Geen "u" of "uw". - -## Gebruiksregels -- Alle links openen in een nieuw tabblad. -- Geen account- of profielgegevens (geen avatars, geen 'Admin' labels). -- Geen 'Nieuwe Container' of 'Stop/Start' acties. -- Verberg technische metadata (image names, poorten) standaard voor de gebruiker. diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_canon_logo/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_canon_logo/screen.png deleted file mode 100644 index 817aa59c..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_canon_logo/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_canon_v1/DESIGN.md b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_canon_v1/DESIGN.md deleted file mode 100644 index 89804fad..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_canon_v1/DESIGN.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -name: DockDeck Canon v1 -colors: - surface: '#0b1326' - surface-dim: '#0b1326' - surface-bright: '#31394e' - surface-container-lowest: '#060d20' - surface-container-low: '#131b2e' - surface-container: '#171f33' - surface-container-high: '#222a3e' - surface-container-highest: '#2d3449' - on-surface: '#dbe2fd' - on-surface-variant: '#c6c5d5' - inverse-surface: '#dbe2fd' - inverse-on-surface: '#283044' - outline: '#908f9e' - outline-variant: '#454653' - surface-tint: '#bdc2ff' - primary: '#bdc2ff' - on-primary: '#131e8c' - primary-container: '#818cf8' - on-primary-container: '#101b8a' - inverse-primary: '#4953bc' - secondary: '#4edea3' - on-secondary: '#003824' - secondary-container: '#00a572' - on-secondary-container: '#00311f' - tertiary: '#c0c1ff' - on-tertiary: '#1000a9' - tertiary-container: '#8689ff' - on-tertiary-container: '#0f00a2' - error: '#ffb4ab' - on-error: '#690005' - error-container: '#93000a' - on-error-container: '#ffdad6' - primary-fixed: '#e0e0ff' - primary-fixed-dim: '#bdc2ff' - on-primary-fixed: '#000767' - on-primary-fixed-variant: '#2f3aa3' - secondary-fixed: '#6ffbbe' - secondary-fixed-dim: '#4edea3' - on-secondary-fixed: '#002113' - on-secondary-fixed-variant: '#005236' - tertiary-fixed: '#e1e0ff' - tertiary-fixed-dim: '#c0c1ff' - on-tertiary-fixed: '#07006c' - on-tertiary-fixed-variant: '#2f2ebe' - background: '#0b1326' - on-background: '#dbe2fd' - surface-variant: '#2d3449' -typography: - headline-lg: - fontFamily: Geist - fontSize: 32px - fontWeight: '600' - lineHeight: 40px - letterSpacing: -0.02em - headline-lg-mobile: - fontFamily: Geist - fontSize: 24px - fontWeight: '600' - lineHeight: 32px - letterSpacing: -0.01em - headline-md: - fontFamily: Geist - fontSize: 20px - fontWeight: '500' - lineHeight: 28px - body-md: - fontFamily: Geist - fontSize: 16px - fontWeight: '400' - lineHeight: 24px - body-sm: - fontFamily: Geist - fontSize: 14px - fontWeight: '400' - lineHeight: 20px - label-caps: - fontFamily: Geist - fontSize: 12px - fontWeight: '600' - lineHeight: 16px - letterSpacing: 0.05em - status-label: - fontFamily: Geist - fontSize: 13px - fontWeight: '500' - lineHeight: 18px -rounded: - sm: 0.25rem - DEFAULT: 0.5rem - md: 0.75rem - lg: 1rem - xl: 1.5rem - full: 9999px -spacing: - container-max: 1280px - gutter: 1.5rem - margin-mobile: 1rem - stack-sm: 0.5rem - stack-md: 1rem - stack-lg: 2rem ---- - -## Brand & Style - -The design system is engineered for a premium, calm, and professional digital home base. It focuses on clarity and purposeful utility, acting as a serene entry point for a user's digital environment. The aesthetic moves away from the cluttered, metric-heavy dashboards of traditional DevOps tools, opting instead for a **Minimalist / Modern** style that prioritizes content visibility and ease of access. - -The interface evokes a sense of "digital zen"—an organized, quiet space where the user feels in total control of their navigation. There are no distractions like avatars or management controls; the focus is entirely on the "bridge" between the user and their services. - -**Key Identity Guidelines:** -- **Language:** All copy must be in Dutch. Use an informal but professional tone ("je/jouw", never "uw"). -- **Logo:** A minimalist, geometric bridge or dock icon. It must be legible at small scales (16px to 24px) and should avoid complex gradients, favoring solid strokes or simple geometric fills. -- **Mood:** Professional, reliable, and unobtrusive. - -## Colors - -The palette is optimized for a high-end dark mode experience. The primary background uses a deep navy to reduce eye strain and provide a sophisticated canvas for vibrant accents. - -- **Background:** Deep Navy (`#0b1326`) serves as the foundation. -- **Primary Accent:** Refined Lavender/Purple (`#818cf8`) is used for primary actions, active states, and branding elements. -- **Success/Positive:** Green (`#10b981`) is reserved strictly for "Online" status and positive indicators. -- **Muted/Neutral:** For secondary text and borders, use varying shades of slate and navy to maintain low visual noise. -- **Status Colors:** - - `Online`: #10b981 - - `Offline`: #ef4444 (Softened red) - - `Status onbekend`: #94a3b8 (Muted slate) - -## Typography - -This design system utilizes **Geist** for its technical precision and modern, clean aesthetic. The typography scale is designed to be highly legible with generous line heights to enhance the calm, airy feel of the interface. - -**Usage Notes:** -- **Headlines:** Use `headline-lg` for main section titles. In mobile views, drop to `headline-lg-mobile`. -- **Labels:** `label-caps` is used for category headers or small metadata tags. -- **Dutch Terminology:** Always use the following exact strings: - - *Online* - - *Offline* - - *Status onbekend* - - *Zichtbaar* - - *Verborgen* - - *Nieuw ontdekt* - -## Layout & Spacing - -The layout follows a **Fluid Grid** approach with a maximum container width to prevent line lengths from becoming unreadable on ultra-wide monitors. - -- **Grid:** 12-column layout on desktop, 4-column on mobile. -- **Rhythm:** Use an 8px base unit for all spacing (padding, margins, gaps). -- **Safe Areas:** Maintain a minimum 24px (1.5rem) margin on the sides of the viewport on desktop and 16px (1rem) on mobile. -- **Alignment:** Content should be center-aligned within the main container to reinforce the "home base" feel. - -## Elevation & Depth - -Depth in the design system is achieved through **Tonal Layers** and **Low-Contrast Outlines** rather than heavy shadows. This keeps the interface feeling light and digital. - -- **Base Layer:** The deepest navy (`#0b1326`). -- **Surface Layer:** Cards and containers use a slightly lighter navy (`#161f35`) with a 1px border (`#2d3748`). -- **Interactive Depth:** On hover, cards should subtly lift using a very soft, high-diffusion shadow with a 4% opacity indigo tint. -- **Borders:** Use subtle borders to define structure. Avoid high-contrast white borders; instead, use semi-transparent overlays (e.g., `rgba(255, 255, 255, 0.05)`) for a refined look. - -## Shapes - -The shape language is consistently **Rounded**, striking a balance between approachable and professional. - -- **Standard Elements:** Buttons, input fields, and small cards use a **8px** (`0.5rem`) radius. -- **Large Containers:** Dashboard cards or featured sections use a **16px** (`1rem`) radius. -- **Interactive States:** Focus states should mirror the element's corner radius with a 2px offset. - -## Components - -### Buttons -- **Primary:** Background `#818cf8`, text `#0b1326`. No shadow, 8px radius. -- **Secondary:** Transparent background with a 1px border of `#818cf8`. -- **Text Style:** Medium weight, Geist Sans. - -### Cards (Service Items) -- The core component of the system. -- **Header:** Title of the service (Zichtbaar/Verborgen status). -- **Footer:** Status label (Online/Offline) with a small colored dot indicator. -- **Constraint:** No management buttons (No start/stop/delete). The card is a portal, not a controller. - -### Chips / Tags -- Used for `Nieuw ontdekt` or service categories. -- Subtle background tint (10% opacity of the accent color) with matching 1px border. - -### Status Indicators -- A simple 8px circle. -- Colors: Green (`#10b981`), Red (`#ef4444`), or Slate (`#94a3b8`). -- Always accompanied by the Dutch text label. - -### Input Fields -- Used only for search/filtering. -- Darker background than the card surface. -- Subtle lavender focus ring (2px). \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_categorie_n/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_categorie_n/code.html deleted file mode 100644 index 75d83f12..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_categorie_n/code.html +++ /dev/null @@ -1,457 +0,0 @@ - - - - - -DockDeck - Media Categorie - - - - - - - - - - - -
- -
-
- -
-
-search - -
-
-
- - -
-Gebruikersprofiel -
-
-
-
- -
- -
-
-play_circle -

Media Categorie

-
-

Beheer uw entertainment ecosysteem. Van streaming servers tot geautomatiseerde download agents, alles is hier gecentraliseerd voor een vloeiende ervaring.

-
- -
-
-Actieve Containers -
-4 -Allemaal operationeel -
-
-
-Gecombineerd CPU -
-12.4% -trending_down -
-
-
-Netwerkverkeer -
-45 -Mbps -
-
-
-Snelactie - -
-
- -
- -
-
-
- -
-
- - - - - Actief - -Uptime: 14d 2h -
-
-

Plex

-

Media Server & Streaming

-
-
-CPU Gebruik -4.2% -
-
-
-
-
-Geheugen -1.4 GB -
-
-
- - -
-
- -
-
-
- -
-
- - - - - Actief - -Uptime: 2d 18h -
-
-

Jellyfin

-

Open Source Media System

-
-
-CPU Gebruik -2.1% -
-
-
-
-
-Geheugen -840 MB -
-
-
- - -
-
- -
-
-
- -
-
- - - - - Actief - -Uptime: 5d 1h -
-
-

Sonarr

-

TV Series Management

-
-
-CPU Gebruik -0.8% -
-
-
-
-
-download Downloadt nu -4.2 MB/s -
-
-
- - -
-
- -
-
-
- -
-
- - - - - Actief - -Uptime: 12d 6h -
-
-

Radarr

-

Movies Management

-
-
-CPU Gebruik -1.2% -
-
-
-
-
-Geheugen -420 MB -
-
-
- - -
-
-
- -
-
-

Recente Downloads

-Bekijk volledige wachtrij -
-
-
-
-
-movie -
-
-

The Grand Expedition (2024)

-

2.4 GB • Radarr

-
-
-
-Voltooid -more_vert -
-
-
-
-
-tv -
-
-

Modern Architecture S01E05

-

850 MB • Sonarr

-
-
-
-Bezig (85%) -more_vert -
-
-
-
-
- -
-
- - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_categorie_n/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_categorie_n/screen.png deleted file mode 100644 index 73d6feb9..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_categorie_n/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_categorie_weergave_definitief/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_categorie_weergave_definitief/code.html deleted file mode 100644 index afbb5786..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_categorie_weergave_definitief/code.html +++ /dev/null @@ -1,514 +0,0 @@ - - - - - -DockDeck - Media Category - - - - - - - - - -
-
-

DockDeck

-
- -
- - -
-
- - - -
-
- -
-
- -

-movie - Media Bibliotheek -

-
- -
- -
-

-star - FAVORIETEN -

-
- -
-
-
-
-Online -
-
-
-play_circle -
-
-

Plex

-

Media Server • Local: 32400

-
-
-play_circle -
-
- -
-
-
-
-Online -
-
-
-cast -
-
-

Jellyfin

-

Open Source Media • Port 8096

-
-
- -
-
-
-
-Online -
-
-
-tv_guide -
-
-

Sonarr

-

TV Series Manager • Port 8989

-
-
- -
-
-
-
-Degraded -
-
-
-movie_edit -
-
-

Radarr

-

Movie Manager • Port 7878

-
-
-
-
- -
-
-

-list - ALLE MEDIA APPS -

-
- - -
-
-
- -
-
-monitoring -
-
-

Tautulli

-
-
-Active Monitoring -
-
-open_in_new -
- -
-
-subtitles -
-
-

Bazarr

-
-
-Subtitles Manager -
-
-open_in_new -
- -
-
-request_page -
-
-

Overseerr

-
-
-Requests Portal -
-
-open_in_new -
- -
-
-search_check -
-
-

Prowlarr

-
-
-Indexer Manager -
-
-open_in_new -
- -
-
-download -
-
-

Transmission

-
-
-Torrent Client -
-
-open_in_new -
- -
-
-download_done -
-
-

Sabnzbd

-
-
-Offline -
-
-open_in_new -
- -
-
-music_note -
-
-

Lidarr

-
-
-Music Manager -
-
-open_in_new -
- -
-
-menu_book -
-
-

Audiobookshelf

-
-
-Audio Server -
-
-open_in_new -
-
-
- -
-

Klaar met media beheer?

- -grid_view - Terug naar 'Alles' - -
-
-
- - - -
-
-
-
- - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_categorie_weergave_definitief/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_categorie_weergave_definitief/screen.png deleted file mode 100644 index 82cb6a1f..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_categorie_weergave_definitief/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_licht_thema/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_licht_thema/code.html deleted file mode 100644 index c88a8a0e..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_licht_thema/code.html +++ /dev/null @@ -1,435 +0,0 @@ - - - - - - - - - - - - - - -
-
-DockDeck -
- -
- - - -
- -
-
-
- - - -
-
- -
-
-
-

Goedemorgen, Admin

-

Je systeem draait stabiel. 14 containers zijn actief en gezond.

-
-
-
-
-CPU: 12% -
-
-
-RAM: 4.2GB -
-
-
-
- -
- -
-
-

Media & Entertainment

- -
-
- -
-
-
-play_circle -
-Actief -
-

Plex Media Server

-

Home Cinema streaming platform

-
-CPU: 1.2% -
- - -
-
-
- -
-
-
-calendar_today -
-Actief -
-

Sonarr

-

TV Series management tool

-
-CPU: 0.8% -
- - -
-
-
- -
-
-
-movie -
-Actief -
-

Radarr

-

Movies automation manager

-
-CPU: 2.1% -
- - -
-
-
- -
-
-
-query_stats -
-Gestopt -
-

Tautulli

-

Plex Monitoring & Statistics

-
-CPU: 0.0% -
- - -
-
-
-
-
- -
-
-

Infrastructuur

-
-
- -
-
-
-router -
-
-

Nginx Proxy Manager

-
- -8 Hosts Actief -
-
-
-
-
-
-
-
-Verkeer -452 MB/s -
-
-
- -
-
-
-shield -
-
-

Pi-hole DNS

-
- -24k Advertenties Geblokkeerd -
-
-
-
-
-
-
-
-Block Rate -28.4% -
-
-
-
-
- -
-
-

Systeem Logs

-
-
-
-
-
-
-

Sonarr heeft 'Better Call Saul S06E13' gedownload.

-2 minuten geleden -
-
-
-
-
-

Tautulli container onverwacht gestopt.

-15 minuten geleden -
-
-
-
-
-

Nginx certificaat succesvol vernieuwd.

-1 uur geleden -
-
-
-
-
-

Systeem update v6.12.5 beschikbaar.

-3 uur geleden -
-
-
- -
-
-
-
-
- - - - - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_licht_thema/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_licht_thema/screen.png deleted file mode 100644 index c2963e26..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_licht_thema/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_mobiel/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_mobiel/code.html deleted file mode 100644 index 989258e2..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_mobiel/code.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - - - - - - - - - -
-
-DockDeck -
-
- - -
- -
-
-
-
- -
-
-search - -
-
- -
-
-

Media

-3 Actief -
-
- -
-
-
-movie -
-
-
-
-

Plex

-

1.2% CPU

-
-
- -
-
-
-tv -
-
-
-
-

Sonarr

-

0.8% CPU

-
-
-
-
- -
-
-

Smart Home

-2 Actief -
-
- -
-
-
-home_max -
-
-
-
-

HomeAssist

-

4.5% CPU

-
-
- -
-
-
-hub -
-
-
-
-

Zigbee2MQTT

-

0.2% CPU

-
-
-
-
- -
-
-

Utilities

-1 Gestopt -
-
- -
-
-
-lan -
-
-
-
-

Nginx PM

-

0.5% CPU

-
-
- -
-
-
-security -
-
-
-
-

Pi-hole

-

Offline

-
-
-
-
- -
-
-
-

Systeem Status

-

Unraid Engine 6.12.4

-
-
-

Healthy

-

Uptime: 14d 2h

-
-
- -
-
-
- - - - - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_mobiel/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_mobiel/screen.png deleted file mode 100644 index 79cf81d8..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_mobiel/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_mobiel_definitief/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_mobiel_definitief/code.html deleted file mode 100644 index b5eae728..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_mobiel_definitief/code.html +++ /dev/null @@ -1,350 +0,0 @@ - - - - - -DockDeck | Mobile Dashboard - - - - - - - - - - -
-
-DockDeck -
-
- -
-
- -
- -
-
-
-search -
- -
-
- -
-
-
-Server Online -
-
-layers -12 Containers -
-
- -
-

Favorieten

-
- -
-
-terminal -
-Terminal -In gebruik -
-
-
-
- -
-
-storage -
-Nextcloud -Actief -
-
-
-
- -
-
-dns -
-
-Pi-Hole AdBlocker -
-2.4k Verzoeken geblokkeerd -
-
-chevron_right -
-
-
- -
-
-

Alle Apps

- -
-
- -
-
-movie -
-Plex -
-
-
-monitoring -
-Grafana -
-
-
-database -
-MariaDB -
-
-
-hub -
-HomeAssistant -
-
-
-shield -
-Authelia -
-
-
-vpn_key -
-Tailscale -
-
-
-cloud_sync -
-Sync -
-
-
-add -
-Nieuw -
-
-
- -
-
-
- -
-
-

Server Update

-

v2.4.1 is nu beschikbaar

- -
-
-
-
- - - - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_mobiel_definitief/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_mobiel_definitief/screen.png deleted file mode 100644 index 0a2b3a0b..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_mobiel_definitief/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_overzicht/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_overzicht/code.html deleted file mode 100644 index 56d03a47..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_overzicht/code.html +++ /dev/null @@ -1,433 +0,0 @@ - - - - - -DockDeck | Dashboard - - - - - - - - - - - - - -
-
- -
-
-

Goedenavond, beheerder

-

Donderdag, 24 Augustus 2023

-
-
- -
-
- -
- -
-
-movie -

Media

-
-
- -
-
-
-play_arrow -
-
-
-Online -
-
-
-

Plex

-

Media Server

-
-
- -
-
-
-filter_vintage -
-
-
-Online -
-
-
-

Jellyfin

-

Open Source Media

-
-
- -
-
-
-tv -
-
-
-Offline -
-
-
-

Sonarr

-

TV Series Manager

-
-
-
-
- -
-
-bolt -

Smart Home

-
-
-
-
-
-house -
-
-
-Degraded -
-
-
-

Home Assistant

-

Automatisering

-
-
-
-
-
-shield -
-
-
-Online -
-
-
-

AdGuard Home

-

DNS Filtering

-
-
-
-
- -
-
-
-download -

Downloads

-
-
-
-
-download_done -
-
-

qBittorrent

-
-
-Online -
-
-
-
-
-movie_filter -
-
-

Radarr

-
-
-Online -
-
-
-
-
-
-
-lan -

Netwerk

-
-
-
-
-settings_ethernet -
-
-

Nginx Proxy

-
-
-Online -
-
-
-
-
-key -
-
-

Vaultwarden

-
-
-Online -
-
-
-
-
-
- -
-
-star -

Favorieten

-
- -
-
- - -
-
- - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_overzicht/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_overzicht/screen.png deleted file mode 100644 index 9704ddc7..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_overzicht/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_overzicht_definitief/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_overzicht_definitief/code.html deleted file mode 100644 index f5a5f6ac..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_overzicht_definitief/code.html +++ /dev/null @@ -1,440 +0,0 @@ - - - - - -DockDeck | Dashboard - - - - - - - - - - - -
- -
-
-
-Logo -
-search - -
-
-
- - -
- AD -
-
-
-
- -
- -
-

Goedenavond, beheerder

-

Donderdag, 24 Augustus 2023

-
- -
-
-

-star - Favorieten -

-
- -
- -
- -
-
-

Media

-
-
- -
-
-
-Online -
-
-movie -
-

Plex

-

Media Server

-
- -
-
-
-Online -
-
-shopping_cart -
-

Overseerr

-

Requests

-
-
-
- -
-
-

Smart Home

-
-
- -
-
-
-Offline -
-
-home -
-

Home Assistant

-

Automation Hub

-
- -
-
-
-Onbekend -
-
-hub -
-

Zigbee2MQTT

-

Bridge

-
-
-
- -
-
-

Netwerk

-
-
- -
-
-
-Online -
-
-tv -
-

Sonarr

-

TV Management

-
- -
-
-
-Online -
-
-shield -
-

Pi-hole

-

Ad Blocker

-
-
-
-
- - -
-
- - - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_overzicht_definitief/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_overzicht_definitief/screen.png deleted file mode 100644 index 5d700e45..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_dashboard_overzicht_definitief/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_definitief_logo/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_definitief_logo/screen.png deleted file mode 100644 index e01d2761..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_definitief_logo/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_quick_launch_definitief/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_quick_launch_definitief/code.html deleted file mode 100644 index c9d71c2a..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_quick_launch_definitief/code.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - - - - - - - - -
- - -
-
-
-
-
-
-
-
-
-
-
- -
- -
- -
-search - -
-ESC -
-
- -
- -
-

-apps - Apps -

- -
-
-
-movie -
-
-
-Plex -
-
-Online -
-
-Container • Media Server -
-
-
-open in nieuw tabblad -open_in_new -
-
- -
-
-
-description -
-
-
-Paperless-ngx -
-
-Online -
-
-Document Management System -
-
-
-open_in_new -
-
-
- -
-

-star - Favorieten -

-
-
-
- -
-
-GitHub -

Developer Ecosystem & Repository

-
-
-
-open_in_new -
-
-
- -
-

-language - Google -

-
-
-
-search -
-
-Zoek op Google naar 'PL...' -
-
-
- ENTER -
-
-
-
- -
-
-
-↑↓ -Navigeren -
-
-Enter -Openen -
-
-Alt + Enter -Nieuw Tabblad -
-
-
-bolt -DockDeck QuickLaunch -
-
-
-
- - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_quick_launch_definitief/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_quick_launch_definitief/screen.png deleted file mode 100644 index dcb36ef1..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_quick_launch_definitief/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_zoeken/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_zoeken/code.html deleted file mode 100644 index 678869ad..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_zoeken/code.html +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - - - - - - - - - -
- -
-
DockDeck
-
-settings -notifications -
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
- -
- -
- -
-search - -
- -
-
- -
- -
-
Apps
- -
-
-
-
-
-
-Plex - -Actief -
-
Media Server • Port 32400
-
-
Container
-
- -
-
-
-
-
-
-Paperless-ngx -
-
Document Management • Port 8000
-
-
Enter
-
-
- -
-
Favorieten
-
-
-
-
-
-GitHub -
github.com/repository
-
-star -
-
- -
-
-
-travel_explore -
-
-Zoek op Google naar "Pl..." -
-north_east -
-
-
- -
-
-ENTER om te openen - -ESC om te sluiten -
-
-keyboard_command_key -DockDeck QuickSearch -
-
-
-
- - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_zoeken/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_zoeken/screen.png deleted file mode 100644 index e253bd38..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/dockdeck_zoeken/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_app_editor_definitief/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_app_editor_definitief/code.html deleted file mode 100644 index eca901c7..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_app_editor_definitief/code.html +++ /dev/null @@ -1,415 +0,0 @@ - - - - - -DockDeck - App Editor - - - - - - - - - - - - -
-
-DockDeck - - -
-
- - - -
-
- -
- -
-

Applicatie Beheer

-

Beheer hoe je containers worden weergegeven op het dashboard en configureer toegang via lokale en externe netwerken.

-
- -
- -
-
-
-home_app_logo -
-
-Actief -
-
-
-
-

Home Assistant

-

Smart Home Controller

-
-
-Automation -
-
- -
-
- -
-
-
-storage -
-
-
-
-
-
-

Nextcloud

-

File Storage & Cloud

-
-
-Cloud -
-
- -
-
-
-terminal -
-
-
-
-
-
-

Portainer

-

Docker Management UI

-
-
-Tools -
-
-
-
- -
- - - -
- - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_app_editor_definitief/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_app_editor_definitief/screen.png deleted file mode 100644 index eb83c7df..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_app_editor_definitief/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_apps_beheren_definitief/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_apps_beheren_definitief/code.html deleted file mode 100644 index c12e25f4..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_apps_beheren_definitief/code.html +++ /dev/null @@ -1,418 +0,0 @@ - - - - - -DockDeck - Apps Beheren - - - - - - - - - -
-
-
-DockDeck - -
-
-
- -search -
- -
-
-
-
- - - -
-
- -
-
-
-

Apps beheren

-

Beheer de zichtbaarheid en configuratie van ontdekte services.

-
-
- -
- - - - -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AppStatusCategorieZichtbaarheidActies
-
-
- -
-
-
Plex
-
plex.local:32400
-
-
-
-
- -Online -
-
- - - - - -
-
-
- -
-
-
Immich
-
immich.home.arpa
-
-
-
-
- -Online -
-
- - - - - -
-
-
-
- -
-
-
Sonarr
-
Nieuw ontdekt...
-
-
-
-
- -Pending -
-
- - - - - -
-
-
- -
-
-
-info -

Automatische Detectie

-
-

- DockDeck scant continu uw netwerk en Docker sockets op zoek naar nieuwe services. Nieuw ontdekte apps verschijnen hier als "Nieuw ontdekt" en zijn standaard verborgen op uw dashboard tot u een categorie toewijst en ze zichtbaar maakt. -

-
-
-
-security -

Status Monitoring

-
-

- De statusindicator geeft real-time informatie over de bereikbaarheid van de container of service. Klik op 'Bewerken' om specifieke healthcheck-instellingen of API-sleutels voor statusmonitoring aan te passen. -

-
-
-
-
-
- - - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_apps_beheren_definitief/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_apps_beheren_definitief/screen.png deleted file mode 100644 index cade3f21..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_apps_beheren_definitief/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_back_up_definitief/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_back_up_definitief/code.html deleted file mode 100644 index a4ca7e58..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_back_up_definitief/code.html +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - -
-
-terminal -

DockDeck

-
- -
- - -
-
- - - -
-
- -
-

Back-up & Herstel

-

Beheer de configuratie van uw DockDeck omgeving. Exporteer uw huidige setup naar een lokaal bestand of herstel een eerdere sessie.

-
- -
-warning -
-

Belangrijke informatie over secrets

-

Om veiligheidsredenen worden gevoelige gegevens zoals API-sleutels, wachtwoorden en database-credentials niet meegeƫxporteerd. Deze moeten na een herstel handmatig opnieuw worden ingevoerd.

-
-
- -
- -
-
-
-download -
-

Configuratie exporteren

-

Creƫer een JSON-snapshot van al uw dashboard-instellingen, container-links en UI-voorkeuren. Handig voor migraties of herstel bij dataverlies.

-
-
- -
-
- -
-
-
-upload_file -
-

Back-up importeren

-

Sleep uw configuratiebestand hierheen of klik om te bladeren.

- -
- - -
-
- -
-
-

Recente Back-ups

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
DatumBestandGrootteStatusActie
Vandaag, 14:20dockdeck_full_config.json1.2 MB - - - Succesvol - - - -
12 Okt 2023manual_export.json845 KB - - - Succesvol - - - -
-
-
-
-
- - - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_back_up_definitief/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_back_up_definitief/screen.png deleted file mode 100644 index e1b448ce..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_back_up_definitief/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_categorie_n_definitief/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_categorie_n_definitief/code.html deleted file mode 100644 index 3d527c45..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_categorie_n_definitief/code.html +++ /dev/null @@ -1,396 +0,0 @@ - - - - - -DockDeck - Categorieƫn beheren - - - - - - - - - -
-
-DockDeck -
-
- - - -
-
- - - -
-
-
-

Categorieƫn beheren

-

Organiseer je DockDeck dashboard door services te groeperen in logische categorieƫn. Sleep om te sorteren.

-
- -
- -
- -
-
- -
-
-
-movie -
-
-

Media

-

8 items gekoppeld

-
-
-
- - -
-
- -
-
- -
-
-
-home_iot_device -
-
-

Smart Home

-

12 items gekoppeld

-
-
-
- - -
-
- -
-
- -
-
-
-router -
-
-

Netwerk

-

4 items gekoppeld

-
-
-
- - -
-
- -
-
-
-folder_off -
-
-

Ongecategoriseerd

-

0 items gekoppeld

-
-
-
-

Deze categorie is momenteel leeg en zal niet worden getoond op het dashboard.

-
-
- - -
-
- - -
- -
-
-
-
-info -
-
-

Wist je dat?

-

Je kunt ook de volgorde van services binnen een categorie wijzigen op de hoofdpagina. Verwijderde categorieƫn zorgen ervoor dat gekoppelde items automatisch naar 'Ongecategoriseerd' worden verplaatst.

-
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_categorie_n_definitief/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_categorie_n_definitief/screen.png deleted file mode 100644 index d162dfcb..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_categorie_n_definitief/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_favorieten_definitief/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_favorieten_definitief/code.html deleted file mode 100644 index b9667a19..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_favorieten_definitief/code.html +++ /dev/null @@ -1,371 +0,0 @@ - - - - - - - - - - - - - - -
-
-DockDeck -
-
- - -
-
-
- - - -
-
- -
-
-

Favorieten beheren

-

Beheer uw meest gebruikte tools en websites. Wijzig de volgorde of voeg nieuwe snelkoppelingen toe aan uw dashboard.

-
- -
- -
- -
-
-
-drag_indicator -
-
- -
-
-

Google

-

https://www.google.com

-
-
-
-Zoeken - - -
-
- -
-
-
-drag_indicator -
-
- -
-
-

YouTube

-

https://www.youtube.com

-
-
-
-Media - - -
-
- -
-
-
-drag_indicator -
-
- -
-
-

GitHub

-

https://github.com

-
-
-
-Ontwikkeling - - -
-
-
- -
-
-info -

U kunt de volgorde wijzigen door de items aan de linkerhendel te verslepen naar de gewenste positie.

-
-
-
-
-
- -
- -
-
-

Favoriet toevoegen

- -
-
- -
-
-add_photo_alternate -
-

Icoon preview

-
-
-
- - -
-
- - -
-
- - -
-
-
-
- - -
-
- - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_favorieten_definitief/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_favorieten_definitief/screen.png deleted file mode 100644 index a94da2e1..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_favorieten_definitief/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_integraties/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_integraties/code.html deleted file mode 100644 index 4688fb10..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_integraties/code.html +++ /dev/null @@ -1,369 +0,0 @@ - - - - - - - - - - - - - - - - - - -
-
-
- -Instellingen -
-

Integraties

-

- Beheer de verbindingen tussen DockDeck en je server-infrastructuur. Zorg voor een actieve sync om realtime statistieken en container-beheer mogelijk te maken. -

-
-
- -
- -
-
-
-
- -
-
-

Unraid OS

-

Primaire server management interface en OS statistieken.

-
- - - Verbonden - - - - Laatste sync: 2 min geleden - -
-
-
-
- - -
-
-
- -
-
-
-
- -
-
-

Docker Socket Proxy

-

Beveiligde toegang tot de Docker API voor containerbeheer.

-
- - - Fout - - - - Time-out bij verbinding (14:32) - -
-
-
-
- - -
-
-
- -
-
-
-
- -
-
-

Nginx Proxy Manager

-

Automatische SSL en Reverse Proxy routering voor je containers.

-
- - - Verbonden - - - - Laatste sync: Zojuist - -
-
-
-
- - -
-
- -
-
- -Externe URL's activeren - -
- -
-
-
- -
-
-
- -
-

Nieuwe Integratie Toevoegen

-

Verbind met Home Assistant, Plex of Tautulli.

-
-
-
-

Systeem Status

-

Global Health Check van alle verbindingen.

-
-
-
-
98%
-
-
-Bekijk Rapport → -
-
-
-
-
- - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_integraties/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_integraties/screen.png deleted file mode 100644 index 3877e8c8..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_integraties/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_integraties_definitief/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_integraties_definitief/code.html deleted file mode 100644 index ed4deee5..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_integraties_definitief/code.html +++ /dev/null @@ -1,424 +0,0 @@ - - - - - -DockDeck | Integratie-instellingen - - - - - - - - - -
-
-developer_board -

DockDeck

-
- -
- - - -
- -
-

Integratie-instellingen

-

- Beheer de kernverbindingen van je DockDeck-omgeving. Deze pagina configureert hoe DockDeck communiceert met je host-systeem en netwerklaag. -

-
- -
- -
-
-
-info -
-
-
-Verbonden -
-
-
-

Unraid Metadata

-

Leest automatisch systeem-informatie uit de Unraid OS API.

-
-
-
-CPU-Model -Intel Core i7-10700K -
-
-OS Versie -6.12.4 -
-
-Uptime -14d 2u 43m -
-
-
-Gezien: 2 min geleden - -
-
- -
-
-
-terminal -
-
-
-Verbonden -
-
-
-

Docker Socket Proxy

-

Leest alleen containerstatistieken. Write-access is geblokkeerd.

-
-
-
-check_circle -API Versie: 1.41 -
-
-lock -Mode: Read-Only (Secure) -
-
-link -tcp://192.168.1.50:2375 -
-
-
-Sync: 15s geleden - -
-
- -
-
-
-router -
-
-
-Bezig met synchroniseren -
-
-
-

Nginx Proxy Manager

-

Leest proxy-hosts voor automatische URL-toewijzing.

-
-
-
-

Externe URL's weergeven

-

Toon publieke domeinen in dashboard

-
- -
-
-Sync: 4m geleden - -
-
-
- -
-
-
-security -
-
-

Veiligheidsmodus actief

-

Alle verbindingen zijn geconfigureerd als 'Read-Only'. DockDeck kan geen wijzigingen aanbrengen in uw infrastructuur.

-
-
-
- - -
-
-
- -
- -
- - - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_integraties_definitief/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_integraties_definitief/screen.png deleted file mode 100644 index 78a56165..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_integraties_definitief/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_weergave_definitief/code.html b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_weergave_definitief/code.html deleted file mode 100644 index c4933170..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_weergave_definitief/code.html +++ /dev/null @@ -1,430 +0,0 @@ - - - - - - - - - - - - - - -
-
-DockDeck -
- -
- - -
-
- - - -
-
-
-

Weergave & Personalisatie

-

Pas je DockDeck dashboard aan naar jouw voorkeuren voor maximale productiviteit en stijl.

-
-
- -
- -
-

-palette - Thema Selectie -

-
- -
-
-
-check_circle -
-
-
-

Dark Theme

-
- -
-
-
-visibility -
-
-

Light Theme

-
- -
-
-
-visibility -
-
-

DockDeck Neon

-
-
-
- -
-
-

-grid_view - Dashboard Modus -

-
- - -
-
-
-
-

Grid Dichtheid

-COMFORTABEL -
- -
-Compact -Comfortabel -Ruim -
-
-
- -
-

-accessibility - Gedrag & Toegankelijkheid -

-
-
-
-

Beperk beweging

-

Vermindert animaties en overgangen.

-
- -
-
-
-

Hover-effecten versterken

-

Voegt extra contrast toe bij muis interactie.

-
- -
-
-
-
- -
-
-
-
-
-
-
-
-
-Live Preview -
-
-
- -
-
- -
-
-
-
-
- -
-
-
-terminal -
-
-
-
- -
-
-
-database -
-
-
-
- -
-
-
-monitoring -
-
-
-
- -
-
-
-cloud_off -
-
-
-
-
-
-
-
-bolt -
-
-
-
-
-
-chevron_right -
-
-
-
- - -
-
-
-
-
-
- - - - \ No newline at end of file diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_weergave_definitief/screen.png b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_weergave_definitief/screen.png deleted file mode 100644 index ae5e98bc..00000000 Binary files a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/instellingen_weergave_definitief/screen.png and /dev/null differ diff --git a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/obsidian_control/DESIGN.md b/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/obsidian_control/DESIGN.md deleted file mode 100644 index 307f98d8..00000000 --- a/.codex-input/stitch-dockdeck-canon-v1/stitch_dockdeck_premium_interface_system/obsidian_control/DESIGN.md +++ /dev/null @@ -1,179 +0,0 @@ ---- -name: Obsidian Control -colors: - surface: '#0b1326' - surface-dim: '#0b1326' - surface-bright: '#31394d' - surface-container-lowest: '#060e20' - surface-container-low: '#131b2e' - surface-container: '#171f33' - surface-container-high: '#222a3d' - surface-container-highest: '#2d3449' - on-surface: '#dae2fd' - on-surface-variant: '#bbcabf' - inverse-surface: '#dae2fd' - inverse-on-surface: '#283044' - outline: '#86948a' - outline-variant: '#3c4a42' - surface-tint: '#4edea3' - primary: '#4edea3' - on-primary: '#003824' - primary-container: '#10b981' - on-primary-container: '#00422b' - inverse-primary: '#006c49' - secondary: '#b7c8e1' - on-secondary: '#213145' - secondary-container: '#3a4a5f' - on-secondary-container: '#a9bad3' - tertiary: '#ffb95f' - on-tertiary: '#472a00' - tertiary-container: '#e29100' - on-tertiary-container: '#523200' - error: '#ffb4ab' - on-error: '#690005' - error-container: '#93000a' - on-error-container: '#ffdad6' - primary-fixed: '#6ffbbe' - primary-fixed-dim: '#4edea3' - on-primary-fixed: '#002113' - on-primary-fixed-variant: '#005236' - secondary-fixed: '#d3e4fe' - secondary-fixed-dim: '#b7c8e1' - on-secondary-fixed: '#0b1c30' - on-secondary-fixed-variant: '#38485d' - tertiary-fixed: '#ffddb8' - tertiary-fixed-dim: '#ffb95f' - on-tertiary-fixed: '#2a1700' - on-tertiary-fixed-variant: '#653e00' - background: '#0b1326' - on-background: '#dae2fd' - surface-variant: '#2d3449' -typography: - display-lg: - fontFamily: Geist - fontSize: 32px - fontWeight: '600' - lineHeight: 40px - letterSpacing: -0.02em - headline-md: - fontFamily: Geist - fontSize: 24px - fontWeight: '600' - lineHeight: 32px - letterSpacing: -0.01em - headline-sm: - fontFamily: Geist - fontSize: 18px - fontWeight: '600' - lineHeight: 24px - body-md: - fontFamily: Geist - fontSize: 14px - fontWeight: '400' - lineHeight: 20px - body-sm: - fontFamily: Geist - fontSize: 13px - fontWeight: '400' - lineHeight: 18px - data-mono: - fontFamily: JetBrains Mono - fontSize: 12px - fontWeight: '500' - lineHeight: 16px - label-caps: - fontFamily: Geist - fontSize: 11px - fontWeight: '700' - lineHeight: 16px - letterSpacing: 0.05em -rounded: - sm: 0.125rem - DEFAULT: 0.25rem - md: 0.375rem - lg: 0.5rem - xl: 0.75rem - full: 9999px -spacing: - density-standard: 1rem - density-compact: 0.5rem - gutter: 1.5rem - edge-margin: 2rem - sidebar-width: 260px - header-height: 64px ---- - -## Brand & Style -The design system is engineered for Managed Cloud Operations Platforms (MCOP), where the core brand personality is defined by **calm control, high precision, and technical credibility**. The aesthetic follows a **Modernist Technical** approach, blending the utility of developer tools with the refinement of enterprise SaaS. - -The interface prioritizes reduced cognitive load through a dark-mode-first environment that emphasizes "dark operational surfaces." It evokes an emotional response of professional reliability—giving operators the confidence to manage complex cloud infrastructures without visual distraction. The style utilizes subtle glassmorphism for overlays to maintain spatial context and high-contrast typography for critical data. - -## Colors -The palette shifts from generic corporate tones to a specialized **Operational Slate & Emerald** scheme. - -- **Primary (Emerald):** Used for `Wijzigingsmodus` (Action/Change mode) and successful states. -- **Secondary (Slate):** Used for structural elements, borders, and `Alleen-lezen` (Read-only) states. -- **Tertiary (Amber):** Dedicated to `Planningsmodus` (Planning mode) and cautionary notices. -- **System Health vs. Security Risk:** These are semantically separated. Health uses a vibrant green-to-yellow spectrum, while Security Risk utilizes a high-chroma red and violet spectrum to differentiate "functional failure" from "active threat." - -All color combinations are calibrated to meet **WCAG AA** standards. Status indicators must always be accompanied by icons or textural labels to ensure accessibility beyond color alone. - -## Typography -This design system utilizes **Geist** for its exceptional legibility and neutral, technical character. For tabular data and technical identifiers (e.g., Resource IDs, IP addresses), **JetBrains Mono** is employed to ensure character distinction and alignment. - -- **Headings:** Use Geist with tight letter-spacing for a modern, controlled look. -- **Tabular Data:** Always use the `data-mono` token for alignment and readability in dense grids. -- **Dutch Localization:** Ensure line heights accommodate Dutch compound words which can be significantly longer than English counterparts. - -## Layout & Spacing -The layout uses a **fluid-to-fixed hybrid grid**. The global shell features a fixed left-hand navigation and a persistent top status bar. - -**Density Modes:** -1. **Standard:** Used for dashboards and configuration screens. 16px (1rem) base spacing. -2. **Compact:** Used for log viewers and advanced data tables. 8px (0.5rem) base spacing to maximize information density. - -**Breakpoints:** -- **Mobile (<768px):** Navigation collapses to a bottom bar; margins reduce to 16px. -- **Tablet (768px - 1280px):** Sidebar collapses to icons only. -- **Desktop (>1280px):** Full sidebar and multi-pane layouts enabled. - -## Elevation & Depth -Depth is communicated through **Tonal Layering** rather than traditional shadows. In a dark operational environment, higher elevation is represented by lighter surface colors. - -- **Base Layer:** Darkest slate (#020617) for the application background. -- **Surface Layer:** One step lighter (#0F172A) for primary content cards and panels. -- **Overlay Layer:** Semi-transparent glassmorphism (15% opacity tint with 20px backdrop blur) for modals and dropdowns to keep the underlying system state visible. -- **Borders:** Subtle 1px strokes (#1E293B) replace shadows for a cleaner, "flat-tech" appearance. - -## Shapes -The design system uses a **Soft (0.25rem)** rounding strategy. This maintains a crisp, professional edge suitable for technical software while avoiding the harshness of 90-degree corners. - -- **Input Fields & Buttons:** 4px radius. -- **Cards & Modals:** 8px (rounded-lg) for clear container separation. -- **Environment Badges:** Fully pill-shaped to differentiate status metadata from interactive components. - -## Components - -### Global App Shell -A persistent top bar displays the **Tenant Switcher** (dropdown) and **Environment Badges** (e.g., `Productie`, `Staging`). The right side of the bar hosts the global system health pulse. - -### Specialized Badges -- **Versheid (Freshness):** Indicators for data latency (e.g., "Live", "5m geleden"). -- **Bron van Gezag (Source-of-Authority):** A distinctive icon-prefix badge showing if data is from `Cloud Provider` or `On-Premise`. -- **Beveiligd Object (Protected-Object):** A lock-themed badge for resources requiring MFA to modify. - -### Safety-first Action Previews -Before executing any `Wijziging` (Change), a modal must present an **Impact-analyse**: -- **Risico:** Low/Medium/High/Critical. -- **Omkeerbaarheid:** Clear label stating if the action is `Herstelbaar` (Reversible) or `Permanent`. -- **Impact Radius:** A list of affected downstream resources. - -### Advanced Data Tables -- **Bulk Selection:** A dedicated action bar appears at the bottom of the screen when items are selected. -- **Filter States:** Visible "Chips" in the header to allow quick removal of active filters. -- **Compact Toggle:** A dedicated UI switch to toggle between Standard and Compact row heights. - -### Operational Modes (UI State) -- **Alleen-lezen:** Header is Neutral Gray; primary actions are disabled. -- **Planningsmodus:** Header features a subtle Amber stripe; actions are "Stage" instead of "Execute". -- **Wijzigingsmodus:** Header features a subtle Emerald glow; all destructive actions are unlocked. \ No newline at end of file diff --git a/.codex-input/v10_contact_sheet_001.png b/.codex-input/v10_contact_sheet_001.png deleted file mode 100644 index 69e2ea45..00000000 Binary files a/.codex-input/v10_contact_sheet_001.png and /dev/null differ diff --git a/.codex-input/v12_full_aoi_contact_sheet.png b/.codex-input/v12_full_aoi_contact_sheet.png deleted file mode 100644 index 2bf490e9..00000000 Binary files a/.codex-input/v12_full_aoi_contact_sheet.png and /dev/null differ diff --git a/.codex-input/v13_sam_cal_contact_sheet.png b/.codex-input/v13_sam_cal_contact_sheet.png deleted file mode 100644 index a5e56d86..00000000 Binary files a/.codex-input/v13_sam_cal_contact_sheet.png and /dev/null differ diff --git a/.codex-input/v33-error-review/genk-industry-train/candidate_error_contact_sheet.json b/.codex-input/v33-error-review/genk-industry-train/candidate_error_contact_sheet.json deleted file mode 100644 index ab4d96fe..00000000 --- a/.codex-input/v33-error-review/genk-industry-train/candidate_error_contact_sheet.json +++ /dev/null @@ -1,220 +0,0 @@ -{ - "schema_version": 1, - "model": "/app/storage/training/building-be-v33-yolo11l-rotation-regularized-r1/iteration-001/candidate.pt", - "summary": "/app/storage/operator-data/building-be-v30-rotated-holdouts-r1/calibration/yolo_tile_dataset_summary.json", - "threshold": 0.02, - "match_iou": 0.25, - "samples": [ - "genk-industry-train" - ], - "legend": { - "reference": "yellow", - "matched_prediction": "green", - "false_positive": "red", - "false_negative": "magenta" - }, - "geometry": { - "reference": { - "area_share": { - "count": 338, - "median": 0.041666667499999976, - "p90": 0.13444010562499992, - "p95": 0.18716769704861105, - "p99": 0.3315429665625, - "max": 1.0 - }, - "aspect_ratio": { - "count": 338, - "median": 1.4962686370115839, - "p90": 3.5681819510743784, - "p95": 6.052631238559578, - "p99": 11.5, - "max": 31.699995814400538 - } - }, - "matched": { - "area_share": { - "count": 230, - "median": 0.07151662196138497, - "p90": 0.19851095458115434, - "p95": 0.2571341409752494, - "p99": 0.9420929719723353, - "max": 0.9554557734008216 - }, - "aspect_ratio": { - "count": 230, - "median": 1.2699186574908667, - "p90": 2.181951416274265, - "p95": 2.6990222168919176, - "p99": 3.3889875335047184, - "max": 4.849564664775975 - } - }, - "false_positive": { - "area_share": { - "count": 406, - "median": 0.04993198819198241, - "p90": 0.20385685010478483, - "p95": 0.26342950975102686, - "p99": 0.9240076295477402, - "max": 0.9727196192452536 - }, - "aspect_ratio": { - "count": 406, - "median": 1.372857491117996, - "p90": 2.4137304286864176, - "p95": 2.9231592178599466, - "p99": 3.9573746420891225, - "max": 7.008886112292641 - } - }, - "false_negative": { - "area_share": { - "count": 108, - "median": 0.017011854548611108, - "p90": 0.049370659626736084, - "p95": 0.063374836328125, - "p99": 0.087890625, - "max": 0.113579644548611 - }, - "aspect_ratio": { - "count": 108, - "median": 1.7549949901698705, - "p90": 6.357143346938822, - "p95": 10.545455656198481, - "p99": 22.444444586666666, - "max": 31.699995814400538 - } - } - }, - "tiles": [ - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0000_r0_c0_z0_0.png", - "label_count": 24, - "true_positive": 16, - "false_positive": 26, - "false_negative": 8 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0000_r0_c0_z0_256.png", - "label_count": 17, - "true_positive": 11, - "false_positive": 22, - "false_negative": 6 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0000_r0_c0_z256_0.png", - "label_count": 27, - "true_positive": 12, - "false_positive": 20, - "false_negative": 15 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0000_r0_c0_z256_256.png", - "label_count": 32, - "true_positive": 19, - "false_positive": 18, - "false_negative": 13 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0001_r0_c416_z0_0.png", - "label_count": 15, - "true_positive": 11, - "false_positive": 31, - "false_negative": 4 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0001_r0_c416_z0_256.png", - "label_count": 14, - "true_positive": 8, - "false_positive": 24, - "false_negative": 6 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0001_r0_c416_z256_0.png", - "label_count": 27, - "true_positive": 23, - "false_positive": 26, - "false_negative": 4 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0001_r0_c416_z256_256.png", - "label_count": 14, - "true_positive": 13, - "false_positive": 27, - "false_negative": 1 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0002_r416_c0_z0_0.png", - "label_count": 22, - "true_positive": 11, - "false_positive": 17, - "false_negative": 11 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0002_r416_c0_z0_256.png", - "label_count": 35, - "true_positive": 21, - "false_positive": 14, - "false_negative": 14 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0002_r416_c0_z256_0.png", - "label_count": 16, - "true_positive": 13, - "false_positive": 32, - "false_negative": 3 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0002_r416_c0_z256_256.png", - "label_count": 23, - "true_positive": 15, - "false_positive": 21, - "false_negative": 8 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0003_r416_c416_z0_0.png", - "label_count": 26, - "true_positive": 21, - "false_positive": 30, - "false_negative": 5 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0003_r416_c416_z0_256.png", - "label_count": 6, - "true_positive": 5, - "false_positive": 45, - "false_negative": 1 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0003_r416_c416_z256_0.png", - "label_count": 23, - "true_positive": 18, - "false_positive": 20, - "false_negative": 5 - }, - { - "sample_slug": "genk-industry-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/genk-industry-train_0003_r416_c416_z256_256.png", - "label_count": 17, - "true_positive": 13, - "false_positive": 33, - "false_negative": 4 - } - ] -} \ No newline at end of file diff --git a/.codex-input/v33-error-review/genk-industry-train/candidate_error_contact_sheet.png b/.codex-input/v33-error-review/genk-industry-train/candidate_error_contact_sheet.png deleted file mode 100644 index a3caf405..00000000 Binary files a/.codex-input/v33-error-review/genk-industry-train/candidate_error_contact_sheet.png and /dev/null differ diff --git a/.codex-input/v33-error-review/lokeren-ribbon-train/candidate_error_contact_sheet.json b/.codex-input/v33-error-review/lokeren-ribbon-train/candidate_error_contact_sheet.json deleted file mode 100644 index 83e63fff..00000000 --- a/.codex-input/v33-error-review/lokeren-ribbon-train/candidate_error_contact_sheet.json +++ /dev/null @@ -1,220 +0,0 @@ -{ - "schema_version": 1, - "model": "/app/storage/training/building-be-v33-yolo11l-rotation-regularized-r1/iteration-001/candidate.pt", - "summary": "/app/storage/operator-data/building-be-v30-rotated-holdouts-r1/calibration/yolo_tile_dataset_summary.json", - "threshold": 0.02, - "match_iou": 0.25, - "samples": [ - "lokeren-ribbon-train" - ], - "legend": { - "reference": "yellow", - "matched_prediction": "green", - "false_positive": "red", - "false_negative": "magenta" - }, - "geometry": { - "reference": { - "area_share": { - "count": 626, - "median": 0.024105495789930563, - "p90": 0.05283610164062493, - "p95": 0.06494140734375, - "p99": 0.10803222656249999, - "max": 0.1717529296875 - }, - "aspect_ratio": { - "count": 626, - "median": 1.404918084303365, - "p90": 2.4468086045088318, - "p95": 2.8269230073372804, - "p99": 4.307692568994086, - "max": 11.0 - } - }, - "matched": { - "area_share": { - "count": 420, - "median": 0.04354447306734517, - "p90": 0.07574379198059786, - "p95": 0.0871026223402901, - "p99": 0.14168901977266538, - "max": 0.22531782415795712 - }, - "aspect_ratio": { - "count": 420, - "median": 1.2577785750145072, - "p90": 2.071724511910444, - "p95": 2.5182856881285645, - "p99": 3.369228702110751, - "max": 4.11930690141678 - } - }, - "false_positive": { - "area_share": { - "count": 733, - "median": 0.034581028300648436, - "p90": 0.11523054054110086, - "p95": 0.21367703243527103, - "p99": 0.9053550285003372, - "max": 0.9264573896154693 - }, - "aspect_ratio": { - "count": 733, - "median": 1.2965030555397925, - "p90": 2.7956813131281595, - "p95": 3.2247266223475957, - "p99": 4.748123855618314, - "max": 6.793088751091444 - } - }, - "false_negative": { - "area_share": { - "count": 206, - "median": 0.006934272118055553, - "p90": 0.033203125, - "p95": 0.03849283796875, - "p99": 0.0541924376736111, - "max": 0.07318793209201388 - }, - "aspect_ratio": { - "count": 206, - "median": 1.3660714135714294, - "p90": 2.2456140126315796, - "p95": 2.5652173477504743, - "p99": 3.7000001728000047, - "max": 11.0 - } - } - }, - "tiles": [ - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0000_r0_c0_z0_0.png", - "label_count": 42, - "true_positive": 31, - "false_positive": 57, - "false_negative": 11 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0000_r0_c0_z0_256.png", - "label_count": 35, - "true_positive": 29, - "false_positive": 61, - "false_negative": 6 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0000_r0_c0_z256_0.png", - "label_count": 47, - "true_positive": 36, - "false_positive": 47, - "false_negative": 11 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0000_r0_c0_z256_256.png", - "label_count": 51, - "true_positive": 34, - "false_positive": 43, - "false_negative": 17 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0001_r0_c395_z0_0.png", - "label_count": 28, - "true_positive": 22, - "false_positive": 51, - "false_negative": 6 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0001_r0_c395_z0_256.png", - "label_count": 48, - "true_positive": 28, - "false_positive": 46, - "false_negative": 20 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0001_r0_c395_z256_0.png", - "label_count": 57, - "true_positive": 37, - "false_positive": 52, - "false_negative": 20 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0001_r0_c395_z256_256.png", - "label_count": 49, - "true_positive": 39, - "false_positive": 43, - "false_negative": 10 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0002_r395_c0_z0_0.png", - "label_count": 48, - "true_positive": 25, - "false_positive": 31, - "false_negative": 23 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0002_r395_c0_z0_256.png", - "label_count": 43, - "true_positive": 27, - "false_positive": 35, - "false_negative": 16 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0002_r395_c0_z256_0.png", - "label_count": 40, - "true_positive": 20, - "false_positive": 43, - "false_negative": 20 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0002_r395_c0_z256_256.png", - "label_count": 22, - "true_positive": 15, - "false_positive": 44, - "false_negative": 7 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0003_r395_c395_z0_0.png", - "label_count": 49, - "true_positive": 34, - "false_positive": 52, - "false_negative": 15 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0003_r395_c395_z0_256.png", - "label_count": 34, - "true_positive": 27, - "false_positive": 50, - "false_negative": 7 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0003_r395_c395_z256_0.png", - "label_count": 21, - "true_positive": 13, - "false_positive": 58, - "false_negative": 8 - }, - { - "sample_slug": "lokeren-ribbon-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/lokeren-ribbon-train_0003_r395_c395_z256_256.png", - "label_count": 12, - "true_positive": 3, - "false_positive": 20, - "false_negative": 9 - } - ] -} \ No newline at end of file diff --git a/.codex-input/v33-error-review/lokeren-ribbon-train/candidate_error_contact_sheet.png b/.codex-input/v33-error-review/lokeren-ribbon-train/candidate_error_contact_sheet.png deleted file mode 100644 index 889ea90d..00000000 Binary files a/.codex-input/v33-error-review/lokeren-ribbon-train/candidate_error_contact_sheet.png and /dev/null differ diff --git a/.codex-input/v33-error-review/ostend-coastal-train/candidate_error_contact_sheet.json b/.codex-input/v33-error-review/ostend-coastal-train/candidate_error_contact_sheet.json deleted file mode 100644 index 9deec421..00000000 --- a/.codex-input/v33-error-review/ostend-coastal-train/candidate_error_contact_sheet.json +++ /dev/null @@ -1,220 +0,0 @@ -{ - "schema_version": 1, - "model": "/app/storage/training/building-be-v33-yolo11l-rotation-regularized-r1/iteration-001/candidate.pt", - "summary": "/app/storage/operator-data/building-be-v30-rotated-holdouts-r1/calibration/yolo_tile_dataset_summary.json", - "threshold": 0.02, - "match_iou": 0.25, - "samples": [ - "ostend-coastal-train" - ], - "legend": { - "reference": "yellow", - "matched_prediction": "green", - "false_positive": "red", - "false_negative": "magenta" - }, - "geometry": { - "reference": { - "area_share": { - "count": 46, - "median": 0.11498006316406245, - "p90": 0.5957234677343751, - "p95": 0.76041667, - "p99": 1.0, - "max": 1.0 - }, - "aspect_ratio": { - "count": 46, - "median": 1.3931591894640243, - "p90": 2.5066666496000005, - "p95": 3.3902440395002955, - "p99": 4.166666666666667, - "max": 4.166666666666667 - } - }, - "matched": { - "area_share": { - "count": 37, - "median": 0.103368325942424, - "p90": 0.960510907801758, - "p95": 0.961443528228294, - "p99": 0.9675038678905048, - "max": 0.9675038678905048 - }, - "aspect_ratio": { - "count": 37, - "median": 1.0741198977650206, - "p90": 1.7965107909999176, - "p95": 2.031736149075751, - "p99": 2.4426746916804336, - "max": 2.4426746916804336 - } - }, - "false_positive": { - "area_share": { - "count": 268, - "median": 0.07739730946661932, - "p90": 0.22339239581131348, - "p95": 0.27401130787593087, - "p99": 0.9555367739508974, - "max": 0.9745105956175415 - }, - "aspect_ratio": { - "count": 268, - "median": 1.2243194185289603, - "p90": 1.8480747263777986, - "p95": 2.2133905118780652, - "p99": 3.1314726443655205, - "max": 3.9135288253718294 - } - }, - "false_negative": { - "area_share": { - "count": 9, - "median": 0.0281982421875, - "p90": 0.10327826826388889, - "p95": 0.14211697302951382, - "p99": 0.14211697302951382, - "max": 0.14211697302951382 - }, - "aspect_ratio": { - "count": 9, - "median": 1.6185566928685302, - "p90": 2.083333439999999, - "p95": 2.346154010887576, - "p99": 2.346154010887576, - "max": 2.346154010887576 - } - } - }, - "tiles": [ - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0000_r0_c0_z0_0.png", - "label_count": 0, - "true_positive": 0, - "false_positive": 21, - "false_negative": 0 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0000_r0_c0_z0_256.png", - "label_count": 2, - "true_positive": 2, - "false_positive": 16, - "false_negative": 0 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0000_r0_c0_z256_0.png", - "label_count": 0, - "true_positive": 0, - "false_positive": 11, - "false_negative": 0 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0000_r0_c0_z256_256.png", - "label_count": 2, - "true_positive": 2, - "false_positive": 11, - "false_negative": 0 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0001_r0_c424_z0_0.png", - "label_count": 5, - "true_positive": 4, - "false_positive": 10, - "false_negative": 1 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0001_r0_c424_z0_256.png", - "label_count": 15, - "true_positive": 10, - "false_positive": 15, - "false_negative": 5 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0001_r0_c424_z256_0.png", - "label_count": 3, - "true_positive": 3, - "false_positive": 15, - "false_negative": 0 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0001_r0_c424_z256_256.png", - "label_count": 5, - "true_positive": 3, - "false_positive": 18, - "false_negative": 2 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0002_r424_c0_z0_0.png", - "label_count": 1, - "true_positive": 1, - "false_positive": 3, - "false_negative": 0 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0002_r424_c0_z0_256.png", - "label_count": 2, - "true_positive": 2, - "false_positive": 16, - "false_negative": 0 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0002_r424_c0_z256_0.png", - "label_count": 0, - "true_positive": 0, - "false_positive": 13, - "false_negative": 0 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0002_r424_c0_z256_256.png", - "label_count": 1, - "true_positive": 1, - "false_positive": 24, - "false_negative": 0 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0003_r424_c424_z0_0.png", - "label_count": 2, - "true_positive": 2, - "false_positive": 14, - "false_negative": 0 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0003_r424_c424_z0_256.png", - "label_count": 2, - "true_positive": 1, - "false_positive": 26, - "false_negative": 1 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0003_r424_c424_z256_0.png", - "label_count": 2, - "true_positive": 2, - "false_positive": 20, - "false_negative": 0 - }, - { - "sample_slug": "ostend-coastal-train", - "image_path": "/app/storage/operator-data/yolo-building-be-v27-overlap384-train-r1/images/train/ostend-coastal-train_0003_r424_c424_z256_256.png", - "label_count": 4, - "true_positive": 4, - "false_positive": 35, - "false_negative": 0 - } - ] -} \ No newline at end of file diff --git a/.codex-input/v33-error-review/ostend-coastal-train/candidate_error_contact_sheet.png b/.codex-input/v33-error-review/ostend-coastal-train/candidate_error_contact_sheet.png deleted file mode 100644 index 0871b467..00000000 Binary files a/.codex-input/v33-error-review/ostend-coastal-train/candidate_error_contact_sheet.png and /dev/null differ diff --git a/.codex-input/v33-img1024.json b/.codex-input/v33-img1024.json deleted file mode 100644 index 0cd772e4..00000000 --- a/.codex-input/v33-img1024.json +++ /dev/null @@ -1,1930 +0,0 @@ -{ - "schema_version": 1, - "model": "/app/storage/training/building-be-v33-yolo11l-rotation-regularized-r1/iteration-001/candidate.pt", - "summary": "/app/storage/operator-data/building-be-v30-rotated-holdouts-r1/calibration/yolo_tile_dataset_summary.json", - "split": "val", - "match_iou": 0.25, - "test_time_augmentation": false, - "inference_imgsz": 1024, - "inference_batch": 1, - "max_detections_per_tile": 1000, - "nms_iou": 0.3, - "containment_nms": 0.95, - "box_scale": 1.0, - "box_offset_x": 0.0, - "box_offset_y": 0.0, - "additional_model": null, - "ensemble_mode": null, - "ensemble_match_iou": null, - "proposal_classifier": null, - "proposal_classifier_threshold": null, - "proposal_crop_scale": null, - "proposal_classifier_batch": null, - "tile_count": 144, - "sweeps": [ - { - "threshold": 0.01, - "aggregate": { - "true_positive": 2984, - "false_positive": 4425, - "false_negative": 1820, - "precision": 0.40275340801727627, - "recall": 0.6211490424646128, - "f1": 0.488659624989765 - }, - "regions": { - "brussels": { - "true_positive": 1205, - "false_positive": 1526, - "false_negative": 643, - "precision": 0.44123031856462835, - "recall": 0.6520562770562771, - "f1": 0.5263157894736842 - }, - "flanders": { - "true_positive": 629, - "false_positive": 1771, - "false_negative": 381, - "precision": 0.26208333333333333, - "recall": 0.6227722772277228, - "f1": 0.36891495601173024 - }, - "wallonia": { - "true_positive": 1150, - "false_positive": 1128, - "false_negative": 796, - "precision": 0.504828797190518, - "recall": 0.590955806783145, - "f1": 0.5445075757575758 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 328, - "false_positive": 508, - "false_negative": 154, - "precision": 0.3923444976076555, - "recall": 0.6804979253112033, - "f1": 0.4977238239757208 - }, - "ath-rural-train": { - "true_positive": 534, - "false_positive": 509, - "false_negative": 402, - "precision": 0.5119846596356663, - "recall": 0.5705128205128205, - "f1": 0.53966649823143 - }, - "charleroi-core-train": { - "true_positive": 282, - "false_positive": 230, - "false_negative": 244, - "precision": 0.55078125, - "recall": 0.5361216730038023, - "f1": 0.5433526011560693 - }, - "eupen-train": { - "true_positive": 334, - "false_positive": 389, - "false_negative": 150, - "precision": 0.46196403872752423, - "recall": 0.6900826446280992, - "f1": 0.5534382767191384 - }, - "genk-industry-train": { - "true_positive": 173, - "false_positive": 423, - "false_negative": 165, - "precision": 0.2902684563758389, - "recall": 0.5118343195266272, - "f1": 0.37044967880085644 - }, - "ixelles-dense-train": { - "true_positive": 660, - "false_positive": 525, - "false_negative": 358, - "precision": 0.5569620253164557, - "recall": 0.6483300589390962, - "f1": 0.5991829323649569 - }, - "lokeren-ribbon-train": { - "true_positive": 426, - "false_positive": 938, - "false_negative": 200, - "precision": 0.312316715542522, - "recall": 0.6805111821086262, - "f1": 0.4281407035175879 - }, - "ostend-coastal-train": { - "true_positive": 30, - "false_positive": 410, - "false_negative": 16, - "precision": 0.06818181818181818, - "recall": 0.6521739130434783, - "f1": 0.1234567901234568 - }, - "uccle-residential-train": { - "true_positive": 217, - "false_positive": 493, - "false_negative": 131, - "precision": 0.3056338028169014, - "recall": 0.6235632183908046, - "f1": 0.4102079395085066 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.015, - "aggregate": { - "true_positive": 2880, - "false_positive": 3303, - "false_negative": 1924, - "precision": 0.4657933042212518, - "recall": 0.5995004163197336, - "f1": 0.5242559388368072 - }, - "regions": { - "brussels": { - "true_positive": 1168, - "false_positive": 1056, - "false_negative": 680, - "precision": 0.5251798561151079, - "recall": 0.6320346320346321, - "f1": 0.5736738703339882 - }, - "flanders": { - "true_positive": 587, - "false_positive": 1347, - "false_negative": 423, - "precision": 0.3035160289555326, - "recall": 0.5811881188118811, - "f1": 0.39877717391304346 - }, - "wallonia": { - "true_positive": 1125, - "false_positive": 900, - "false_negative": 821, - "precision": 0.5555555555555556, - "recall": 0.5781089414182939, - "f1": 0.5666079073281289 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 321, - "false_positive": 356, - "false_negative": 161, - "precision": 0.4741506646971935, - "recall": 0.6659751037344398, - "f1": 0.5539257981018119 - }, - "ath-rural-train": { - "true_positive": 527, - "false_positive": 410, - "false_negative": 409, - "precision": 0.5624332977588047, - "recall": 0.563034188034188, - "f1": 0.5627335824879872 - }, - "charleroi-core-train": { - "true_positive": 269, - "false_positive": 167, - "false_negative": 257, - "precision": 0.6169724770642202, - "recall": 0.5114068441064639, - "f1": 0.5592515592515592 - }, - "eupen-train": { - "true_positive": 329, - "false_positive": 323, - "false_negative": 155, - "precision": 0.504601226993865, - "recall": 0.6797520661157025, - "f1": 0.5792253521126761 - }, - "genk-industry-train": { - "true_positive": 162, - "false_positive": 324, - "false_negative": 176, - "precision": 0.3333333333333333, - "recall": 0.47928994082840237, - "f1": 0.3932038834951456 - }, - "ixelles-dense-train": { - "true_positive": 636, - "false_positive": 377, - "false_negative": 382, - "precision": 0.6278381046396841, - "recall": 0.6247544204322201, - "f1": 0.6262924667651405 - }, - "lokeren-ribbon-train": { - "true_positive": 395, - "false_positive": 734, - "false_negative": 231, - "precision": 0.34986713906111605, - "recall": 0.6309904153354633, - "f1": 0.4501424501424502 - }, - "ostend-coastal-train": { - "true_positive": 30, - "false_positive": 289, - "false_negative": 16, - "precision": 0.09404388714733543, - "recall": 0.6521739130434783, - "f1": 0.1643835616438356 - }, - "uccle-residential-train": { - "true_positive": 211, - "false_positive": 323, - "false_negative": 137, - "precision": 0.3951310861423221, - "recall": 0.6063218390804598, - "f1": 0.4784580498866213 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.02, - "aggregate": { - "true_positive": 2770, - "false_positive": 2616, - "false_negative": 2034, - "precision": 0.5142963238024508, - "recall": 0.5766028309741882, - "f1": 0.5436702649656526 - }, - "regions": { - "brussels": { - "true_positive": 1129, - "false_positive": 808, - "false_negative": 719, - "precision": 0.582860092927207, - "recall": 0.6109307359307359, - "f1": 0.596565389696169 - }, - "flanders": { - "true_positive": 545, - "false_positive": 1047, - "false_negative": 465, - "precision": 0.34233668341708545, - "recall": 0.5396039603960396, - "f1": 0.41890853189853966 - }, - "wallonia": { - "true_positive": 1096, - "false_positive": 761, - "false_negative": 850, - "precision": 0.5901992460958535, - "recall": 0.5632065775950668, - "f1": 0.5763870628451223 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 317, - "false_positive": 273, - "false_negative": 165, - "precision": 0.5372881355932203, - "recall": 0.6576763485477178, - "f1": 0.5914179104477612 - }, - "ath-rural-train": { - "true_positive": 510, - "false_positive": 347, - "false_negative": 426, - "precision": 0.5950991831971996, - "recall": 0.5448717948717948, - "f1": 0.5688789737869492 - }, - "charleroi-core-train": { - "true_positive": 261, - "false_positive": 131, - "false_negative": 265, - "precision": 0.6658163265306123, - "recall": 0.49619771863117873, - "f1": 0.5686274509803921 - }, - "eupen-train": { - "true_positive": 325, - "false_positive": 283, - "false_negative": 159, - "precision": 0.5345394736842105, - "recall": 0.6714876033057852, - "f1": 0.5952380952380952 - }, - "genk-industry-train": { - "true_positive": 148, - "false_positive": 256, - "false_negative": 190, - "precision": 0.36633663366336633, - "recall": 0.4378698224852071, - "f1": 0.398921832884097 - }, - "ixelles-dense-train": { - "true_positive": 607, - "false_positive": 290, - "false_negative": 411, - "precision": 0.6767001114827201, - "recall": 0.5962671905697446, - "f1": 0.6339425587467363 - }, - "lokeren-ribbon-train": { - "true_positive": 368, - "false_positive": 580, - "false_negative": 258, - "precision": 0.3881856540084388, - "recall": 0.5878594249201278, - "f1": 0.46759847522236336 - }, - "ostend-coastal-train": { - "true_positive": 29, - "false_positive": 211, - "false_negative": 17, - "precision": 0.12083333333333333, - "recall": 0.6304347826086957, - "f1": 0.20279720279720279 - }, - "uccle-residential-train": { - "true_positive": 205, - "false_positive": 245, - "false_negative": 143, - "precision": 0.45555555555555555, - "recall": 0.5890804597701149, - "f1": 0.5137844611528822 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.025, - "aggregate": { - "true_positive": 2673, - "false_positive": 2149, - "false_negative": 2131, - "precision": 0.5543343011198673, - "recall": 0.5564113238967527, - "f1": 0.5553708705589031 - }, - "regions": { - "brussels": { - "true_positive": 1102, - "false_positive": 629, - "false_negative": 746, - "precision": 0.6366262276140959, - "recall": 0.5963203463203464, - "f1": 0.6158144733165689 - }, - "flanders": { - "true_positive": 504, - "false_positive": 847, - "false_negative": 506, - "precision": 0.37305699481865284, - "recall": 0.499009900990099, - "f1": 0.4269377382465057 - }, - "wallonia": { - "true_positive": 1067, - "false_positive": 673, - "false_negative": 879, - "precision": 0.6132183908045977, - "recall": 0.5483042137718397, - "f1": 0.5789473684210525 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 311, - "false_positive": 219, - "false_negative": 171, - "precision": 0.5867924528301887, - "recall": 0.6452282157676349, - "f1": 0.6146245059288538 - }, - "ath-rural-train": { - "true_positive": 496, - "false_positive": 308, - "false_negative": 440, - "precision": 0.6169154228855721, - "recall": 0.5299145299145299, - "f1": 0.5701149425287356 - }, - "charleroi-core-train": { - "true_positive": 249, - "false_positive": 113, - "false_negative": 277, - "precision": 0.6878453038674033, - "recall": 0.47338403041825095, - "f1": 0.5608108108108107 - }, - "eupen-train": { - "true_positive": 322, - "false_positive": 252, - "false_negative": 162, - "precision": 0.5609756097560976, - "recall": 0.6652892561983471, - "f1": 0.6086956521739131 - }, - "genk-industry-train": { - "true_positive": 136, - "false_positive": 202, - "false_negative": 202, - "precision": 0.40236686390532544, - "recall": 0.40236686390532544, - "f1": 0.40236686390532544 - }, - "ixelles-dense-train": { - "true_positive": 588, - "false_positive": 221, - "false_negative": 430, - "precision": 0.7268232385661311, - "recall": 0.5776031434184676, - "f1": 0.6436781609195403 - }, - "lokeren-ribbon-train": { - "true_positive": 340, - "false_positive": 478, - "false_negative": 286, - "precision": 0.4156479217603912, - "recall": 0.5431309904153354, - "f1": 0.4709141274238227 - }, - "ostend-coastal-train": { - "true_positive": 28, - "false_positive": 167, - "false_negative": 18, - "precision": 0.14358974358974358, - "recall": 0.6086956521739131, - "f1": 0.23236514522821575 - }, - "uccle-residential-train": { - "true_positive": 203, - "false_positive": 189, - "false_negative": 145, - "precision": 0.5178571428571429, - "recall": 0.5833333333333334, - "f1": 0.5486486486486487 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.03, - "aggregate": { - "true_positive": 2583, - "false_positive": 1797, - "false_negative": 2221, - "precision": 0.5897260273972603, - "recall": 0.537676935886761, - "f1": 0.5625 - }, - "regions": { - "brussels": { - "true_positive": 1083, - "false_positive": 516, - "false_negative": 765, - "precision": 0.6772983114446529, - "recall": 0.586038961038961, - "f1": 0.628372497824195 - }, - "flanders": { - "true_positive": 456, - "false_positive": 674, - "false_negative": 554, - "precision": 0.40353982300884955, - "recall": 0.4514851485148515, - "f1": 0.4261682242990654 - }, - "wallonia": { - "true_positive": 1044, - "false_positive": 607, - "false_negative": 902, - "precision": 0.6323440339188371, - "recall": 0.5364850976361768, - "f1": 0.5804837364470392 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 309, - "false_positive": 179, - "false_negative": 173, - "precision": 0.6331967213114754, - "recall": 0.6410788381742739, - "f1": 0.6371134020618557 - }, - "ath-rural-train": { - "true_positive": 484, - "false_positive": 272, - "false_negative": 452, - "precision": 0.6402116402116402, - "recall": 0.5170940170940171, - "f1": 0.5721040189125296 - }, - "charleroi-core-train": { - "true_positive": 242, - "false_positive": 105, - "false_negative": 284, - "precision": 0.6974063400576369, - "recall": 0.4600760456273764, - "f1": 0.5544100801832761 - }, - "eupen-train": { - "true_positive": 318, - "false_positive": 230, - "false_negative": 166, - "precision": 0.5802919708029197, - "recall": 0.6570247933884298, - "f1": 0.6162790697674418 - }, - "genk-industry-train": { - "true_positive": 123, - "false_positive": 170, - "false_negative": 215, - "precision": 0.4197952218430034, - "recall": 0.363905325443787, - "f1": 0.3898573692551506 - }, - "ixelles-dense-train": { - "true_positive": 573, - "false_positive": 191, - "false_negative": 445, - "precision": 0.75, - "recall": 0.56286836935167, - "f1": 0.6430976430976431 - }, - "lokeren-ribbon-train": { - "true_positive": 309, - "false_positive": 379, - "false_negative": 317, - "precision": 0.4491279069767442, - "recall": 0.4936102236421725, - "f1": 0.4703196347031964 - }, - "ostend-coastal-train": { - "true_positive": 24, - "false_positive": 125, - "false_negative": 22, - "precision": 0.1610738255033557, - "recall": 0.5217391304347826, - "f1": 0.24615384615384617 - }, - "uccle-residential-train": { - "true_positive": 201, - "false_positive": 146, - "false_negative": 147, - "precision": 0.579250720461095, - "recall": 0.5775862068965517, - "f1": 0.5784172661870502 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.035, - "aggregate": { - "true_positive": 2504, - "false_positive": 1533, - "false_negative": 2300, - "precision": 0.6202625712162497, - "recall": 0.5212323064113239, - "f1": 0.5664517588508089 - }, - "regions": { - "brussels": { - "true_positive": 1070, - "false_positive": 430, - "false_negative": 778, - "precision": 0.7133333333333334, - "recall": 0.579004329004329, - "f1": 0.6391875746714456 - }, - "flanders": { - "true_positive": 407, - "false_positive": 544, - "false_negative": 603, - "precision": 0.42797055730809674, - "recall": 0.402970297029703, - "f1": 0.41509433962264153 - }, - "wallonia": { - "true_positive": 1027, - "false_positive": 559, - "false_negative": 919, - "precision": 0.6475409836065574, - "recall": 0.5277492291880781, - "f1": 0.5815402038505096 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 306, - "false_positive": 152, - "false_negative": 176, - "precision": 0.6681222707423581, - "recall": 0.6348547717842323, - "f1": 0.651063829787234 - }, - "ath-rural-train": { - "true_positive": 477, - "false_positive": 253, - "false_negative": 459, - "precision": 0.6534246575342466, - "recall": 0.5096153846153846, - "f1": 0.5726290516206483 - }, - "charleroi-core-train": { - "true_positive": 235, - "false_positive": 94, - "false_negative": 291, - "precision": 0.7142857142857143, - "recall": 0.4467680608365019, - "f1": 0.5497076023391814 - }, - "eupen-train": { - "true_positive": 315, - "false_positive": 212, - "false_negative": 169, - "precision": 0.5977229601518027, - "recall": 0.6508264462809917, - "f1": 0.6231454005934719 - }, - "genk-industry-train": { - "true_positive": 112, - "false_positive": 141, - "false_negative": 226, - "precision": 0.4426877470355731, - "recall": 0.33136094674556216, - "f1": 0.3790186125211506 - }, - "ixelles-dense-train": { - "true_positive": 566, - "false_positive": 158, - "false_negative": 452, - "precision": 0.7817679558011049, - "recall": 0.555992141453831, - "f1": 0.6498277841561424 - }, - "lokeren-ribbon-train": { - "true_positive": 273, - "false_positive": 315, - "false_negative": 353, - "precision": 0.4642857142857143, - "recall": 0.43610223642172524, - "f1": 0.4497528830313015 - }, - "ostend-coastal-train": { - "true_positive": 22, - "false_positive": 88, - "false_negative": 24, - "precision": 0.2, - "recall": 0.4782608695652174, - "f1": 0.28205128205128205 - }, - "uccle-residential-train": { - "true_positive": 198, - "false_positive": 120, - "false_negative": 150, - "precision": 0.6226415094339622, - "recall": 0.5689655172413793, - "f1": 0.5945945945945946 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.04, - "aggregate": { - "true_positive": 2429, - "false_positive": 1329, - "false_negative": 2375, - "precision": 0.6463544438531134, - "recall": 0.5056203164029975, - "f1": 0.5673907965428637 - }, - "regions": { - "brussels": { - "true_positive": 1051, - "false_positive": 380, - "false_negative": 797, - "precision": 0.7344514325646401, - "recall": 0.5687229437229437, - "f1": 0.6410491003354681 - }, - "flanders": { - "true_positive": 368, - "false_positive": 435, - "false_negative": 642, - "precision": 0.45828144458281445, - "recall": 0.36435643564356435, - "f1": 0.40595697738554887 - }, - "wallonia": { - "true_positive": 1010, - "false_positive": 514, - "false_negative": 936, - "precision": 0.6627296587926509, - "recall": 0.5190133607399794, - "f1": 0.5821325648414986 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 300, - "false_positive": 134, - "false_negative": 182, - "precision": 0.6912442396313364, - "recall": 0.6224066390041494, - "f1": 0.6550218340611355 - }, - "ath-rural-train": { - "true_positive": 468, - "false_positive": 227, - "false_negative": 468, - "precision": 0.6733812949640288, - "recall": 0.5, - "f1": 0.5738810545677498 - }, - "charleroi-core-train": { - "true_positive": 228, - "false_positive": 87, - "false_negative": 298, - "precision": 0.7238095238095238, - "recall": 0.43346007604562736, - "f1": 0.5422116527942925 - }, - "eupen-train": { - "true_positive": 314, - "false_positive": 200, - "false_negative": 170, - "precision": 0.6108949416342413, - "recall": 0.6487603305785123, - "f1": 0.6292585170340682 - }, - "genk-industry-train": { - "true_positive": 103, - "false_positive": 122, - "false_negative": 235, - "precision": 0.4577777777777778, - "recall": 0.3047337278106509, - "f1": 0.36589698046181174 - }, - "ixelles-dense-train": { - "true_positive": 556, - "false_positive": 141, - "false_negative": 462, - "precision": 0.7977044476327116, - "recall": 0.5461689587426326, - "f1": 0.6483965014577259 - }, - "lokeren-ribbon-train": { - "true_positive": 243, - "false_positive": 241, - "false_negative": 383, - "precision": 0.5020661157024794, - "recall": 0.38817891373801916, - "f1": 0.43783783783783786 - }, - "ostend-coastal-train": { - "true_positive": 22, - "false_positive": 72, - "false_negative": 24, - "precision": 0.23404255319148937, - "recall": 0.4782608695652174, - "f1": 0.3142857142857143 - }, - "uccle-residential-train": { - "true_positive": 195, - "false_positive": 105, - "false_negative": 153, - "precision": 0.65, - "recall": 0.5603448275862069, - "f1": 0.6018518518518519 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.045, - "aggregate": { - "true_positive": 2363, - "false_positive": 1173, - "false_negative": 2441, - "precision": 0.6682692307692307, - "recall": 0.4918817651956703, - "f1": 0.5666666666666667 - }, - "regions": { - "brussels": { - "true_positive": 1039, - "false_positive": 336, - "false_negative": 809, - "precision": 0.7556363636363637, - "recall": 0.5622294372294372, - "f1": 0.6447409246044058 - }, - "flanders": { - "true_positive": 332, - "false_positive": 353, - "false_negative": 678, - "precision": 0.4846715328467153, - "recall": 0.3287128712871287, - "f1": 0.391740412979351 - }, - "wallonia": { - "true_positive": 992, - "false_positive": 484, - "false_negative": 954, - "precision": 0.6720867208672087, - "recall": 0.5097636176772867, - "f1": 0.5797779076563413 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 297, - "false_positive": 121, - "false_negative": 185, - "precision": 0.7105263157894737, - "recall": 0.6161825726141079, - "f1": 0.66 - }, - "ath-rural-train": { - "true_positive": 463, - "false_positive": 215, - "false_negative": 473, - "precision": 0.6828908554572272, - "recall": 0.4946581196581197, - "f1": 0.573729863692689 - }, - "charleroi-core-train": { - "true_positive": 222, - "false_positive": 79, - "false_negative": 304, - "precision": 0.7375415282392026, - "recall": 0.4220532319391635, - "f1": 0.5368802902055623 - }, - "eupen-train": { - "true_positive": 307, - "false_positive": 190, - "false_negative": 177, - "precision": 0.6177062374245473, - "recall": 0.6342975206611571, - "f1": 0.6258919469928644 - }, - "genk-industry-train": { - "true_positive": 96, - "false_positive": 103, - "false_negative": 242, - "precision": 0.4824120603015075, - "recall": 0.28402366863905326, - "f1": 0.35754189944134074 - }, - "ixelles-dense-train": { - "true_positive": 548, - "false_positive": 120, - "false_negative": 470, - "precision": 0.8203592814371258, - "recall": 0.5383104125736738, - "f1": 0.6500593119810202 - }, - "lokeren-ribbon-train": { - "true_positive": 215, - "false_positive": 194, - "false_negative": 411, - "precision": 0.5256723716381418, - "recall": 0.34345047923322686, - "f1": 0.4154589371980677 - }, - "ostend-coastal-train": { - "true_positive": 21, - "false_positive": 56, - "false_negative": 25, - "precision": 0.2727272727272727, - "recall": 0.45652173913043476, - "f1": 0.3414634146341463 - }, - "uccle-residential-train": { - "true_positive": 194, - "false_positive": 95, - "false_negative": 154, - "precision": 0.671280276816609, - "recall": 0.5574712643678161, - "f1": 0.609105180533752 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.05, - "aggregate": { - "true_positive": 2274, - "false_positive": 1046, - "false_negative": 2530, - "precision": 0.6849397590361446, - "recall": 0.4733555370524563, - "f1": 0.5598227474150665 - }, - "regions": { - "brussels": { - "true_positive": 1029, - "false_positive": 300, - "false_negative": 819, - "precision": 0.7742663656884876, - "recall": 0.5568181818181818, - "f1": 0.6477809254013219 - }, - "flanders": { - "true_positive": 270, - "false_positive": 290, - "false_negative": 740, - "precision": 0.48214285714285715, - "recall": 0.26732673267326734, - "f1": 0.3439490445859873 - }, - "wallonia": { - "true_positive": 975, - "false_positive": 456, - "false_negative": 971, - "precision": 0.6813417190775681, - "recall": 0.501027749229188, - "f1": 0.5774355937222386 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 294, - "false_positive": 112, - "false_negative": 188, - "precision": 0.7241379310344828, - "recall": 0.6099585062240664, - "f1": 0.6621621621621623 - }, - "ath-rural-train": { - "true_positive": 457, - "false_positive": 201, - "false_negative": 479, - "precision": 0.6945288753799392, - "recall": 0.48824786324786323, - "f1": 0.5734002509410289 - }, - "charleroi-core-train": { - "true_positive": 214, - "false_positive": 74, - "false_negative": 312, - "precision": 0.7430555555555556, - "recall": 0.4068441064638783, - "f1": 0.5257985257985257 - }, - "eupen-train": { - "true_positive": 304, - "false_positive": 181, - "false_negative": 180, - "precision": 0.6268041237113402, - "recall": 0.628099173553719, - "f1": 0.6274509803921569 - }, - "genk-industry-train": { - "true_positive": 82, - "false_positive": 92, - "false_negative": 256, - "precision": 0.47126436781609193, - "recall": 0.24260355029585798, - "f1": 0.3203125 - }, - "ixelles-dense-train": { - "true_positive": 543, - "false_positive": 100, - "false_negative": 475, - "precision": 0.8444790046656299, - "recall": 0.5333988212180747, - "f1": 0.6538229981938591 - }, - "lokeren-ribbon-train": { - "true_positive": 169, - "false_positive": 153, - "false_negative": 457, - "precision": 0.5248447204968945, - "recall": 0.26996805111821087, - "f1": 0.3565400843881857 - }, - "ostend-coastal-train": { - "true_positive": 19, - "false_positive": 45, - "false_negative": 27, - "precision": 0.296875, - "recall": 0.41304347826086957, - "f1": 0.3454545454545454 - }, - "uccle-residential-train": { - "true_positive": 192, - "false_positive": 88, - "false_negative": 156, - "precision": 0.6857142857142857, - "recall": 0.5517241379310345, - "f1": 0.6114649681528662 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.06, - "aggregate": { - "true_positive": 2181, - "false_positive": 866, - "false_negative": 2623, - "precision": 0.7157860190351165, - "recall": 0.4539966694421316, - "f1": 0.5555980129919755 - }, - "regions": { - "brussels": { - "true_positive": 1004, - "false_positive": 248, - "false_negative": 844, - "precision": 0.8019169329073482, - "recall": 0.5432900432900433, - "f1": 0.6477419354838709 - }, - "flanders": { - "true_positive": 219, - "false_positive": 202, - "false_negative": 791, - "precision": 0.5201900237529691, - "recall": 0.21683168316831683, - "f1": 0.3060796645702306 - }, - "wallonia": { - "true_positive": 958, - "false_positive": 416, - "false_negative": 988, - "precision": 0.6972343522561864, - "recall": 0.49229188078108943, - "f1": 0.5771084337349398 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 287, - "false_positive": 99, - "false_negative": 195, - "precision": 0.7435233160621761, - "recall": 0.5954356846473029, - "f1": 0.6612903225806451 - }, - "ath-rural-train": { - "true_positive": 452, - "false_positive": 184, - "false_negative": 484, - "precision": 0.710691823899371, - "recall": 0.4829059829059829, - "f1": 0.5750636132315522 - }, - "charleroi-core-train": { - "true_positive": 206, - "false_positive": 60, - "false_negative": 320, - "precision": 0.7744360902255639, - "recall": 0.3916349809885932, - "f1": 0.5202020202020202 - }, - "eupen-train": { - "true_positive": 300, - "false_positive": 172, - "false_negative": 184, - "precision": 0.635593220338983, - "recall": 0.6198347107438017, - "f1": 0.6276150627615062 - }, - "genk-industry-train": { - "true_positive": 70, - "false_positive": 64, - "false_negative": 268, - "precision": 0.5223880597014925, - "recall": 0.20710059171597633, - "f1": 0.2966101694915254 - }, - "ixelles-dense-train": { - "true_positive": 525, - "false_positive": 80, - "false_negative": 493, - "precision": 0.8677685950413223, - "recall": 0.5157170923379175, - "f1": 0.6469500924214417 - }, - "lokeren-ribbon-train": { - "true_positive": 133, - "false_positive": 104, - "false_negative": 493, - "precision": 0.5611814345991561, - "recall": 0.2124600638977636, - "f1": 0.3082271147161066 - }, - "ostend-coastal-train": { - "true_positive": 16, - "false_positive": 34, - "false_negative": 30, - "precision": 0.32, - "recall": 0.34782608695652173, - "f1": 0.3333333333333333 - }, - "uccle-residential-train": { - "true_positive": 192, - "false_positive": 69, - "false_negative": 156, - "precision": 0.735632183908046, - "recall": 0.5517241379310345, - "f1": 0.6305418719211823 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.075, - "aggregate": { - "true_positive": 2020, - "false_positive": 686, - "false_negative": 2784, - "precision": 0.7464892830746489, - "recall": 0.42048293089092426, - "f1": 0.5379494007989348 - }, - "regions": { - "brussels": { - "true_positive": 967, - "false_positive": 199, - "false_negative": 881, - "precision": 0.8293310463121784, - "recall": 0.5232683982683982, - "f1": 0.6416721964167219 - }, - "flanders": { - "true_positive": 141, - "false_positive": 125, - "false_negative": 869, - "precision": 0.5300751879699248, - "recall": 0.13960396039603962, - "f1": 0.22100313479623826 - }, - "wallonia": { - "true_positive": 912, - "false_positive": 362, - "false_negative": 1034, - "precision": 0.7158555729984302, - "recall": 0.4686536485097636, - "f1": 0.5664596273291925 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 281, - "false_positive": 82, - "false_negative": 201, - "precision": 0.7741046831955923, - "recall": 0.58298755186722, - "f1": 0.6650887573964497 - }, - "ath-rural-train": { - "true_positive": 433, - "false_positive": 159, - "false_negative": 503, - "precision": 0.731418918918919, - "recall": 0.46260683760683763, - "f1": 0.5667539267015708 - }, - "charleroi-core-train": { - "true_positive": 192, - "false_positive": 50, - "false_negative": 334, - "precision": 0.7933884297520661, - "recall": 0.3650190114068441, - "f1": 0.5 - }, - "eupen-train": { - "true_positive": 287, - "false_positive": 153, - "false_negative": 197, - "precision": 0.6522727272727272, - "recall": 0.5929752066115702, - "f1": 0.6212121212121212 - }, - "genk-industry-train": { - "true_positive": 52, - "false_positive": 44, - "false_negative": 286, - "precision": 0.5416666666666666, - "recall": 0.15384615384615385, - "f1": 0.23963133640552994 - }, - "ixelles-dense-train": { - "true_positive": 497, - "false_positive": 62, - "false_negative": 521, - "precision": 0.889087656529517, - "recall": 0.48821218074656186, - "f1": 0.6303107165504122 - }, - "lokeren-ribbon-train": { - "true_positive": 76, - "false_positive": 62, - "false_negative": 550, - "precision": 0.5507246376811594, - "recall": 0.12140575079872204, - "f1": 0.1989528795811518 - }, - "ostend-coastal-train": { - "true_positive": 13, - "false_positive": 19, - "false_negative": 33, - "precision": 0.40625, - "recall": 0.2826086956521739, - "f1": 0.33333333333333337 - }, - "uccle-residential-train": { - "true_positive": 189, - "false_positive": 55, - "false_negative": 159, - "precision": 0.7745901639344263, - "recall": 0.5431034482758621, - "f1": 0.6385135135135135 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.1, - "aggregate": { - "true_positive": 1824, - "false_positive": 513, - "false_negative": 2980, - "precision": 0.7804878048780488, - "recall": 0.37968359700249793, - "f1": 0.5108528217336508 - }, - "regions": { - "brussels": { - "true_positive": 909, - "false_positive": 138, - "false_negative": 939, - "precision": 0.8681948424068768, - "recall": 0.49188311688311687, - "f1": 0.627979274611399 - }, - "flanders": { - "true_positive": 69, - "false_positive": 64, - "false_negative": 941, - "precision": 0.518796992481203, - "recall": 0.06831683168316832, - "f1": 0.12073490813648295 - }, - "wallonia": { - "true_positive": 846, - "false_positive": 311, - "false_negative": 1100, - "precision": 0.7312013828867762, - "recall": 0.434737923946557, - "f1": 0.545278762487915 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 263, - "false_positive": 55, - "false_negative": 219, - "precision": 0.8270440251572327, - "recall": 0.5456431535269709, - "f1": 0.6575 - }, - "ath-rural-train": { - "true_positive": 402, - "false_positive": 136, - "false_negative": 534, - "precision": 0.7472118959107806, - "recall": 0.42948717948717946, - "f1": 0.5454545454545454 - }, - "charleroi-core-train": { - "true_positive": 173, - "false_positive": 41, - "false_negative": 353, - "precision": 0.8084112149532711, - "recall": 0.3288973384030418, - "f1": 0.4675675675675676 - }, - "eupen-train": { - "true_positive": 271, - "false_positive": 134, - "false_negative": 213, - "precision": 0.6691358024691358, - "recall": 0.5599173553719008, - "f1": 0.6096737907761529 - }, - "genk-industry-train": { - "true_positive": 26, - "false_positive": 27, - "false_negative": 312, - "precision": 0.49056603773584906, - "recall": 0.07692307692307693, - "f1": 0.1329923273657289 - }, - "ixelles-dense-train": { - "true_positive": 465, - "false_positive": 46, - "false_negative": 553, - "precision": 0.9099804305283757, - "recall": 0.4567779960707269, - "f1": 0.6082406801831263 - }, - "lokeren-ribbon-train": { - "true_positive": 33, - "false_positive": 28, - "false_negative": 593, - "precision": 0.5409836065573771, - "recall": 0.052715654952076675, - "f1": 0.09606986899563319 - }, - "ostend-coastal-train": { - "true_positive": 10, - "false_positive": 9, - "false_negative": 36, - "precision": 0.5263157894736842, - "recall": 0.21739130434782608, - "f1": 0.3076923076923077 - }, - "uccle-residential-train": { - "true_positive": 181, - "false_positive": 37, - "false_negative": 167, - "precision": 0.8302752293577982, - "recall": 0.5201149425287356, - "f1": 0.6395759717314486 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.125, - "aggregate": { - "true_positive": 1688, - "false_positive": 397, - "false_negative": 3116, - "precision": 0.8095923261390887, - "recall": 0.3513738551207327, - "f1": 0.4900566119901291 - }, - "regions": { - "brussels": { - "true_positive": 861, - "false_positive": 104, - "false_negative": 987, - "precision": 0.8922279792746114, - "recall": 0.4659090909090909, - "f1": 0.6121578386064699 - }, - "flanders": { - "true_positive": 35, - "false_positive": 37, - "false_negative": 975, - "precision": 0.4861111111111111, - "recall": 0.034653465346534656, - "f1": 0.06469500924214419 - }, - "wallonia": { - "true_positive": 792, - "false_positive": 256, - "false_negative": 1154, - "precision": 0.7557251908396947, - "recall": 0.40698869475847893, - "f1": 0.529058116232465 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 244, - "false_positive": 39, - "false_negative": 238, - "precision": 0.8621908127208481, - "recall": 0.5062240663900415, - "f1": 0.6379084967320262 - }, - "ath-rural-train": { - "true_positive": 380, - "false_positive": 110, - "false_negative": 556, - "precision": 0.7755102040816326, - "recall": 0.405982905982906, - "f1": 0.5329593267882188 - }, - "charleroi-core-train": { - "true_positive": 153, - "false_positive": 28, - "false_negative": 373, - "precision": 0.8453038674033149, - "recall": 0.2908745247148289, - "f1": 0.4328147100424327 - }, - "eupen-train": { - "true_positive": 259, - "false_positive": 118, - "false_negative": 225, - "precision": 0.6870026525198939, - "recall": 0.5351239669421488, - "f1": 0.6016260162601625 - }, - "genk-industry-train": { - "true_positive": 15, - "false_positive": 16, - "false_negative": 323, - "precision": 0.4838709677419355, - "recall": 0.04437869822485207, - "f1": 0.08130081300813008 - }, - "ixelles-dense-train": { - "true_positive": 444, - "false_positive": 35, - "false_negative": 574, - "precision": 0.9269311064718163, - "recall": 0.4361493123772102, - "f1": 0.5931863727454909 - }, - "lokeren-ribbon-train": { - "true_positive": 12, - "false_positive": 13, - "false_negative": 614, - "precision": 0.48, - "recall": 0.019169329073482427, - "f1": 0.0368663594470046 - }, - "ostend-coastal-train": { - "true_positive": 8, - "false_positive": 8, - "false_negative": 38, - "precision": 0.5, - "recall": 0.17391304347826086, - "f1": 0.25806451612903225 - }, - "uccle-residential-train": { - "true_positive": 173, - "false_positive": 30, - "false_negative": 175, - "precision": 0.8522167487684729, - "recall": 0.49712643678160917, - "f1": 0.6279491833030852 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.15, - "aggregate": { - "true_positive": 1574, - "false_positive": 318, - "false_negative": 3230, - "precision": 0.8319238900634249, - "recall": 0.3276436303080766, - "f1": 0.47013142174432504 - }, - "regions": { - "brussels": { - "true_positive": 803, - "false_positive": 81, - "false_negative": 1045, - "precision": 0.9083710407239819, - "recall": 0.43452380952380953, - "f1": 0.5878477306002927 - }, - "flanders": { - "true_positive": 22, - "false_positive": 22, - "false_negative": 988, - "precision": 0.5, - "recall": 0.02178217821782178, - "f1": 0.041745730550284625 - }, - "wallonia": { - "true_positive": 749, - "false_positive": 215, - "false_negative": 1197, - "precision": 0.7769709543568465, - "recall": 0.38489208633093525, - "f1": 0.5147766323024054 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 219, - "false_positive": 32, - "false_negative": 263, - "precision": 0.8725099601593626, - "recall": 0.45435684647302904, - "f1": 0.5975443383356072 - }, - "ath-rural-train": { - "true_positive": 364, - "false_positive": 90, - "false_negative": 572, - "precision": 0.801762114537445, - "recall": 0.3888888888888889, - "f1": 0.5237410071942447 - }, - "charleroi-core-train": { - "true_positive": 142, - "false_positive": 24, - "false_negative": 384, - "precision": 0.8554216867469879, - "recall": 0.26996197718631176, - "f1": 0.41040462427745666 - }, - "eupen-train": { - "true_positive": 243, - "false_positive": 101, - "false_negative": 241, - "precision": 0.7063953488372093, - "recall": 0.5020661157024794, - "f1": 0.5869565217391305 - }, - "genk-industry-train": { - "true_positive": 9, - "false_positive": 12, - "false_negative": 329, - "precision": 0.42857142857142855, - "recall": 0.026627218934911243, - "f1": 0.05013927576601671 - }, - "ixelles-dense-train": { - "true_positive": 420, - "false_positive": 22, - "false_negative": 598, - "precision": 0.9502262443438914, - "recall": 0.412573673870334, - "f1": 0.5753424657534246 - }, - "lokeren-ribbon-train": { - "true_positive": 6, - "false_positive": 6, - "false_negative": 620, - "precision": 0.5, - "recall": 0.009584664536741214, - "f1": 0.018808777429467082 - }, - "ostend-coastal-train": { - "true_positive": 7, - "false_positive": 4, - "false_negative": 39, - "precision": 0.6363636363636364, - "recall": 0.15217391304347827, - "f1": 0.2456140350877193 - }, - "uccle-residential-train": { - "true_positive": 164, - "false_positive": 27, - "false_negative": 184, - "precision": 0.8586387434554974, - "recall": 0.47126436781609193, - "f1": 0.608534322820037 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.2, - "aggregate": { - "true_positive": 1319, - "false_positive": 194, - "false_negative": 3485, - "precision": 0.8717779246530073, - "recall": 0.27456286427976684, - "f1": 0.41760329270223207 - }, - "regions": { - "brussels": { - "true_positive": 679, - "false_positive": 49, - "false_negative": 1169, - "precision": 0.9326923076923077, - "recall": 0.36742424242424243, - "f1": 0.5271739130434783 - }, - "flanders": { - "true_positive": 13, - "false_positive": 5, - "false_negative": 997, - "precision": 0.7222222222222222, - "recall": 0.01287128712871287, - "f1": 0.02529182879377432 - }, - "wallonia": { - "true_positive": 627, - "false_positive": 140, - "false_negative": 1319, - "precision": 0.817470664928292, - "recall": 0.3221993833504625, - "f1": 0.4622189458164394 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 161, - "false_positive": 16, - "false_negative": 321, - "precision": 0.9096045197740112, - "recall": 0.33402489626556015, - "f1": 0.48861911987860396 - }, - "ath-rural-train": { - "true_positive": 313, - "false_positive": 56, - "false_negative": 623, - "precision": 0.8482384823848238, - "recall": 0.3344017094017094, - "f1": 0.4796934865900383 - }, - "charleroi-core-train": { - "true_positive": 96, - "false_positive": 14, - "false_negative": 430, - "precision": 0.8727272727272727, - "recall": 0.18250950570342206, - "f1": 0.3018867924528302 - }, - "eupen-train": { - "true_positive": 218, - "false_positive": 70, - "false_negative": 266, - "precision": 0.7569444444444444, - "recall": 0.45041322314049587, - "f1": 0.5647668393782384 - }, - "genk-industry-train": { - "true_positive": 6, - "false_positive": 4, - "false_negative": 332, - "precision": 0.6, - "recall": 0.01775147928994083, - "f1": 0.034482758620689655 - }, - "ixelles-dense-train": { - "true_positive": 377, - "false_positive": 16, - "false_negative": 641, - "precision": 0.9592875318066157, - "recall": 0.3703339882121807, - "f1": 0.5343727852586818 - }, - "lokeren-ribbon-train": { - "true_positive": 2, - "false_positive": 0, - "false_negative": 624, - "precision": 1.0, - "recall": 0.003194888178913738, - "f1": 0.006369426751592357 - }, - "ostend-coastal-train": { - "true_positive": 5, - "false_positive": 1, - "false_negative": 41, - "precision": 0.8333333333333334, - "recall": 0.10869565217391304, - "f1": 0.1923076923076923 - }, - "uccle-residential-train": { - "true_positive": 141, - "false_positive": 17, - "false_negative": 207, - "precision": 0.8924050632911392, - "recall": 0.4051724137931034, - "f1": 0.5573122529644269 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.25, - "aggregate": { - "true_positive": 1044, - "false_positive": 125, - "false_negative": 3760, - "precision": 0.893071000855432, - "recall": 0.21731890091590342, - "f1": 0.34957307885484684 - }, - "regions": { - "brussels": { - "true_positive": 541, - "false_positive": 30, - "false_negative": 1307, - "precision": 0.9474605954465849, - "recall": 0.29274891774891776, - "f1": 0.44729226953286483 - }, - "flanders": { - "true_positive": 6, - "false_positive": 4, - "false_negative": 1004, - "precision": 0.6, - "recall": 0.005940594059405941, - "f1": 0.011764705882352941 - }, - "wallonia": { - "true_positive": 497, - "false_positive": 91, - "false_negative": 1449, - "precision": 0.8452380952380952, - "recall": 0.25539568345323743, - "f1": 0.3922651933701658 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 105, - "false_positive": 12, - "false_negative": 377, - "precision": 0.8974358974358975, - "recall": 0.21784232365145229, - "f1": 0.35058430717863104 - }, - "ath-rural-train": { - "true_positive": 242, - "false_positive": 37, - "false_negative": 694, - "precision": 0.8673835125448028, - "recall": 0.25854700854700857, - "f1": 0.3983539094650206 - }, - "charleroi-core-train": { - "true_positive": 64, - "false_positive": 5, - "false_negative": 462, - "precision": 0.927536231884058, - "recall": 0.12167300380228137, - "f1": 0.21512605042016808 - }, - "eupen-train": { - "true_positive": 191, - "false_positive": 49, - "false_negative": 293, - "precision": 0.7958333333333333, - "recall": 0.39462809917355374, - "f1": 0.5276243093922652 - }, - "genk-industry-train": { - "true_positive": 3, - "false_positive": 3, - "false_negative": 335, - "precision": 0.5, - "recall": 0.008875739644970414, - "f1": 0.01744186046511628 - }, - "ixelles-dense-train": { - "true_positive": 316, - "false_positive": 9, - "false_negative": 702, - "precision": 0.9723076923076923, - "recall": 0.3104125736738703, - "f1": 0.4705882352941176 - }, - "lokeren-ribbon-train": { - "true_positive": 0, - "false_positive": 0, - "false_negative": 626, - "precision": 1.0, - "recall": 0.0, - "f1": 0.0 - }, - "ostend-coastal-train": { - "true_positive": 3, - "false_positive": 1, - "false_negative": 43, - "precision": 0.75, - "recall": 0.06521739130434782, - "f1": 0.12 - }, - "uccle-residential-train": { - "true_positive": 120, - "false_positive": 9, - "false_negative": 228, - "precision": 0.9302325581395349, - "recall": 0.3448275862068966, - "f1": 0.5031446540880503 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.3, - "aggregate": { - "true_positive": 767, - "false_positive": 76, - "false_negative": 4037, - "precision": 0.9098457888493475, - "recall": 0.1596586178184846, - "f1": 0.2716486630069063 - }, - "regions": { - "brussels": { - "true_positive": 401, - "false_positive": 18, - "false_negative": 1447, - "precision": 0.9570405727923628, - "recall": 0.21699134199134198, - "f1": 0.3537715041905602 - }, - "flanders": { - "true_positive": 4, - "false_positive": 3, - "false_negative": 1006, - "precision": 0.5714285714285714, - "recall": 0.0039603960396039604, - "f1": 0.007866273352999017 - }, - "wallonia": { - "true_positive": 362, - "false_positive": 55, - "false_negative": 1584, - "precision": 0.86810551558753, - "recall": 0.18602261048304214, - "f1": 0.3063901819720694 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 68, - "false_positive": 7, - "false_negative": 414, - "precision": 0.9066666666666666, - "recall": 0.14107883817427386, - "f1": 0.24416517055655293 - }, - "ath-rural-train": { - "true_positive": 177, - "false_positive": 19, - "false_negative": 759, - "precision": 0.9030612244897959, - "recall": 0.1891025641025641, - "f1": 0.31272084805653705 - }, - "charleroi-core-train": { - "true_positive": 35, - "false_positive": 2, - "false_negative": 491, - "precision": 0.9459459459459459, - "recall": 0.06653992395437262, - "f1": 0.12433392539964475 - }, - "eupen-train": { - "true_positive": 150, - "false_positive": 34, - "false_negative": 334, - "precision": 0.8152173913043478, - "recall": 0.30991735537190085, - "f1": 0.4491017964071856 - }, - "genk-industry-train": { - "true_positive": 2, - "false_positive": 2, - "false_negative": 336, - "precision": 0.5, - "recall": 0.005917159763313609, - "f1": 0.011695906432748537 - }, - "ixelles-dense-train": { - "true_positive": 238, - "false_positive": 4, - "false_negative": 780, - "precision": 0.9834710743801653, - "recall": 0.2337917485265226, - "f1": 0.3777777777777778 - }, - "lokeren-ribbon-train": { - "true_positive": 0, - "false_positive": 0, - "false_negative": 626, - "precision": 1.0, - "recall": 0.0, - "f1": 0.0 - }, - "ostend-coastal-train": { - "true_positive": 2, - "false_positive": 1, - "false_negative": 44, - "precision": 0.6666666666666666, - "recall": 0.043478260869565216, - "f1": 0.08163265306122448 - }, - "uccle-residential-train": { - "true_positive": 95, - "false_positive": 7, - "false_negative": 253, - "precision": 0.9313725490196079, - "recall": 0.27298850574712646, - "f1": 0.4222222222222222 - } - }, - "pure_empty_false_positives": 0 - } - ] -} \ No newline at end of file diff --git a/.codex-input/v33-nms020.json b/.codex-input/v33-nms020.json deleted file mode 100644 index 22221380..00000000 --- a/.codex-input/v33-nms020.json +++ /dev/null @@ -1,1929 +0,0 @@ -{ - "schema_version": 1, - "model": "/app/storage/training/building-be-v33-yolo11l-rotation-regularized-r1/iteration-001/candidate.pt", - "summary": "/app/storage/operator-data/building-be-v30-rotated-holdouts-r1/calibration/yolo_tile_dataset_summary.json", - "split": "val", - "match_iou": 0.25, - "test_time_augmentation": false, - "inference_imgsz": 640, - "max_detections_per_tile": 1000, - "nms_iou": 0.2, - "containment_nms": 0.9, - "box_scale": 1.0, - "box_offset_x": 0.0, - "box_offset_y": 0.0, - "additional_model": null, - "ensemble_mode": null, - "ensemble_match_iou": null, - "proposal_classifier": null, - "proposal_classifier_threshold": null, - "proposal_crop_scale": null, - "proposal_classifier_batch": null, - "tile_count": 144, - "sweeps": [ - { - "threshold": 0.01, - "aggregate": { - "true_positive": 2758, - "false_positive": 2983, - "false_negative": 2046, - "precision": 0.4804041107820937, - "recall": 0.574104912572856, - "f1": 0.5230915125651968 - }, - "regions": { - "brussels": { - "true_positive": 1070, - "false_positive": 1102, - "false_negative": 778, - "precision": 0.49263351749539597, - "recall": 0.579004329004329, - "f1": 0.5323383084577114 - }, - "flanders": { - "true_positive": 492, - "false_positive": 730, - "false_negative": 518, - "precision": 0.4026186579378069, - "recall": 0.4871287128712871, - "f1": 0.4408602150537635 - }, - "wallonia": { - "true_positive": 1196, - "false_positive": 1151, - "false_negative": 750, - "precision": 0.5095867064337452, - "recall": 0.6145940390544707, - "f1": 0.5571861169345446 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 334, - "false_positive": 389, - "false_negative": 148, - "precision": 0.46196403872752423, - "recall": 0.6929460580912863, - "f1": 0.5543568464730291 - }, - "ath-rural-train": { - "true_positive": 571, - "false_positive": 476, - "false_negative": 365, - "precision": 0.545367717287488, - "recall": 0.6100427350427351, - "f1": 0.5758951084215834 - }, - "charleroi-core-train": { - "true_positive": 305, - "false_positive": 281, - "false_negative": 221, - "precision": 0.5204778156996587, - "recall": 0.5798479087452472, - "f1": 0.5485611510791367 - }, - "eupen-train": { - "true_positive": 320, - "false_positive": 394, - "false_negative": 164, - "precision": 0.4481792717086835, - "recall": 0.6611570247933884, - "f1": 0.5342237061769617 - }, - "genk-industry-train": { - "true_positive": 107, - "false_positive": 133, - "false_negative": 231, - "precision": 0.44583333333333336, - "recall": 0.3165680473372781, - "f1": 0.370242214532872 - }, - "ixelles-dense-train": { - "true_positive": 526, - "false_positive": 366, - "false_negative": 492, - "precision": 0.5896860986547086, - "recall": 0.5166994106090373, - "f1": 0.5507853403141363 - }, - "lokeren-ribbon-train": { - "true_positive": 369, - "false_positive": 476, - "false_negative": 257, - "precision": 0.4366863905325444, - "recall": 0.5894568690095847, - "f1": 0.5016995241332427 - }, - "ostend-coastal-train": { - "true_positive": 16, - "false_positive": 121, - "false_negative": 30, - "precision": 0.11678832116788321, - "recall": 0.34782608695652173, - "f1": 0.17486338797814208 - }, - "uccle-residential-train": { - "true_positive": 210, - "false_positive": 347, - "false_negative": 138, - "precision": 0.3770197486535009, - "recall": 0.603448275862069, - "f1": 0.46408839779005523 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.015, - "aggregate": { - "true_positive": 2660, - "false_positive": 2226, - "false_negative": 2144, - "precision": 0.5444126074498568, - "recall": 0.5537052456286428, - "f1": 0.5490196078431372 - }, - "regions": { - "brussels": { - "true_positive": 1040, - "false_positive": 765, - "false_negative": 808, - "precision": 0.5761772853185596, - "recall": 0.5627705627705628, - "f1": 0.5693950177935944 - }, - "flanders": { - "true_positive": 444, - "false_positive": 520, - "false_negative": 566, - "precision": 0.4605809128630705, - "recall": 0.4396039603960396, - "f1": 0.44984802431610943 - }, - "wallonia": { - "true_positive": 1176, - "false_positive": 941, - "false_negative": 770, - "precision": 0.5555030703826169, - "recall": 0.60431654676259, - "f1": 0.5788825990647305 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 324, - "false_positive": 274, - "false_negative": 158, - "precision": 0.5418060200668896, - "recall": 0.6721991701244814, - "f1": 0.6000000000000001 - }, - "ath-rural-train": { - "true_positive": 562, - "false_positive": 398, - "false_negative": 374, - "precision": 0.5854166666666667, - "recall": 0.6004273504273504, - "f1": 0.5928270042194093 - }, - "charleroi-core-train": { - "true_positive": 299, - "false_positive": 216, - "false_negative": 227, - "precision": 0.5805825242718446, - "recall": 0.5684410646387833, - "f1": 0.574447646493756 - }, - "eupen-train": { - "true_positive": 315, - "false_positive": 327, - "false_negative": 169, - "precision": 0.49065420560747663, - "recall": 0.6508264462809917, - "f1": 0.5595026642984015 - }, - "genk-industry-train": { - "true_positive": 96, - "false_positive": 104, - "false_negative": 242, - "precision": 0.48, - "recall": 0.28402366863905326, - "f1": 0.35687732342007433 - }, - "ixelles-dense-train": { - "true_positive": 513, - "false_positive": 262, - "false_negative": 505, - "precision": 0.6619354838709678, - "recall": 0.5039292730844793, - "f1": 0.5722253206915783 - }, - "lokeren-ribbon-train": { - "true_positive": 332, - "false_positive": 341, - "false_negative": 294, - "precision": 0.4933135215453195, - "recall": 0.5303514376996805, - "f1": 0.5111624326404927 - }, - "ostend-coastal-train": { - "true_positive": 16, - "false_positive": 75, - "false_negative": 30, - "precision": 0.17582417582417584, - "recall": 0.34782608695652173, - "f1": 0.23357664233576642 - }, - "uccle-residential-train": { - "true_positive": 203, - "false_positive": 229, - "false_negative": 145, - "precision": 0.4699074074074074, - "recall": 0.5833333333333334, - "f1": 0.5205128205128206 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.02, - "aggregate": { - "true_positive": 2593, - "false_positive": 1865, - "false_negative": 2211, - "precision": 0.5816509645580978, - "recall": 0.5397585345545379, - "f1": 0.559922263010149 - }, - "regions": { - "brussels": { - "true_positive": 1025, - "false_positive": 605, - "false_negative": 823, - "precision": 0.6288343558282209, - "recall": 0.5546536796536796, - "f1": 0.589419206440483 - }, - "flanders": { - "true_positive": 411, - "false_positive": 423, - "false_negative": 599, - "precision": 0.49280575539568344, - "recall": 0.4069306930693069, - "f1": 0.4457700650759219 - }, - "wallonia": { - "true_positive": 1157, - "false_positive": 837, - "false_negative": 789, - "precision": 0.5802407221664995, - "recall": 0.5945529290853032, - "f1": 0.5873096446700508 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 318, - "false_positive": 213, - "false_negative": 164, - "precision": 0.5988700564971752, - "recall": 0.6597510373443983, - "f1": 0.6278381046396841 - }, - "ath-rural-train": { - "true_positive": 553, - "false_positive": 353, - "false_negative": 383, - "precision": 0.6103752759381899, - "recall": 0.5908119658119658, - "f1": 0.6004343105320303 - }, - "charleroi-core-train": { - "true_positive": 292, - "false_positive": 189, - "false_negative": 234, - "precision": 0.6070686070686071, - "recall": 0.5551330798479087, - "f1": 0.579940417080437 - }, - "eupen-train": { - "true_positive": 312, - "false_positive": 295, - "false_negative": 172, - "precision": 0.514003294892916, - "recall": 0.6446280991735537, - "f1": 0.5719523373052245 - }, - "genk-industry-train": { - "true_positive": 89, - "false_positive": 91, - "false_negative": 249, - "precision": 0.49444444444444446, - "recall": 0.26331360946745563, - "f1": 0.34362934362934366 - }, - "ixelles-dense-train": { - "true_positive": 507, - "false_positive": 211, - "false_negative": 511, - "precision": 0.7061281337047354, - "recall": 0.49803536345776034, - "f1": 0.5841013824884793 - }, - "lokeren-ribbon-train": { - "true_positive": 306, - "false_positive": 275, - "false_negative": 320, - "precision": 0.5266781411359724, - "recall": 0.48881789137380194, - "f1": 0.5070422535211268 - }, - "ostend-coastal-train": { - "true_positive": 16, - "false_positive": 57, - "false_negative": 30, - "precision": 0.2191780821917808, - "recall": 0.34782608695652173, - "f1": 0.2689075630252101 - }, - "uccle-residential-train": { - "true_positive": 200, - "false_positive": 181, - "false_negative": 148, - "precision": 0.5249343832020997, - "recall": 0.5747126436781609, - "f1": 0.5486968449931412 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.025, - "aggregate": { - "true_positive": 2529, - "false_positive": 1596, - "false_negative": 2275, - "precision": 0.6130909090909091, - "recall": 0.526436303080766, - "f1": 0.5664688094971443 - }, - "regions": { - "brussels": { - "true_positive": 1002, - "false_positive": 498, - "false_negative": 846, - "precision": 0.668, - "recall": 0.5422077922077922, - "f1": 0.5985663082437276 - }, - "flanders": { - "true_positive": 389, - "false_positive": 347, - "false_negative": 621, - "precision": 0.5285326086956522, - "recall": 0.38514851485148516, - "f1": 0.44558991981672397 - }, - "wallonia": { - "true_positive": 1138, - "false_positive": 751, - "false_negative": 808, - "precision": 0.602435150873478, - "recall": 0.5847893114080165, - "f1": 0.5934810951760104 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 307, - "false_positive": 182, - "false_negative": 175, - "precision": 0.6278118609406953, - "recall": 0.6369294605809128, - "f1": 0.6323377960865088 - }, - "ath-rural-train": { - "true_positive": 542, - "false_positive": 318, - "false_negative": 394, - "precision": 0.6302325581395349, - "recall": 0.5790598290598291, - "f1": 0.6035634743875279 - }, - "charleroi-core-train": { - "true_positive": 285, - "false_positive": 161, - "false_negative": 241, - "precision": 0.6390134529147982, - "recall": 0.5418250950570342, - "f1": 0.5864197530864197 - }, - "eupen-train": { - "true_positive": 311, - "false_positive": 272, - "false_negative": 173, - "precision": 0.5334476843910806, - "recall": 0.6425619834710744, - "f1": 0.5829428303655108 - }, - "genk-industry-train": { - "true_positive": 84, - "false_positive": 72, - "false_negative": 254, - "precision": 0.5384615384615384, - "recall": 0.2485207100591716, - "f1": 0.34008097165991896 - }, - "ixelles-dense-train": { - "true_positive": 497, - "false_positive": 180, - "false_negative": 521, - "precision": 0.7341211225997046, - "recall": 0.48821218074656186, - "f1": 0.5864306784660768 - }, - "lokeren-ribbon-train": { - "true_positive": 289, - "false_positive": 227, - "false_negative": 337, - "precision": 0.560077519379845, - "recall": 0.46166134185303515, - "f1": 0.5061295971978984 - }, - "ostend-coastal-train": { - "true_positive": 16, - "false_positive": 48, - "false_negative": 30, - "precision": 0.25, - "recall": 0.34782608695652173, - "f1": 0.2909090909090909 - }, - "uccle-residential-train": { - "true_positive": 198, - "false_positive": 136, - "false_negative": 150, - "precision": 0.592814371257485, - "recall": 0.5689655172413793, - "f1": 0.5806451612903225 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.03, - "aggregate": { - "true_positive": 2462, - "false_positive": 1402, - "false_negative": 2342, - "precision": 0.6371635610766045, - "recall": 0.5124895920066611, - "f1": 0.5680664513151823 - }, - "regions": { - "brussels": { - "true_positive": 986, - "false_positive": 427, - "false_negative": 862, - "precision": 0.6978060863411182, - "recall": 0.5335497835497836, - "f1": 0.6047224777675559 - }, - "flanders": { - "true_positive": 361, - "false_positive": 299, - "false_negative": 649, - "precision": 0.546969696969697, - "recall": 0.3574257425742574, - "f1": 0.43233532934131735 - }, - "wallonia": { - "true_positive": 1115, - "false_positive": 676, - "false_negative": 831, - "precision": 0.6225572305974316, - "recall": 0.5729701952723536, - "f1": 0.5967353492105968 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 304, - "false_positive": 159, - "false_negative": 178, - "precision": 0.6565874730021598, - "recall": 0.6307053941908713, - "f1": 0.6433862433862434 - }, - "ath-rural-train": { - "true_positive": 533, - "false_positive": 281, - "false_negative": 403, - "precision": 0.6547911547911548, - "recall": 0.5694444444444444, - "f1": 0.6091428571428571 - }, - "charleroi-core-train": { - "true_positive": 275, - "false_positive": 149, - "false_negative": 251, - "precision": 0.6485849056603774, - "recall": 0.5228136882129277, - "f1": 0.5789473684210527 - }, - "eupen-train": { - "true_positive": 307, - "false_positive": 246, - "false_negative": 177, - "precision": 0.5551537070524413, - "recall": 0.6342975206611571, - "f1": 0.592092574734812 - }, - "genk-industry-train": { - "true_positive": 78, - "false_positive": 60, - "false_negative": 260, - "precision": 0.5652173913043478, - "recall": 0.23076923076923078, - "f1": 0.3277310924369748 - }, - "ixelles-dense-train": { - "true_positive": 486, - "false_positive": 156, - "false_negative": 532, - "precision": 0.7570093457943925, - "recall": 0.4774066797642436, - "f1": 0.5855421686746988 - }, - "lokeren-ribbon-train": { - "true_positive": 268, - "false_positive": 201, - "false_negative": 358, - "precision": 0.5714285714285714, - "recall": 0.4281150159744409, - "f1": 0.4894977168949772 - }, - "ostend-coastal-train": { - "true_positive": 15, - "false_positive": 38, - "false_negative": 31, - "precision": 0.2830188679245283, - "recall": 0.32608695652173914, - "f1": 0.30303030303030304 - }, - "uccle-residential-train": { - "true_positive": 196, - "false_positive": 112, - "false_negative": 152, - "precision": 0.6363636363636364, - "recall": 0.5632183908045977, - "f1": 0.5975609756097561 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.035, - "aggregate": { - "true_positive": 2405, - "false_positive": 1255, - "false_negative": 2399, - "precision": 0.657103825136612, - "recall": 0.5006244796003331, - "f1": 0.568289224952741 - }, - "regions": { - "brussels": { - "true_positive": 971, - "false_positive": 368, - "false_negative": 877, - "precision": 0.7251680358476476, - "recall": 0.5254329004329005, - "f1": 0.6093504863508001 - }, - "flanders": { - "true_positive": 332, - "false_positive": 262, - "false_negative": 678, - "precision": 0.5589225589225589, - "recall": 0.3287128712871287, - "f1": 0.4139650872817956 - }, - "wallonia": { - "true_positive": 1102, - "false_positive": 625, - "false_negative": 844, - "precision": 0.6381007527504343, - "recall": 0.566289825282631, - "f1": 0.6000544514021235 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 296, - "false_positive": 139, - "false_negative": 186, - "precision": 0.6804597701149425, - "recall": 0.6141078838174274, - "f1": 0.6455834242093784 - }, - "ath-rural-train": { - "true_positive": 529, - "false_positive": 262, - "false_negative": 407, - "precision": 0.6687737041719343, - "recall": 0.5651709401709402, - "f1": 0.6126230457440649 - }, - "charleroi-core-train": { - "true_positive": 269, - "false_positive": 131, - "false_negative": 257, - "precision": 0.6725, - "recall": 0.5114068441064639, - "f1": 0.5809935205183585 - }, - "eupen-train": { - "true_positive": 304, - "false_positive": 232, - "false_negative": 180, - "precision": 0.5671641791044776, - "recall": 0.628099173553719, - "f1": 0.596078431372549 - }, - "genk-industry-train": { - "true_positive": 72, - "false_positive": 48, - "false_negative": 266, - "precision": 0.6, - "recall": 0.21301775147928995, - "f1": 0.314410480349345 - }, - "ixelles-dense-train": { - "true_positive": 481, - "false_positive": 136, - "false_negative": 537, - "precision": 0.779578606158833, - "recall": 0.4724950884086444, - "f1": 0.5883792048929662 - }, - "lokeren-ribbon-train": { - "true_positive": 246, - "false_positive": 180, - "false_negative": 380, - "precision": 0.5774647887323944, - "recall": 0.3929712460063898, - "f1": 0.467680608365019 - }, - "ostend-coastal-train": { - "true_positive": 14, - "false_positive": 34, - "false_negative": 32, - "precision": 0.2916666666666667, - "recall": 0.30434782608695654, - "f1": 0.2978723404255319 - }, - "uccle-residential-train": { - "true_positive": 194, - "false_positive": 93, - "false_negative": 154, - "precision": 0.6759581881533101, - "recall": 0.5574712643678161, - "f1": 0.6110236220472441 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.04, - "aggregate": { - "true_positive": 2354, - "false_positive": 1119, - "false_negative": 2450, - "precision": 0.6778001727613014, - "recall": 0.4900083263946711, - "f1": 0.5688051226289719 - }, - "regions": { - "brussels": { - "true_positive": 958, - "false_positive": 315, - "false_negative": 890, - "precision": 0.7525530243519246, - "recall": 0.5183982683982684, - "f1": 0.6139057994232617 - }, - "flanders": { - "true_positive": 313, - "false_positive": 235, - "false_negative": 697, - "precision": 0.5711678832116789, - "recall": 0.3099009900990099, - "f1": 0.4017971758664955 - }, - "wallonia": { - "true_positive": 1083, - "false_positive": 569, - "false_negative": 863, - "precision": 0.6555690072639225, - "recall": 0.5565262076053443, - "f1": 0.6020011117287382 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 292, - "false_positive": 121, - "false_negative": 190, - "precision": 0.7070217917675545, - "recall": 0.6058091286307054, - "f1": 0.6525139664804469 - }, - "ath-rural-train": { - "true_positive": 522, - "false_positive": 244, - "false_negative": 414, - "precision": 0.6814621409921671, - "recall": 0.5576923076923077, - "f1": 0.6133960047003525 - }, - "charleroi-core-train": { - "true_positive": 261, - "false_positive": 113, - "false_negative": 265, - "precision": 0.6978609625668449, - "recall": 0.49619771863117873, - "f1": 0.5800000000000001 - }, - "eupen-train": { - "true_positive": 300, - "false_positive": 212, - "false_negative": 184, - "precision": 0.5859375, - "recall": 0.6198347107438017, - "f1": 0.6024096385542169 - }, - "genk-industry-train": { - "true_positive": 67, - "false_positive": 46, - "false_negative": 271, - "precision": 0.5929203539823009, - "recall": 0.19822485207100593, - "f1": 0.29711751662971175 - }, - "ixelles-dense-train": { - "true_positive": 472, - "false_positive": 116, - "false_negative": 546, - "precision": 0.8027210884353742, - "recall": 0.4636542239685658, - "f1": 0.5877957658779576 - }, - "lokeren-ribbon-train": { - "true_positive": 232, - "false_positive": 162, - "false_negative": 394, - "precision": 0.5888324873096447, - "recall": 0.3706070287539936, - "f1": 0.4549019607843137 - }, - "ostend-coastal-train": { - "true_positive": 14, - "false_positive": 27, - "false_negative": 32, - "precision": 0.34146341463414637, - "recall": 0.30434782608695654, - "f1": 0.3218390804597701 - }, - "uccle-residential-train": { - "true_positive": 194, - "false_positive": 78, - "false_negative": 154, - "precision": 0.7132352941176471, - "recall": 0.5574712643678161, - "f1": 0.6258064516129032 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.045, - "aggregate": { - "true_positive": 2304, - "false_positive": 1006, - "false_negative": 2500, - "precision": 0.6960725075528701, - "recall": 0.47960033305578686, - "f1": 0.5679073206803057 - }, - "regions": { - "brussels": { - "true_positive": 949, - "false_positive": 279, - "false_negative": 899, - "precision": 0.7728013029315961, - "recall": 0.5135281385281385, - "f1": 0.61703511053316 - }, - "flanders": { - "true_positive": 285, - "false_positive": 206, - "false_negative": 725, - "precision": 0.5804480651731161, - "recall": 0.28217821782178215, - "f1": 0.37974683544303794 - }, - "wallonia": { - "true_positive": 1070, - "false_positive": 521, - "false_negative": 876, - "precision": 0.6725329981143935, - "recall": 0.5498458376156218, - "f1": 0.6050325134294599 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 290, - "false_positive": 106, - "false_negative": 192, - "precision": 0.7323232323232324, - "recall": 0.6016597510373444, - "f1": 0.6605922551252847 - }, - "ath-rural-train": { - "true_positive": 513, - "false_positive": 225, - "false_negative": 423, - "precision": 0.6951219512195121, - "recall": 0.5480769230769231, - "f1": 0.6129032258064516 - }, - "charleroi-core-train": { - "true_positive": 257, - "false_positive": 97, - "false_negative": 269, - "precision": 0.7259887005649718, - "recall": 0.48859315589353614, - "f1": 0.584090909090909 - }, - "eupen-train": { - "true_positive": 300, - "false_positive": 199, - "false_negative": 184, - "precision": 0.6012024048096193, - "recall": 0.6198347107438017, - "f1": 0.6103763987792472 - }, - "genk-industry-train": { - "true_positive": 62, - "false_positive": 39, - "false_negative": 276, - "precision": 0.6138613861386139, - "recall": 0.1834319526627219, - "f1": 0.2824601366742597 - }, - "ixelles-dense-train": { - "true_positive": 465, - "false_positive": 100, - "false_negative": 553, - "precision": 0.8230088495575221, - "recall": 0.4567779960707269, - "f1": 0.587492103600758 - }, - "lokeren-ribbon-train": { - "true_positive": 210, - "false_positive": 142, - "false_negative": 416, - "precision": 0.5965909090909091, - "recall": 0.3354632587859425, - "f1": 0.4294478527607362 - }, - "ostend-coastal-train": { - "true_positive": 13, - "false_positive": 25, - "false_negative": 33, - "precision": 0.34210526315789475, - "recall": 0.2826086956521739, - "f1": 0.30952380952380953 - }, - "uccle-residential-train": { - "true_positive": 194, - "false_positive": 73, - "false_negative": 154, - "precision": 0.7265917602996255, - "recall": 0.5574712643678161, - "f1": 0.6308943089430895 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.05, - "aggregate": { - "true_positive": 2248, - "false_positive": 928, - "false_negative": 2556, - "precision": 0.707808564231738, - "recall": 0.46794338051623646, - "f1": 0.5634085213032581 - }, - "regions": { - "brussels": { - "true_positive": 938, - "false_positive": 252, - "false_negative": 910, - "precision": 0.788235294117647, - "recall": 0.5075757575757576, - "f1": 0.6175115207373272 - }, - "flanders": { - "true_positive": 249, - "false_positive": 186, - "false_negative": 761, - "precision": 0.5724137931034483, - "recall": 0.24653465346534653, - "f1": 0.34463667820069205 - }, - "wallonia": { - "true_positive": 1061, - "false_positive": 490, - "false_negative": 885, - "precision": 0.6840747904577692, - "recall": 0.5452209660842754, - "f1": 0.6068058335716329 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 290, - "false_positive": 96, - "false_negative": 192, - "precision": 0.7512953367875648, - "recall": 0.6016597510373444, - "f1": 0.6682027649769585 - }, - "ath-rural-train": { - "true_positive": 510, - "false_positive": 213, - "false_negative": 426, - "precision": 0.7053941908713693, - "recall": 0.5448717948717948, - "f1": 0.6148282097649186 - }, - "charleroi-core-train": { - "true_positive": 254, - "false_positive": 87, - "false_negative": 272, - "precision": 0.7448680351906158, - "recall": 0.4828897338403042, - "f1": 0.5859284890426759 - }, - "eupen-train": { - "true_positive": 297, - "false_positive": 190, - "false_negative": 187, - "precision": 0.6098562628336756, - "recall": 0.6136363636363636, - "f1": 0.611740473738414 - }, - "genk-industry-train": { - "true_positive": 54, - "false_positive": 36, - "false_negative": 284, - "precision": 0.6, - "recall": 0.15976331360946747, - "f1": 0.2523364485981308 - }, - "ixelles-dense-train": { - "true_positive": 457, - "false_positive": 91, - "false_negative": 561, - "precision": 0.833941605839416, - "recall": 0.4489194499017682, - "f1": 0.5836526181353768 - }, - "lokeren-ribbon-train": { - "true_positive": 185, - "false_positive": 125, - "false_negative": 441, - "precision": 0.5967741935483871, - "recall": 0.2955271565495208, - "f1": 0.39529914529914534 - }, - "ostend-coastal-train": { - "true_positive": 10, - "false_positive": 25, - "false_negative": 36, - "precision": 0.2857142857142857, - "recall": 0.21739130434782608, - "f1": 0.24691358024691357 - }, - "uccle-residential-train": { - "true_positive": 191, - "false_positive": 65, - "false_negative": 157, - "precision": 0.74609375, - "recall": 0.5488505747126436, - "f1": 0.6324503311258279 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.06, - "aggregate": { - "true_positive": 2145, - "false_positive": 775, - "false_negative": 2659, - "precision": 0.7345890410958904, - "recall": 0.4465029142381349, - "f1": 0.5554117037804246 - }, - "regions": { - "brussels": { - "true_positive": 922, - "false_positive": 207, - "false_negative": 926, - "precision": 0.816651904340124, - "recall": 0.4989177489177489, - "f1": 0.6194155189788377 - }, - "flanders": { - "true_positive": 194, - "false_positive": 134, - "false_negative": 816, - "precision": 0.5914634146341463, - "recall": 0.19207920792079208, - "f1": 0.28998505231689087 - }, - "wallonia": { - "true_positive": 1029, - "false_positive": 434, - "false_negative": 917, - "precision": 0.7033492822966507, - "recall": 0.5287769784172662, - "f1": 0.6036960985626283 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 285, - "false_positive": 77, - "false_negative": 197, - "precision": 0.787292817679558, - "recall": 0.5912863070539419, - "f1": 0.6753554502369669 - }, - "ath-rural-train": { - "true_positive": 495, - "false_positive": 183, - "false_negative": 441, - "precision": 0.7300884955752213, - "recall": 0.5288461538461539, - "f1": 0.6133828996282528 - }, - "charleroi-core-train": { - "true_positive": 242, - "false_positive": 77, - "false_negative": 284, - "precision": 0.7586206896551724, - "recall": 0.4600760456273764, - "f1": 0.5727810650887574 - }, - "eupen-train": { - "true_positive": 292, - "false_positive": 174, - "false_negative": 192, - "precision": 0.6266094420600858, - "recall": 0.6033057851239669, - "f1": 0.6147368421052631 - }, - "genk-industry-train": { - "true_positive": 47, - "false_positive": 31, - "false_negative": 291, - "precision": 0.6025641025641025, - "recall": 0.1390532544378698, - "f1": 0.22596153846153844 - }, - "ixelles-dense-train": { - "true_positive": 448, - "false_positive": 77, - "false_negative": 570, - "precision": 0.8533333333333334, - "recall": 0.4400785854616896, - "f1": 0.5806869734283863 - }, - "lokeren-ribbon-train": { - "true_positive": 137, - "false_positive": 88, - "false_negative": 489, - "precision": 0.6088888888888889, - "recall": 0.21884984025559107, - "f1": 0.3219741480611046 - }, - "ostend-coastal-train": { - "true_positive": 10, - "false_positive": 15, - "false_negative": 36, - "precision": 0.4, - "recall": 0.21739130434782608, - "f1": 0.28169014084507044 - }, - "uccle-residential-train": { - "true_positive": 189, - "false_positive": 53, - "false_negative": 159, - "precision": 0.78099173553719, - "recall": 0.5431034482758621, - "f1": 0.6406779661016949 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.075, - "aggregate": { - "true_positive": 2026, - "false_positive": 602, - "false_negative": 2778, - "precision": 0.7709284627092846, - "recall": 0.42173189009159034, - "f1": 0.5452099031216361 - }, - "regions": { - "brussels": { - "true_positive": 901, - "false_positive": 152, - "false_negative": 947, - "precision": 0.855650522317189, - "recall": 0.4875541125541126, - "f1": 0.6211651154774216 - }, - "flanders": { - "true_positive": 128, - "false_positive": 81, - "false_negative": 882, - "precision": 0.6124401913875598, - "recall": 0.12673267326732673, - "f1": 0.21000820344544707 - }, - "wallonia": { - "true_positive": 997, - "false_positive": 369, - "false_negative": 949, - "precision": 0.7298682284040996, - "recall": 0.512332990750257, - "f1": 0.6020531400966184 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 277, - "false_positive": 59, - "false_negative": 205, - "precision": 0.8244047619047619, - "recall": 0.5746887966804979, - "f1": 0.6772616136919315 - }, - "ath-rural-train": { - "true_positive": 480, - "false_positive": 155, - "false_negative": 456, - "precision": 0.7559055118110236, - "recall": 0.5128205128205128, - "f1": 0.611075747931254 - }, - "charleroi-core-train": { - "true_positive": 233, - "false_positive": 67, - "false_negative": 293, - "precision": 0.7766666666666666, - "recall": 0.4429657794676806, - "f1": 0.5641646489104116 - }, - "eupen-train": { - "true_positive": 284, - "false_positive": 147, - "false_negative": 200, - "precision": 0.6589327146171694, - "recall": 0.5867768595041323, - "f1": 0.6207650273224044 - }, - "genk-industry-train": { - "true_positive": 38, - "false_positive": 22, - "false_negative": 300, - "precision": 0.6333333333333333, - "recall": 0.11242603550295859, - "f1": 0.19095477386934673 - }, - "ixelles-dense-train": { - "true_positive": 438, - "false_positive": 58, - "false_negative": 580, - "precision": 0.8830645161290323, - "recall": 0.4302554027504912, - "f1": 0.5785997357992074 - }, - "lokeren-ribbon-train": { - "true_positive": 81, - "false_positive": 48, - "false_negative": 545, - "precision": 0.627906976744186, - "recall": 0.12939297124600638, - "f1": 0.21456953642384105 - }, - "ostend-coastal-train": { - "true_positive": 9, - "false_positive": 11, - "false_negative": 37, - "precision": 0.45, - "recall": 0.1956521739130435, - "f1": 0.2727272727272727 - }, - "uccle-residential-train": { - "true_positive": 186, - "false_positive": 35, - "false_negative": 162, - "precision": 0.8416289592760181, - "recall": 0.5344827586206896, - "f1": 0.6537785588752196 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.1, - "aggregate": { - "true_positive": 1869, - "false_positive": 435, - "false_negative": 2935, - "precision": 0.8111979166666666, - "recall": 0.38905079100749373, - "f1": 0.5258863252673045 - }, - "regions": { - "brussels": { - "true_positive": 861, - "false_positive": 107, - "false_negative": 987, - "precision": 0.8894628099173554, - "recall": 0.4659090909090909, - "f1": 0.6115056818181819 - }, - "flanders": { - "true_positive": 54, - "false_positive": 42, - "false_negative": 956, - "precision": 0.5625, - "recall": 0.053465346534653464, - "f1": 0.09764918625678118 - }, - "wallonia": { - "true_positive": 954, - "false_positive": 286, - "false_negative": 992, - "precision": 0.7693548387096775, - "recall": 0.49023638232271327, - "f1": 0.5988700564971752 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 257, - "false_positive": 40, - "false_negative": 225, - "precision": 0.8653198653198653, - "recall": 0.533195020746888, - "f1": 0.6598202824133504 - }, - "ath-rural-train": { - "true_positive": 464, - "false_positive": 118, - "false_negative": 472, - "precision": 0.7972508591065293, - "recall": 0.49572649572649574, - "f1": 0.6113306982872201 - }, - "charleroi-core-train": { - "true_positive": 217, - "false_positive": 52, - "false_negative": 309, - "precision": 0.8066914498141264, - "recall": 0.41254752851711024, - "f1": 0.5459119496855346 - }, - "eupen-train": { - "true_positive": 273, - "false_positive": 116, - "false_negative": 211, - "precision": 0.7017994858611826, - "recall": 0.5640495867768595, - "f1": 0.6254295532646048 - }, - "genk-industry-train": { - "true_positive": 23, - "false_positive": 15, - "false_negative": 315, - "precision": 0.6052631578947368, - "recall": 0.06804733727810651, - "f1": 0.12234042553191489 - }, - "ixelles-dense-train": { - "true_positive": 420, - "false_positive": 42, - "false_negative": 598, - "precision": 0.9090909090909091, - "recall": 0.412573673870334, - "f1": 0.5675675675675677 - }, - "lokeren-ribbon-train": { - "true_positive": 24, - "false_positive": 19, - "false_negative": 602, - "precision": 0.5581395348837209, - "recall": 0.038338658146964855, - "f1": 0.07174887892376682 - }, - "ostend-coastal-train": { - "true_positive": 7, - "false_positive": 8, - "false_negative": 39, - "precision": 0.4666666666666667, - "recall": 0.15217391304347827, - "f1": 0.22950819672131148 - }, - "uccle-residential-train": { - "true_positive": 184, - "false_positive": 25, - "false_negative": 164, - "precision": 0.8803827751196173, - "recall": 0.5287356321839081, - "f1": 0.6606822262118492 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.125, - "aggregate": { - "true_positive": 1755, - "false_positive": 345, - "false_negative": 3049, - "precision": 0.8357142857142857, - "recall": 0.36532056619483766, - "f1": 0.5084009269988413 - }, - "regions": { - "brussels": { - "true_positive": 839, - "false_positive": 82, - "false_negative": 1009, - "precision": 0.9109663409337676, - "recall": 0.454004329004329, - "f1": 0.605994944023113 - }, - "flanders": { - "true_positive": 23, - "false_positive": 25, - "false_negative": 987, - "precision": 0.4791666666666667, - "recall": 0.02277227722772277, - "f1": 0.043478260869565216 - }, - "wallonia": { - "true_positive": 893, - "false_positive": 238, - "false_negative": 1053, - "precision": 0.7895667550839964, - "recall": 0.45889003083247687, - "f1": 0.5804354891127722 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 249, - "false_positive": 29, - "false_negative": 233, - "precision": 0.89568345323741, - "recall": 0.516597510373444, - "f1": 0.6552631578947368 - }, - "ath-rural-train": { - "true_positive": 433, - "false_positive": 101, - "false_negative": 503, - "precision": 0.8108614232209738, - "recall": 0.46260683760683763, - "f1": 0.5891156462585034 - }, - "charleroi-core-train": { - "true_positive": 202, - "false_positive": 39, - "false_negative": 324, - "precision": 0.8381742738589212, - "recall": 0.3840304182509506, - "f1": 0.5267275097783573 - }, - "eupen-train": { - "true_positive": 258, - "false_positive": 98, - "false_negative": 226, - "precision": 0.7247191011235955, - "recall": 0.5330578512396694, - "f1": 0.6142857142857143 - }, - "genk-industry-train": { - "true_positive": 10, - "false_positive": 9, - "false_negative": 328, - "precision": 0.5263157894736842, - "recall": 0.029585798816568046, - "f1": 0.05602240896358542 - }, - "ixelles-dense-train": { - "true_positive": 409, - "false_positive": 31, - "false_negative": 609, - "precision": 0.9295454545454546, - "recall": 0.4017681728880157, - "f1": 0.5610425240054869 - }, - "lokeren-ribbon-train": { - "true_positive": 9, - "false_positive": 9, - "false_negative": 617, - "precision": 0.5, - "recall": 0.01437699680511182, - "f1": 0.02795031055900621 - }, - "ostend-coastal-train": { - "true_positive": 4, - "false_positive": 7, - "false_negative": 42, - "precision": 0.36363636363636365, - "recall": 0.08695652173913043, - "f1": 0.14035087719298245 - }, - "uccle-residential-train": { - "true_positive": 181, - "false_positive": 22, - "false_negative": 167, - "precision": 0.8916256157635468, - "recall": 0.5201149425287356, - "f1": 0.6569872958257713 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.15, - "aggregate": { - "true_positive": 1682, - "false_positive": 275, - "false_negative": 3122, - "precision": 0.85947879407256, - "recall": 0.3501248959200666, - "f1": 0.49755953261351876 - }, - "regions": { - "brussels": { - "true_positive": 814, - "false_positive": 58, - "false_negative": 1034, - "precision": 0.9334862385321101, - "recall": 0.44047619047619047, - "f1": 0.5985294117647059 - }, - "flanders": { - "true_positive": 14, - "false_positive": 13, - "false_negative": 996, - "precision": 0.5185185185185185, - "recall": 0.013861386138613862, - "f1": 0.02700096432015429 - }, - "wallonia": { - "true_positive": 854, - "false_positive": 204, - "false_negative": 1092, - "precision": 0.8071833648393195, - "recall": 0.43884892086330934, - "f1": 0.5685752330226365 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 242, - "false_positive": 22, - "false_negative": 240, - "precision": 0.9166666666666666, - "recall": 0.5020746887966805, - "f1": 0.6487935656836461 - }, - "ath-rural-train": { - "true_positive": 418, - "false_positive": 89, - "false_negative": 518, - "precision": 0.8244575936883629, - "recall": 0.4465811965811966, - "f1": 0.5793485793485794 - }, - "charleroi-core-train": { - "true_positive": 193, - "false_positive": 30, - "false_negative": 333, - "precision": 0.8654708520179372, - "recall": 0.3669201520912547, - "f1": 0.5153538050734312 - }, - "eupen-train": { - "true_positive": 243, - "false_positive": 85, - "false_negative": 241, - "precision": 0.7408536585365854, - "recall": 0.5020661157024794, - "f1": 0.5985221674876847 - }, - "genk-industry-train": { - "true_positive": 5, - "false_positive": 7, - "false_negative": 333, - "precision": 0.4166666666666667, - "recall": 0.014792899408284023, - "f1": 0.02857142857142857 - }, - "ixelles-dense-train": { - "true_positive": 394, - "false_positive": 18, - "false_negative": 624, - "precision": 0.9563106796116505, - "recall": 0.38703339882121807, - "f1": 0.551048951048951 - }, - "lokeren-ribbon-train": { - "true_positive": 5, - "false_positive": 4, - "false_negative": 621, - "precision": 0.5555555555555556, - "recall": 0.007987220447284345, - "f1": 0.01574803149606299 - }, - "ostend-coastal-train": { - "true_positive": 4, - "false_positive": 2, - "false_negative": 42, - "precision": 0.6666666666666666, - "recall": 0.08695652173913043, - "f1": 0.15384615384615383 - }, - "uccle-residential-train": { - "true_positive": 178, - "false_positive": 18, - "false_negative": 170, - "precision": 0.9081632653061225, - "recall": 0.5114942528735632, - "f1": 0.6544117647058822 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.2, - "aggregate": { - "true_positive": 1515, - "false_positive": 184, - "false_negative": 3289, - "precision": 0.8917010005885815, - "recall": 0.31536219816819316, - "f1": 0.4659387974780871 - }, - "regions": { - "brussels": { - "true_positive": 771, - "false_positive": 35, - "false_negative": 1077, - "precision": 0.956575682382134, - "recall": 0.4172077922077922, - "f1": 0.5810097965335342 - }, - "flanders": { - "true_positive": 6, - "false_positive": 6, - "false_negative": 1004, - "precision": 0.5, - "recall": 0.005940594059405941, - "f1": 0.011741682974559686 - }, - "wallonia": { - "true_positive": 738, - "false_positive": 143, - "false_negative": 1208, - "precision": 0.8376844494892168, - "recall": 0.37923946557040084, - "f1": 0.5221082419526 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 230, - "false_positive": 13, - "false_negative": 252, - "precision": 0.9465020576131687, - "recall": 0.47717842323651455, - "f1": 0.6344827586206897 - }, - "ath-rural-train": { - "true_positive": 370, - "false_positive": 56, - "false_negative": 566, - "precision": 0.8685446009389671, - "recall": 0.3952991452991453, - "f1": 0.5433186490455213 - }, - "charleroi-core-train": { - "true_positive": 157, - "false_positive": 20, - "false_negative": 369, - "precision": 0.8870056497175142, - "recall": 0.2984790874524715, - "f1": 0.4466571834992888 - }, - "eupen-train": { - "true_positive": 211, - "false_positive": 67, - "false_negative": 273, - "precision": 0.7589928057553957, - "recall": 0.4359504132231405, - "f1": 0.5538057742782152 - }, - "genk-industry-train": { - "true_positive": 3, - "false_positive": 5, - "false_negative": 335, - "precision": 0.375, - "recall": 0.008875739644970414, - "f1": 0.017341040462427747 - }, - "ixelles-dense-train": { - "true_positive": 374, - "false_positive": 12, - "false_negative": 644, - "precision": 0.9689119170984456, - "recall": 0.36738703339882123, - "f1": 0.5327635327635327 - }, - "lokeren-ribbon-train": { - "true_positive": 1, - "false_positive": 1, - "false_negative": 625, - "precision": 0.5, - "recall": 0.001597444089456869, - "f1": 0.0031847133757961785 - }, - "ostend-coastal-train": { - "true_positive": 2, - "false_positive": 0, - "false_negative": 44, - "precision": 1.0, - "recall": 0.043478260869565216, - "f1": 0.08333333333333333 - }, - "uccle-residential-train": { - "true_positive": 167, - "false_positive": 10, - "false_negative": 181, - "precision": 0.943502824858757, - "recall": 0.47988505747126436, - "f1": 0.6361904761904761 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.25, - "aggregate": { - "true_positive": 1360, - "false_positive": 128, - "false_negative": 3444, - "precision": 0.9139784946236559, - "recall": 0.28309741881765194, - "f1": 0.43229497774952313 - }, - "regions": { - "brussels": { - "true_positive": 712, - "false_positive": 24, - "false_negative": 1136, - "precision": 0.967391304347826, - "recall": 0.3852813852813853, - "f1": 0.5510835913312694 - }, - "flanders": { - "true_positive": 3, - "false_positive": 4, - "false_negative": 1007, - "precision": 0.42857142857142855, - "recall": 0.0029702970297029703, - "f1": 0.0058997050147492625 - }, - "wallonia": { - "true_positive": 645, - "false_positive": 100, - "false_negative": 1301, - "precision": 0.8657718120805369, - "recall": 0.3314491264131552, - "f1": 0.4793756967670011 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 201, - "false_positive": 7, - "false_negative": 281, - "precision": 0.9663461538461539, - "recall": 0.4170124481327801, - "f1": 0.582608695652174 - }, - "ath-rural-train": { - "true_positive": 323, - "false_positive": 36, - "false_negative": 613, - "precision": 0.8997214484679665, - "recall": 0.3450854700854701, - "f1": 0.4988416988416988 - }, - "charleroi-core-train": { - "true_positive": 135, - "false_positive": 11, - "false_negative": 391, - "precision": 0.9246575342465754, - "recall": 0.25665399239543724, - "f1": 0.40178571428571425 - }, - "eupen-train": { - "true_positive": 187, - "false_positive": 53, - "false_negative": 297, - "precision": 0.7791666666666667, - "recall": 0.38636363636363635, - "f1": 0.5165745856353591 - }, - "genk-industry-train": { - "true_positive": 2, - "false_positive": 4, - "false_negative": 336, - "precision": 0.3333333333333333, - "recall": 0.005917159763313609, - "f1": 0.011627906976744186 - }, - "ixelles-dense-train": { - "true_positive": 357, - "false_positive": 9, - "false_negative": 661, - "precision": 0.9754098360655737, - "recall": 0.3506876227897839, - "f1": 0.5158959537572254 - }, - "lokeren-ribbon-train": { - "true_positive": 0, - "false_positive": 0, - "false_negative": 626, - "precision": 1.0, - "recall": 0.0, - "f1": 0.0 - }, - "ostend-coastal-train": { - "true_positive": 1, - "false_positive": 0, - "false_negative": 45, - "precision": 1.0, - "recall": 0.021739130434782608, - "f1": 0.042553191489361694 - }, - "uccle-residential-train": { - "true_positive": 154, - "false_positive": 8, - "false_negative": 194, - "precision": 0.9506172839506173, - "recall": 0.4425287356321839, - "f1": 0.603921568627451 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.3, - "aggregate": { - "true_positive": 1172, - "false_positive": 83, - "false_negative": 3632, - "precision": 0.9338645418326693, - "recall": 0.24396336386344714, - "f1": 0.3868625185674203 - }, - "regions": { - "brussels": { - "true_positive": 646, - "false_positive": 11, - "false_negative": 1202, - "precision": 0.9832572298325722, - "recall": 0.3495670995670996, - "f1": 0.5157684630738523 - }, - "flanders": { - "true_positive": 2, - "false_positive": 1, - "false_negative": 1008, - "precision": 0.6666666666666666, - "recall": 0.0019801980198019802, - "f1": 0.003948667324777888 - }, - "wallonia": { - "true_positive": 524, - "false_positive": 71, - "false_negative": 1422, - "precision": 0.880672268907563, - "recall": 0.2692702980472765, - "f1": 0.41243604879968515 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 173, - "false_positive": 1, - "false_negative": 309, - "precision": 0.9942528735632183, - "recall": 0.35892116182572614, - "f1": 0.5274390243902438 - }, - "ath-rural-train": { - "true_positive": 261, - "false_positive": 27, - "false_negative": 675, - "precision": 0.90625, - "recall": 0.27884615384615385, - "f1": 0.42647058823529416 - }, - "charleroi-core-train": { - "true_positive": 103, - "false_positive": 3, - "false_negative": 423, - "precision": 0.9716981132075472, - "recall": 0.1958174904942966, - "f1": 0.32594936708860767 - }, - "eupen-train": { - "true_positive": 160, - "false_positive": 41, - "false_negative": 324, - "precision": 0.7960199004975125, - "recall": 0.3305785123966942, - "f1": 0.4671532846715328 - }, - "genk-industry-train": { - "true_positive": 1, - "false_positive": 1, - "false_negative": 337, - "precision": 0.5, - "recall": 0.0029585798816568047, - "f1": 0.0058823529411764705 - }, - "ixelles-dense-train": { - "true_positive": 330, - "false_positive": 3, - "false_negative": 688, - "precision": 0.990990990990991, - "recall": 0.3241650294695481, - "f1": 0.4885270170244263 - }, - "lokeren-ribbon-train": { - "true_positive": 0, - "false_positive": 0, - "false_negative": 626, - "precision": 1.0, - "recall": 0.0, - "f1": 0.0 - }, - "ostend-coastal-train": { - "true_positive": 1, - "false_positive": 0, - "false_negative": 45, - "precision": 1.0, - "recall": 0.021739130434782608, - "f1": 0.042553191489361694 - }, - "uccle-residential-train": { - "true_positive": 143, - "false_positive": 7, - "false_negative": 205, - "precision": 0.9533333333333334, - "recall": 0.4109195402298851, - "f1": 0.5742971887550201 - } - }, - "pure_empty_false_positives": 0 - } - ] -} \ No newline at end of file diff --git a/.codex-input/v33-tta.json b/.codex-input/v33-tta.json deleted file mode 100644 index 174676dd..00000000 --- a/.codex-input/v33-tta.json +++ /dev/null @@ -1,1929 +0,0 @@ -{ - "schema_version": 1, - "model": "/app/storage/training/building-be-v33-yolo11l-rotation-regularized-r1/iteration-001/candidate.pt", - "summary": "/app/storage/operator-data/building-be-v30-rotated-holdouts-r1/calibration/yolo_tile_dataset_summary.json", - "split": "val", - "match_iou": 0.25, - "test_time_augmentation": true, - "inference_imgsz": 640, - "max_detections_per_tile": 1000, - "nms_iou": 0.3, - "containment_nms": 0.95, - "box_scale": 1.0, - "box_offset_x": 0.0, - "box_offset_y": 0.0, - "additional_model": null, - "ensemble_mode": null, - "ensemble_match_iou": null, - "proposal_classifier": null, - "proposal_classifier_threshold": null, - "proposal_crop_scale": null, - "proposal_classifier_batch": null, - "tile_count": 144, - "sweeps": [ - { - "threshold": 0.01, - "aggregate": { - "true_positive": 3406, - "false_positive": 5264, - "false_negative": 1398, - "precision": 0.3928489042675894, - "recall": 0.708992506244796, - "f1": 0.5055662757904112 - }, - "regions": { - "brussels": { - "true_positive": 1297, - "false_positive": 1800, - "false_negative": 551, - "precision": 0.4187923797223119, - "recall": 0.7018398268398268, - "f1": 0.5245702730030334 - }, - "flanders": { - "true_positive": 664, - "false_positive": 1524, - "false_negative": 346, - "precision": 0.30347349177330896, - "recall": 0.6574257425742575, - "f1": 0.4152595372107567 - }, - "wallonia": { - "true_positive": 1445, - "false_positive": 1940, - "false_negative": 501, - "precision": 0.42688330871491875, - "recall": 0.7425488180883865, - "f1": 0.5421121740761583 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 370, - "false_positive": 630, - "false_negative": 112, - "precision": 0.37, - "recall": 0.7676348547717843, - "f1": 0.49932523616734137 - }, - "ath-rural-train": { - "true_positive": 695, - "false_positive": 839, - "false_negative": 241, - "precision": 0.4530638852672751, - "recall": 0.7425213675213675, - "f1": 0.562753036437247 - }, - "charleroi-core-train": { - "true_positive": 374, - "false_positive": 477, - "false_negative": 152, - "precision": 0.4394829612220917, - "recall": 0.7110266159695817, - "f1": 0.54320987654321 - }, - "eupen-train": { - "true_positive": 376, - "false_positive": 624, - "false_negative": 108, - "precision": 0.376, - "recall": 0.7768595041322314, - "f1": 0.5067385444743936 - }, - "genk-industry-train": { - "true_positive": 208, - "false_positive": 445, - "false_negative": 130, - "precision": 0.31852986217457885, - "recall": 0.6153846153846154, - "f1": 0.41977800201816345 - }, - "ixelles-dense-train": { - "true_positive": 687, - "false_positive": 585, - "false_negative": 331, - "precision": 0.5400943396226415, - "recall": 0.674852652259332, - "f1": 0.6 - }, - "lokeren-ribbon-train": { - "true_positive": 424, - "false_positive": 770, - "false_negative": 202, - "precision": 0.35510887772194305, - "recall": 0.6773162939297125, - "f1": 0.465934065934066 - }, - "ostend-coastal-train": { - "true_positive": 32, - "false_positive": 309, - "false_negative": 14, - "precision": 0.093841642228739, - "recall": 0.6956521739130435, - "f1": 0.16537467700258396 - }, - "uccle-residential-train": { - "true_positive": 240, - "false_positive": 585, - "false_negative": 108, - "precision": 0.2909090909090909, - "recall": 0.6896551724137931, - "f1": 0.4092071611253197 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.015, - "aggregate": { - "true_positive": 3293, - "false_positive": 4003, - "false_negative": 1511, - "precision": 0.45134320175438597, - "recall": 0.6854704412989175, - "f1": 0.544297520661157 - }, - "regions": { - "brussels": { - "true_positive": 1264, - "false_positive": 1270, - "false_negative": 584, - "precision": 0.4988161010260458, - "recall": 0.683982683982684, - "f1": 0.5769055225924236 - }, - "flanders": { - "true_positive": 611, - "false_positive": 1144, - "false_negative": 399, - "precision": 0.34814814814814815, - "recall": 0.6049504950495049, - "f1": 0.4419529837251356 - }, - "wallonia": { - "true_positive": 1418, - "false_positive": 1589, - "false_negative": 528, - "precision": 0.47156634519454604, - "recall": 0.7286742034943474, - "f1": 0.5725822733696749 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 362, - "false_positive": 442, - "false_negative": 120, - "precision": 0.4502487562189055, - "recall": 0.7510373443983402, - "f1": 0.5629860031104199 - }, - "ath-rural-train": { - "true_positive": 684, - "false_positive": 706, - "false_negative": 252, - "precision": 0.4920863309352518, - "recall": 0.7307692307692307, - "f1": 0.588134135855546 - }, - "charleroi-core-train": { - "true_positive": 369, - "false_positive": 380, - "false_negative": 157, - "precision": 0.49265687583444595, - "recall": 0.7015209125475285, - "f1": 0.5788235294117646 - }, - "eupen-train": { - "true_positive": 365, - "false_positive": 503, - "false_negative": 119, - "precision": 0.4205069124423963, - "recall": 0.7541322314049587, - "f1": 0.5399408284023669 - }, - "genk-industry-train": { - "true_positive": 190, - "false_positive": 329, - "false_negative": 148, - "precision": 0.36608863198458574, - "recall": 0.5621301775147929, - "f1": 0.44340723453908987 - }, - "ixelles-dense-train": { - "true_positive": 668, - "false_positive": 450, - "false_negative": 350, - "precision": 0.5974955277280859, - "recall": 0.656188605108055, - "f1": 0.6254681647940075 - }, - "lokeren-ribbon-train": { - "true_positive": 392, - "false_positive": 589, - "false_negative": 234, - "precision": 0.399592252803262, - "recall": 0.6261980830670927, - "f1": 0.48786558805227137 - }, - "ostend-coastal-train": { - "true_positive": 29, - "false_positive": 226, - "false_negative": 17, - "precision": 0.11372549019607843, - "recall": 0.6304347826086957, - "f1": 0.1926910299003322 - }, - "uccle-residential-train": { - "true_positive": 234, - "false_positive": 378, - "false_negative": 114, - "precision": 0.38235294117647056, - "recall": 0.6724137931034483, - "f1": 0.4874999999999999 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.02, - "aggregate": { - "true_positive": 3220, - "false_positive": 3322, - "false_negative": 1584, - "precision": 0.4922042188933048, - "recall": 0.6702747710241466, - "f1": 0.5676009166225984 - }, - "regions": { - "brussels": { - "true_positive": 1236, - "false_positive": 1011, - "false_negative": 612, - "precision": 0.5500667556742324, - "recall": 0.6688311688311688, - "f1": 0.6036630036630036 - }, - "flanders": { - "true_positive": 586, - "false_positive": 907, - "false_negative": 424, - "precision": 0.3924983255190891, - "recall": 0.5801980198019802, - "f1": 0.4682381142628845 - }, - "wallonia": { - "true_positive": 1398, - "false_positive": 1404, - "false_negative": 548, - "precision": 0.4989293361884368, - "recall": 0.7183967112024666, - "f1": 0.5888795282224094 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 350, - "false_positive": 340, - "false_negative": 132, - "precision": 0.5072463768115942, - "recall": 0.7261410788381742, - "f1": 0.5972696245733788 - }, - "ath-rural-train": { - "true_positive": 678, - "false_positive": 636, - "false_negative": 258, - "precision": 0.5159817351598174, - "recall": 0.7243589743589743, - "f1": 0.6026666666666667 - }, - "charleroi-core-train": { - "true_positive": 363, - "false_positive": 321, - "false_negative": 163, - "precision": 0.5307017543859649, - "recall": 0.6901140684410646, - "f1": 0.5999999999999999 - }, - "eupen-train": { - "true_positive": 357, - "false_positive": 447, - "false_negative": 127, - "precision": 0.44402985074626866, - "recall": 0.737603305785124, - "f1": 0.5543478260869565 - }, - "genk-industry-train": { - "true_positive": 186, - "false_positive": 274, - "false_negative": 152, - "precision": 0.4043478260869565, - "recall": 0.5502958579881657, - "f1": 0.4661654135338346 - }, - "ixelles-dense-train": { - "true_positive": 655, - "false_positive": 381, - "false_negative": 363, - "precision": 0.6322393822393823, - "recall": 0.6434184675834971, - "f1": 0.6377799415774099 - }, - "lokeren-ribbon-train": { - "true_positive": 372, - "false_positive": 458, - "false_negative": 254, - "precision": 0.44819277108433736, - "recall": 0.5942492012779552, - "f1": 0.510989010989011 - }, - "ostend-coastal-train": { - "true_positive": 28, - "false_positive": 175, - "false_negative": 18, - "precision": 0.13793103448275862, - "recall": 0.6086956521739131, - "f1": 0.22489959839357426 - }, - "uccle-residential-train": { - "true_positive": 231, - "false_positive": 290, - "false_negative": 117, - "precision": 0.44337811900191937, - "recall": 0.6637931034482759, - "f1": 0.5316455696202531 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.025, - "aggregate": { - "true_positive": 3139, - "false_positive": 2851, - "false_negative": 1665, - "precision": 0.5240400667779632, - "recall": 0.6534138218151541, - "f1": 0.5816194181952937 - }, - "regions": { - "brussels": { - "true_positive": 1212, - "false_positive": 817, - "false_negative": 636, - "precision": 0.5973385904386397, - "recall": 0.6558441558441559, - "f1": 0.6252256899664689 - }, - "flanders": { - "true_positive": 549, - "false_positive": 764, - "false_negative": 461, - "precision": 0.4181264280274181, - "recall": 0.5435643564356436, - "f1": 0.47266465777012484 - }, - "wallonia": { - "true_positive": 1378, - "false_positive": 1270, - "false_negative": 568, - "precision": 0.520392749244713, - "recall": 0.7081192189105858, - "f1": 0.5999129299085765 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 346, - "false_positive": 284, - "false_negative": 136, - "precision": 0.5492063492063493, - "recall": 0.7178423236514523, - "f1": 0.6223021582733814 - }, - "ath-rural-train": { - "true_positive": 665, - "false_positive": 577, - "false_negative": 271, - "precision": 0.535426731078905, - "recall": 0.7104700854700855, - "f1": 0.610651974288338 - }, - "charleroi-core-train": { - "true_positive": 358, - "false_positive": 279, - "false_negative": 168, - "precision": 0.5620094191522763, - "recall": 0.6806083650190115, - "f1": 0.6156491831470335 - }, - "eupen-train": { - "true_positive": 355, - "false_positive": 414, - "false_negative": 129, - "precision": 0.4616384915474642, - "recall": 0.7334710743801653, - "f1": 0.5666400638467677 - }, - "genk-industry-train": { - "true_positive": 174, - "false_positive": 236, - "false_negative": 164, - "precision": 0.424390243902439, - "recall": 0.514792899408284, - "f1": 0.4652406417112299 - }, - "ixelles-dense-train": { - "true_positive": 641, - "false_positive": 316, - "false_negative": 377, - "precision": 0.6698014629049112, - "recall": 0.6296660117878192, - "f1": 0.6491139240506328 - }, - "lokeren-ribbon-train": { - "true_positive": 348, - "false_positive": 381, - "false_negative": 278, - "precision": 0.4773662551440329, - "recall": 0.5559105431309904, - "f1": 0.5136531365313654 - }, - "ostend-coastal-train": { - "true_positive": 27, - "false_positive": 147, - "false_negative": 19, - "precision": 0.15517241379310345, - "recall": 0.5869565217391305, - "f1": 0.24545454545454545 - }, - "uccle-residential-train": { - "true_positive": 225, - "false_positive": 217, - "false_negative": 123, - "precision": 0.5090497737556561, - "recall": 0.646551724137931, - "f1": 0.5696202531645569 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.03, - "aggregate": { - "true_positive": 3056, - "false_positive": 2474, - "false_negative": 1748, - "precision": 0.552622061482821, - "recall": 0.6361365528726062, - "f1": 0.5914457131797949 - }, - "regions": { - "brussels": { - "true_positive": 1195, - "false_positive": 683, - "false_negative": 653, - "precision": 0.6363152289669861, - "recall": 0.6466450216450217, - "f1": 0.6414385399892647 - }, - "flanders": { - "true_positive": 507, - "false_positive": 640, - "false_negative": 503, - "precision": 0.4420226678291194, - "recall": 0.501980198019802, - "f1": 0.47009735744089004 - }, - "wallonia": { - "true_positive": 1354, - "false_positive": 1151, - "false_negative": 592, - "precision": 0.5405189620758483, - "recall": 0.6957862281603289, - "f1": 0.6084026061559199 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 339, - "false_positive": 245, - "false_negative": 143, - "precision": 0.5804794520547946, - "recall": 0.7033195020746889, - "f1": 0.6360225140712946 - }, - "ath-rural-train": { - "true_positive": 653, - "false_positive": 526, - "false_negative": 283, - "precision": 0.5538592027141646, - "recall": 0.6976495726495726, - "f1": 0.6174940898345154 - }, - "charleroi-core-train": { - "true_positive": 350, - "false_positive": 253, - "false_negative": 176, - "precision": 0.5804311774461028, - "recall": 0.6653992395437263, - "f1": 0.6200177147918512 - }, - "eupen-train": { - "true_positive": 351, - "false_positive": 372, - "false_negative": 133, - "precision": 0.4854771784232365, - "recall": 0.7252066115702479, - "f1": 0.5816072908036455 - }, - "genk-industry-train": { - "true_positive": 159, - "false_positive": 192, - "false_negative": 179, - "precision": 0.452991452991453, - "recall": 0.47041420118343197, - "f1": 0.46153846153846156 - }, - "ixelles-dense-train": { - "true_positive": 634, - "false_positive": 256, - "false_negative": 384, - "precision": 0.7123595505617978, - "recall": 0.6227897838899804, - "f1": 0.6645702306079665 - }, - "lokeren-ribbon-train": { - "true_positive": 326, - "false_positive": 332, - "false_negative": 300, - "precision": 0.49544072948328266, - "recall": 0.5207667731629393, - "f1": 0.5077881619937693 - }, - "ostend-coastal-train": { - "true_positive": 22, - "false_positive": 116, - "false_negative": 24, - "precision": 0.15942028985507245, - "recall": 0.4782608695652174, - "f1": 0.2391304347826087 - }, - "uccle-residential-train": { - "true_positive": 222, - "false_positive": 182, - "false_negative": 126, - "precision": 0.5495049504950495, - "recall": 0.6379310344827587, - "f1": 0.5904255319148937 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.035, - "aggregate": { - "true_positive": 2988, - "false_positive": 2191, - "false_negative": 1816, - "precision": 0.5769453562463797, - "recall": 0.6219816819317235, - "f1": 0.5986176500050084 - }, - "regions": { - "brussels": { - "true_positive": 1183, - "false_positive": 596, - "false_negative": 665, - "precision": 0.6649803260258572, - "recall": 0.6401515151515151, - "f1": 0.6523297491039426 - }, - "flanders": { - "true_positive": 473, - "false_positive": 540, - "false_negative": 537, - "precision": 0.46692991115498517, - "recall": 0.46831683168316834, - "f1": 0.467622343054869 - }, - "wallonia": { - "true_positive": 1332, - "false_positive": 1055, - "false_negative": 614, - "precision": 0.5580226225387516, - "recall": 0.68448098663926, - "f1": 0.6148165243480268 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 334, - "false_positive": 212, - "false_negative": 148, - "precision": 0.6117216117216118, - "recall": 0.6929460580912863, - "f1": 0.6498054474708171 - }, - "ath-rural-train": { - "true_positive": 643, - "false_positive": 482, - "false_negative": 293, - "precision": 0.5715555555555556, - "recall": 0.686965811965812, - "f1": 0.623968947113052 - }, - "charleroi-core-train": { - "true_positive": 339, - "false_positive": 227, - "false_negative": 187, - "precision": 0.598939929328622, - "recall": 0.6444866920152091, - "f1": 0.6208791208791209 - }, - "eupen-train": { - "true_positive": 350, - "false_positive": 346, - "false_negative": 134, - "precision": 0.5028735632183908, - "recall": 0.7231404958677686, - "f1": 0.5932203389830508 - }, - "genk-industry-train": { - "true_positive": 148, - "false_positive": 166, - "false_negative": 190, - "precision": 0.4713375796178344, - "recall": 0.4378698224852071, - "f1": 0.4539877300613497 - }, - "ixelles-dense-train": { - "true_positive": 630, - "false_positive": 226, - "false_negative": 388, - "precision": 0.735981308411215, - "recall": 0.618860510805501, - "f1": 0.672358591248666 - }, - "lokeren-ribbon-train": { - "true_positive": 307, - "false_positive": 274, - "false_negative": 319, - "precision": 0.5283993115318416, - "recall": 0.4904153354632588, - "f1": 0.5086992543496272 - }, - "ostend-coastal-train": { - "true_positive": 18, - "false_positive": 100, - "false_negative": 28, - "precision": 0.15254237288135594, - "recall": 0.391304347826087, - "f1": 0.21951219512195125 - }, - "uccle-residential-train": { - "true_positive": 219, - "false_positive": 158, - "false_negative": 129, - "precision": 0.5809018567639257, - "recall": 0.6293103448275862, - "f1": 0.6041379310344829 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.04, - "aggregate": { - "true_positive": 2912, - "false_positive": 1962, - "false_negative": 1892, - "precision": 0.5974558883873615, - "recall": 0.6061615320566195, - "f1": 0.6017772266997314 - }, - "regions": { - "brussels": { - "true_positive": 1164, - "false_positive": 525, - "false_negative": 684, - "precision": 0.6891651865008881, - "recall": 0.6298701298701299, - "f1": 0.6581849024597116 - }, - "flanders": { - "true_positive": 438, - "false_positive": 458, - "false_negative": 572, - "precision": 0.4888392857142857, - "recall": 0.43366336633663366, - "f1": 0.459601259181532 - }, - "wallonia": { - "true_positive": 1310, - "false_positive": 979, - "false_negative": 636, - "precision": 0.5723023154215815, - "recall": 0.6731757451181911, - "f1": 0.6186540731995278 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 330, - "false_positive": 193, - "false_negative": 152, - "precision": 0.6309751434034416, - "recall": 0.6846473029045643, - "f1": 0.6567164179104478 - }, - "ath-rural-train": { - "true_positive": 628, - "false_positive": 451, - "false_negative": 308, - "precision": 0.5820203892493049, - "recall": 0.6709401709401709, - "f1": 0.6233250620347394 - }, - "charleroi-core-train": { - "true_positive": 335, - "false_positive": 207, - "false_negative": 191, - "precision": 0.6180811808118081, - "recall": 0.6368821292775665, - "f1": 0.6273408239700373 - }, - "eupen-train": { - "true_positive": 347, - "false_positive": 321, - "false_negative": 137, - "precision": 0.5194610778443114, - "recall": 0.7169421487603306, - "f1": 0.6024305555555556 - }, - "genk-industry-train": { - "true_positive": 140, - "false_positive": 140, - "false_negative": 198, - "precision": 0.5, - "recall": 0.41420118343195267, - "f1": 0.45307443365695793 - }, - "ixelles-dense-train": { - "true_positive": 615, - "false_positive": 192, - "false_negative": 403, - "precision": 0.7620817843866171, - "recall": 0.6041257367387033, - "f1": 0.6739726027397259 - }, - "lokeren-ribbon-train": { - "true_positive": 280, - "false_positive": 237, - "false_negative": 346, - "precision": 0.5415860735009671, - "recall": 0.4472843450479233, - "f1": 0.4899387576552931 - }, - "ostend-coastal-train": { - "true_positive": 18, - "false_positive": 81, - "false_negative": 28, - "precision": 0.18181818181818182, - "recall": 0.391304347826087, - "f1": 0.2482758620689655 - }, - "uccle-residential-train": { - "true_positive": 219, - "false_positive": 140, - "false_negative": 129, - "precision": 0.6100278551532033, - "recall": 0.6293103448275862, - "f1": 0.6195190947666195 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.045, - "aggregate": { - "true_positive": 2833, - "false_positive": 1765, - "false_negative": 1971, - "precision": 0.6161374510656807, - "recall": 0.5897169025811824, - "f1": 0.6026377366517762 - }, - "regions": { - "brussels": { - "true_positive": 1149, - "false_positive": 467, - "false_negative": 699, - "precision": 0.7110148514851485, - "recall": 0.6217532467532467, - "f1": 0.6633949191685912 - }, - "flanders": { - "true_positive": 397, - "false_positive": 397, - "false_negative": 613, - "precision": 0.5, - "recall": 0.3930693069306931, - "f1": 0.4401330376940133 - }, - "wallonia": { - "true_positive": 1287, - "false_positive": 901, - "false_negative": 659, - "precision": 0.5882084095063985, - "recall": 0.6613566289825282, - "f1": 0.6226415094339622 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 328, - "false_positive": 168, - "false_negative": 154, - "precision": 0.6612903225806451, - "recall": 0.6804979253112033, - "f1": 0.6707566462167689 - }, - "ath-rural-train": { - "true_positive": 614, - "false_positive": 422, - "false_negative": 322, - "precision": 0.5926640926640927, - "recall": 0.655982905982906, - "f1": 0.6227180527383367 - }, - "charleroi-core-train": { - "true_positive": 327, - "false_positive": 180, - "false_negative": 199, - "precision": 0.6449704142011834, - "recall": 0.6216730038022814, - "f1": 0.633107454017425 - }, - "eupen-train": { - "true_positive": 346, - "false_positive": 299, - "false_negative": 138, - "precision": 0.5364341085271318, - "recall": 0.7148760330578512, - "f1": 0.6129317980513729 - }, - "genk-industry-train": { - "true_positive": 125, - "false_positive": 118, - "false_negative": 213, - "precision": 0.51440329218107, - "recall": 0.3698224852071006, - "f1": 0.43029259896729777 - }, - "ixelles-dense-train": { - "true_positive": 604, - "false_positive": 175, - "false_negative": 414, - "precision": 0.7753530166880617, - "recall": 0.593320235756385, - "f1": 0.6722314969393434 - }, - "lokeren-ribbon-train": { - "true_positive": 258, - "false_positive": 205, - "false_negative": 368, - "precision": 0.5572354211663066, - "recall": 0.41214057507987223, - "f1": 0.4738292011019284 - }, - "ostend-coastal-train": { - "true_positive": 14, - "false_positive": 74, - "false_negative": 32, - "precision": 0.1590909090909091, - "recall": 0.30434782608695654, - "f1": 0.20895522388059704 - }, - "uccle-residential-train": { - "true_positive": 217, - "false_positive": 124, - "false_negative": 131, - "precision": 0.6363636363636364, - "recall": 0.6235632183908046, - "f1": 0.629898403483309 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.05, - "aggregate": { - "true_positive": 2771, - "false_positive": 1595, - "false_negative": 2033, - "precision": 0.6346770499312873, - "recall": 0.5768109908409659, - "f1": 0.6043620501635768 - }, - "regions": { - "brussels": { - "true_positive": 1141, - "false_positive": 425, - "false_negative": 707, - "precision": 0.7286079182630907, - "recall": 0.6174242424242424, - "f1": 0.668424135910955 - }, - "flanders": { - "true_positive": 356, - "false_positive": 326, - "false_negative": 654, - "precision": 0.5219941348973607, - "recall": 0.35247524752475246, - "f1": 0.4208037825059101 - }, - "wallonia": { - "true_positive": 1274, - "false_positive": 844, - "false_negative": 672, - "precision": 0.6015108593012276, - "recall": 0.6546762589928058, - "f1": 0.6269685039370079 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 326, - "false_positive": 154, - "false_negative": 156, - "precision": 0.6791666666666667, - "recall": 0.6763485477178424, - "f1": 0.6777546777546778 - }, - "ath-rural-train": { - "true_positive": 606, - "false_positive": 396, - "false_negative": 330, - "precision": 0.6047904191616766, - "recall": 0.6474358974358975, - "f1": 0.6253869969040248 - }, - "charleroi-core-train": { - "true_positive": 325, - "false_positive": 163, - "false_negative": 201, - "precision": 0.6659836065573771, - "recall": 0.6178707224334601, - "f1": 0.6410256410256411 - }, - "eupen-train": { - "true_positive": 343, - "false_positive": 285, - "false_negative": 141, - "precision": 0.5461783439490446, - "recall": 0.7086776859504132, - "f1": 0.6169064748201439 - }, - "genk-industry-train": { - "true_positive": 111, - "false_positive": 101, - "false_negative": 227, - "precision": 0.5235849056603774, - "recall": 0.32840236686390534, - "f1": 0.4036363636363636 - }, - "ixelles-dense-train": { - "true_positive": 598, - "false_positive": 165, - "false_negative": 420, - "precision": 0.783748361730013, - "recall": 0.587426326129666, - "f1": 0.6715328467153284 - }, - "lokeren-ribbon-train": { - "true_positive": 233, - "false_positive": 163, - "false_negative": 393, - "precision": 0.5883838383838383, - "recall": 0.3722044728434505, - "f1": 0.45596868884540115 - }, - "ostend-coastal-train": { - "true_positive": 12, - "false_positive": 62, - "false_negative": 34, - "precision": 0.16216216216216217, - "recall": 0.2608695652173913, - "f1": 0.2 - }, - "uccle-residential-train": { - "true_positive": 217, - "false_positive": 106, - "false_negative": 131, - "precision": 0.6718266253869969, - "recall": 0.6235632183908046, - "f1": 0.646795827123696 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.06, - "aggregate": { - "true_positive": 2634, - "false_positive": 1316, - "false_negative": 2170, - "precision": 0.6668354430379747, - "recall": 0.548293089092423, - "f1": 0.6017820424948594 - }, - "regions": { - "brussels": { - "true_positive": 1119, - "false_positive": 354, - "false_negative": 729, - "precision": 0.7596741344195519, - "recall": 0.6055194805194806, - "f1": 0.6738934056007228 - }, - "flanders": { - "true_positive": 275, - "false_positive": 231, - "false_negative": 735, - "precision": 0.5434782608695652, - "recall": 0.2722772277227723, - "f1": 0.36279683377308714 - }, - "wallonia": { - "true_positive": 1240, - "false_positive": 731, - "false_negative": 706, - "precision": 0.6291222729578894, - "recall": 0.6372045220966084, - "f1": 0.6331376053101864 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 319, - "false_positive": 125, - "false_negative": 163, - "precision": 0.7184684684684685, - "recall": 0.6618257261410788, - "f1": 0.6889848812095032 - }, - "ath-rural-train": { - "true_positive": 593, - "false_positive": 347, - "false_negative": 343, - "precision": 0.6308510638297873, - "recall": 0.6335470085470085, - "f1": 0.6321961620469083 - }, - "charleroi-core-train": { - "true_positive": 309, - "false_positive": 138, - "false_negative": 217, - "precision": 0.6912751677852349, - "recall": 0.5874524714828897, - "f1": 0.6351490236382322 - }, - "eupen-train": { - "true_positive": 338, - "false_positive": 246, - "false_negative": 146, - "precision": 0.5787671232876712, - "recall": 0.6983471074380165, - "f1": 0.6329588014981273 - }, - "genk-industry-train": { - "true_positive": 85, - "false_positive": 73, - "false_negative": 253, - "precision": 0.5379746835443038, - "recall": 0.2514792899408284, - "f1": 0.34274193548387094 - }, - "ixelles-dense-train": { - "true_positive": 585, - "false_positive": 138, - "false_negative": 433, - "precision": 0.8091286307053942, - "recall": 0.574656188605108, - "f1": 0.672027570361861 - }, - "lokeren-ribbon-train": { - "true_positive": 180, - "false_positive": 110, - "false_negative": 446, - "precision": 0.6206896551724138, - "recall": 0.28753993610223644, - "f1": 0.3930131004366812 - }, - "ostend-coastal-train": { - "true_positive": 10, - "false_positive": 48, - "false_negative": 36, - "precision": 0.1724137931034483, - "recall": 0.21739130434782608, - "f1": 0.19230769230769232 - }, - "uccle-residential-train": { - "true_positive": 215, - "false_positive": 91, - "false_negative": 133, - "precision": 0.7026143790849673, - "recall": 0.617816091954023, - "f1": 0.6574923547400612 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.075, - "aggregate": { - "true_positive": 2463, - "false_positive": 1025, - "false_negative": 2341, - "precision": 0.7061353211009175, - "recall": 0.5126977518734388, - "f1": 0.5940665701881331 - }, - "regions": { - "brussels": { - "true_positive": 1082, - "false_positive": 258, - "false_negative": 766, - "precision": 0.8074626865671641, - "recall": 0.5854978354978355, - "f1": 0.6787954830614806 - }, - "flanders": { - "true_positive": 176, - "false_positive": 147, - "false_negative": 834, - "precision": 0.544891640866873, - "recall": 0.17425742574257425, - "f1": 0.26406601650412603 - }, - "wallonia": { - "true_positive": 1205, - "false_positive": 620, - "false_negative": 741, - "precision": 0.6602739726027397, - "recall": 0.619218910585817, - "f1": 0.6390877751259612 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 310, - "false_positive": 88, - "false_negative": 172, - "precision": 0.7788944723618091, - "recall": 0.6431535269709544, - "f1": 0.7045454545454547 - }, - "ath-rural-train": { - "true_positive": 578, - "false_positive": 287, - "false_negative": 358, - "precision": 0.6682080924855491, - "recall": 0.6175213675213675, - "f1": 0.6418656302054415 - }, - "charleroi-core-train": { - "true_positive": 297, - "false_positive": 119, - "false_negative": 229, - "precision": 0.7139423076923077, - "recall": 0.564638783269962, - "f1": 0.6305732484076434 - }, - "eupen-train": { - "true_positive": 330, - "false_positive": 214, - "false_negative": 154, - "precision": 0.6066176470588235, - "recall": 0.6818181818181818, - "f1": 0.6420233463035019 - }, - "genk-industry-train": { - "true_positive": 67, - "false_positive": 51, - "false_negative": 271, - "precision": 0.5677966101694916, - "recall": 0.19822485207100593, - "f1": 0.29385964912280704 - }, - "ixelles-dense-train": { - "true_positive": 563, - "false_positive": 105, - "false_negative": 455, - "precision": 0.842814371257485, - "recall": 0.5530451866404715, - "f1": 0.6678529062870701 - }, - "lokeren-ribbon-train": { - "true_positive": 103, - "false_positive": 64, - "false_negative": 523, - "precision": 0.6167664670658682, - "recall": 0.1645367412140575, - "f1": 0.2597730138713745 - }, - "ostend-coastal-train": { - "true_positive": 6, - "false_positive": 32, - "false_negative": 40, - "precision": 0.15789473684210525, - "recall": 0.13043478260869565, - "f1": 0.14285714285714288 - }, - "uccle-residential-train": { - "true_positive": 209, - "false_positive": 65, - "false_negative": 139, - "precision": 0.7627737226277372, - "recall": 0.6005747126436781, - "f1": 0.6720257234726688 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.1, - "aggregate": { - "true_positive": 2250, - "false_positive": 731, - "false_negative": 2554, - "precision": 0.7547802750754781, - "recall": 0.46835970024979184, - "f1": 0.5780346820809249 - }, - "regions": { - "brussels": { - "true_positive": 1039, - "false_positive": 191, - "false_negative": 809, - "precision": 0.8447154471544716, - "recall": 0.5622294372294372, - "f1": 0.6751137102014294 - }, - "flanders": { - "true_positive": 79, - "false_positive": 80, - "false_negative": 931, - "precision": 0.4968553459119497, - "recall": 0.07821782178217822, - "f1": 0.13515825491873398 - }, - "wallonia": { - "true_positive": 1132, - "false_positive": 460, - "false_negative": 814, - "precision": 0.7110552763819096, - "recall": 0.5817060637204522, - "f1": 0.6399095534200112 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 296, - "false_positive": 64, - "false_negative": 186, - "precision": 0.8222222222222222, - "recall": 0.6141078838174274, - "f1": 0.7030878859857482 - }, - "ath-rural-train": { - "true_positive": 538, - "false_positive": 193, - "false_negative": 398, - "precision": 0.7359781121751026, - "recall": 0.5747863247863247, - "f1": 0.6454709058188363 - }, - "charleroi-core-train": { - "true_positive": 274, - "false_positive": 92, - "false_negative": 252, - "precision": 0.7486338797814208, - "recall": 0.5209125475285171, - "f1": 0.6143497757847534 - }, - "eupen-train": { - "true_positive": 320, - "false_positive": 175, - "false_negative": 164, - "precision": 0.6464646464646465, - "recall": 0.6611570247933884, - "f1": 0.6537282941777324 - }, - "genk-industry-train": { - "true_positive": 39, - "false_positive": 28, - "false_negative": 299, - "precision": 0.582089552238806, - "recall": 0.11538461538461539, - "f1": 0.19259259259259257 - }, - "ixelles-dense-train": { - "true_positive": 538, - "false_positive": 79, - "false_negative": 480, - "precision": 0.8719611021069692, - "recall": 0.5284872298624754, - "f1": 0.6581039755351681 - }, - "lokeren-ribbon-train": { - "true_positive": 36, - "false_positive": 32, - "false_negative": 590, - "precision": 0.5294117647058824, - "recall": 0.05750798722044728, - "f1": 0.1037463976945245 - }, - "ostend-coastal-train": { - "true_positive": 4, - "false_positive": 20, - "false_negative": 42, - "precision": 0.16666666666666666, - "recall": 0.08695652173913043, - "f1": 0.11428571428571427 - }, - "uccle-residential-train": { - "true_positive": 205, - "false_positive": 48, - "false_negative": 143, - "precision": 0.8102766798418972, - "recall": 0.5890804597701149, - "f1": 0.6821963394342762 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.125, - "aggregate": { - "true_positive": 2104, - "false_positive": 562, - "false_negative": 2700, - "precision": 0.7891972993248312, - "recall": 0.4379683597002498, - "f1": 0.5633199464524765 - }, - "regions": { - "brussels": { - "true_positive": 1007, - "false_positive": 135, - "false_negative": 841, - "precision": 0.8817863397548161, - "recall": 0.5449134199134199, - "f1": 0.6735785953177258 - }, - "flanders": { - "true_positive": 39, - "false_positive": 43, - "false_negative": 971, - "precision": 0.47560975609756095, - "recall": 0.03861386138613861, - "f1": 0.07142857142857142 - }, - "wallonia": { - "true_positive": 1058, - "false_positive": 384, - "false_negative": 888, - "precision": 0.7337031900138696, - "recall": 0.5436793422404933, - "f1": 0.6245572609208973 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 288, - "false_positive": 46, - "false_negative": 194, - "precision": 0.8622754491017964, - "recall": 0.5975103734439834, - "f1": 0.7058823529411764 - }, - "ath-rural-train": { - "true_positive": 501, - "false_positive": 162, - "false_negative": 435, - "precision": 0.755656108597285, - "recall": 0.5352564102564102, - "f1": 0.626641651031895 - }, - "charleroi-core-train": { - "true_positive": 252, - "false_positive": 75, - "false_negative": 274, - "precision": 0.7706422018348624, - "recall": 0.4790874524714829, - "f1": 0.5908558030480656 - }, - "eupen-train": { - "true_positive": 305, - "false_positive": 147, - "false_negative": 179, - "precision": 0.6747787610619469, - "recall": 0.6301652892561983, - "f1": 0.6517094017094017 - }, - "genk-industry-train": { - "true_positive": 22, - "false_positive": 16, - "false_negative": 316, - "precision": 0.5789473684210527, - "recall": 0.0650887573964497, - "f1": 0.11702127659574467 - }, - "ixelles-dense-train": { - "true_positive": 516, - "false_positive": 53, - "false_negative": 502, - "precision": 0.9068541300527241, - "recall": 0.5068762278978389, - "f1": 0.6502835538752363 - }, - "lokeren-ribbon-train": { - "true_positive": 13, - "false_positive": 18, - "false_negative": 613, - "precision": 0.41935483870967744, - "recall": 0.020766773162939296, - "f1": 0.0395738203957382 - }, - "ostend-coastal-train": { - "true_positive": 4, - "false_positive": 9, - "false_negative": 42, - "precision": 0.3076923076923077, - "recall": 0.08695652173913043, - "f1": 0.13559322033898305 - }, - "uccle-residential-train": { - "true_positive": 203, - "false_positive": 36, - "false_negative": 145, - "precision": 0.8493723849372385, - "recall": 0.5833333333333334, - "f1": 0.6916524701873936 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.15, - "aggregate": { - "true_positive": 2005, - "false_positive": 443, - "false_negative": 2799, - "precision": 0.8190359477124183, - "recall": 0.41736053288925895, - "f1": 0.5529509100937673 - }, - "regions": { - "brussels": { - "true_positive": 977, - "false_positive": 97, - "false_negative": 871, - "precision": 0.909683426443203, - "recall": 0.5286796536796536, - "f1": 0.6687200547570157 - }, - "flanders": { - "true_positive": 21, - "false_positive": 24, - "false_negative": 989, - "precision": 0.4666666666666667, - "recall": 0.020792079207920793, - "f1": 0.039810426540284355 - }, - "wallonia": { - "true_positive": 1007, - "false_positive": 322, - "false_negative": 939, - "precision": 0.7577125658389767, - "recall": 0.5174717368961973, - "f1": 0.6149618320610686 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 281, - "false_positive": 32, - "false_negative": 201, - "precision": 0.8977635782747604, - "recall": 0.58298755186722, - "f1": 0.7069182389937106 - }, - "ath-rural-train": { - "true_positive": 482, - "false_positive": 137, - "false_negative": 454, - "precision": 0.778675282714055, - "recall": 0.5149572649572649, - "f1": 0.6199356913183278 - }, - "charleroi-core-train": { - "true_positive": 238, - "false_positive": 60, - "false_negative": 288, - "precision": 0.7986577181208053, - "recall": 0.4524714828897338, - "f1": 0.5776699029126214 - }, - "eupen-train": { - "true_positive": 287, - "false_positive": 125, - "false_negative": 197, - "precision": 0.6966019417475728, - "recall": 0.5929752066115702, - "f1": 0.6406249999999999 - }, - "genk-industry-train": { - "true_positive": 13, - "false_positive": 10, - "false_negative": 325, - "precision": 0.5652173913043478, - "recall": 0.038461538461538464, - "f1": 0.07202216066481995 - }, - "ixelles-dense-train": { - "true_positive": 497, - "false_positive": 41, - "false_negative": 521, - "precision": 0.9237918215613383, - "recall": 0.48821218074656186, - "f1": 0.6388174807197943 - }, - "lokeren-ribbon-train": { - "true_positive": 6, - "false_positive": 9, - "false_negative": 620, - "precision": 0.4, - "recall": 0.009584664536741214, - "f1": 0.018720748829953195 - }, - "ostend-coastal-train": { - "true_positive": 2, - "false_positive": 5, - "false_negative": 44, - "precision": 0.2857142857142857, - "recall": 0.043478260869565216, - "f1": 0.07547169811320756 - }, - "uccle-residential-train": { - "true_positive": 199, - "false_positive": 24, - "false_negative": 149, - "precision": 0.8923766816143498, - "recall": 0.5718390804597702, - "f1": 0.6970227670753065 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.2, - "aggregate": { - "true_positive": 1828, - "false_positive": 290, - "false_negative": 2976, - "precision": 0.8630783758262511, - "recall": 0.38051623646960864, - "f1": 0.5281710488298179 - }, - "regions": { - "brussels": { - "true_positive": 932, - "false_positive": 47, - "false_negative": 916, - "precision": 0.9519918283963228, - "recall": 0.5043290043290043, - "f1": 0.6593562079943402 - }, - "flanders": { - "true_positive": 9, - "false_positive": 10, - "false_negative": 1001, - "precision": 0.47368421052631576, - "recall": 0.00891089108910891, - "f1": 0.017492711370262388 - }, - "wallonia": { - "true_positive": 887, - "false_positive": 233, - "false_negative": 1059, - "precision": 0.7919642857142857, - "recall": 0.45580678314491263, - "f1": 0.578604044357469 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 269, - "false_positive": 19, - "false_negative": 213, - "precision": 0.9340277777777778, - "recall": 0.558091286307054, - "f1": 0.6987012987012986 - }, - "ath-rural-train": { - "true_positive": 425, - "false_positive": 103, - "false_negative": 511, - "precision": 0.8049242424242424, - "recall": 0.45405982905982906, - "f1": 0.5806010928961749 - }, - "charleroi-core-train": { - "true_positive": 203, - "false_positive": 37, - "false_negative": 323, - "precision": 0.8458333333333333, - "recall": 0.38593155893536124, - "f1": 0.5300261096605744 - }, - "eupen-train": { - "true_positive": 259, - "false_positive": 93, - "false_negative": 225, - "precision": 0.7357954545454546, - "recall": 0.5351239669421488, - "f1": 0.6196172248803828 - }, - "genk-industry-train": { - "true_positive": 5, - "false_positive": 5, - "false_negative": 333, - "precision": 0.5, - "recall": 0.014792899408284023, - "f1": 0.028735632183908046 - }, - "ixelles-dense-train": { - "true_positive": 468, - "false_positive": 16, - "false_negative": 550, - "precision": 0.9669421487603306, - "recall": 0.45972495088408644, - "f1": 0.6231691078561917 - }, - "lokeren-ribbon-train": { - "true_positive": 2, - "false_positive": 2, - "false_negative": 624, - "precision": 0.5, - "recall": 0.003194888178913738, - "f1": 0.006349206349206348 - }, - "ostend-coastal-train": { - "true_positive": 2, - "false_positive": 3, - "false_negative": 44, - "precision": 0.4, - "recall": 0.043478260869565216, - "f1": 0.0784313725490196 - }, - "uccle-residential-train": { - "true_positive": 195, - "false_positive": 12, - "false_negative": 153, - "precision": 0.9420289855072463, - "recall": 0.5603448275862069, - "f1": 0.7027027027027027 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.25, - "aggregate": { - "true_positive": 1634, - "false_positive": 182, - "false_negative": 3170, - "precision": 0.8997797356828194, - "recall": 0.3401332223147377, - "f1": 0.49365558912386703 - }, - "regions": { - "brussels": { - "true_positive": 869, - "false_positive": 29, - "false_negative": 979, - "precision": 0.967706013363029, - "recall": 0.47023809523809523, - "f1": 0.6329206117989803 - }, - "flanders": { - "true_positive": 3, - "false_positive": 4, - "false_negative": 1007, - "precision": 0.42857142857142855, - "recall": 0.0029702970297029703, - "f1": 0.0058997050147492625 - }, - "wallonia": { - "true_positive": 762, - "false_positive": 149, - "false_negative": 1184, - "precision": 0.8364434687156971, - "recall": 0.39157245632065774, - "f1": 0.5334266713335667 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 246, - "false_positive": 11, - "false_negative": 236, - "precision": 0.9571984435797666, - "recall": 0.5103734439834025, - "f1": 0.665764546684709 - }, - "ath-rural-train": { - "true_positive": 367, - "false_positive": 67, - "false_negative": 569, - "precision": 0.8456221198156681, - "recall": 0.3920940170940171, - "f1": 0.5357664233576642 - }, - "charleroi-core-train": { - "true_positive": 161, - "false_positive": 18, - "false_negative": 365, - "precision": 0.8994413407821229, - "recall": 0.3060836501901141, - "f1": 0.4567375886524823 - }, - "eupen-train": { - "true_positive": 234, - "false_positive": 64, - "false_negative": 250, - "precision": 0.785234899328859, - "recall": 0.4834710743801653, - "f1": 0.59846547314578 - }, - "genk-industry-train": { - "true_positive": 3, - "false_positive": 3, - "false_negative": 335, - "precision": 0.5, - "recall": 0.008875739644970414, - "f1": 0.01744186046511628 - }, - "ixelles-dense-train": { - "true_positive": 442, - "false_positive": 9, - "false_negative": 576, - "precision": 0.9800443458980045, - "recall": 0.43418467583497056, - "f1": 0.6017699115044248 - }, - "lokeren-ribbon-train": { - "true_positive": 0, - "false_positive": 0, - "false_negative": 626, - "precision": 1.0, - "recall": 0.0, - "f1": 0.0 - }, - "ostend-coastal-train": { - "true_positive": 0, - "false_positive": 1, - "false_negative": 46, - "precision": 0.0, - "recall": 0.0, - "f1": 0.0 - }, - "uccle-residential-train": { - "true_positive": 181, - "false_positive": 9, - "false_negative": 167, - "precision": 0.9526315789473684, - "recall": 0.5201149425287356, - "f1": 0.6728624535315985 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.3, - "aggregate": { - "true_positive": 1439, - "false_positive": 122, - "false_negative": 3365, - "precision": 0.9218449711723254, - "recall": 0.2995420482930891, - "f1": 0.45216025137470545 - }, - "regions": { - "brussels": { - "true_positive": 806, - "false_positive": 21, - "false_negative": 1042, - "precision": 0.9746070133010882, - "recall": 0.43614718614718617, - "f1": 0.6026168224299066 - }, - "flanders": { - "true_positive": 1, - "false_positive": 3, - "false_negative": 1009, - "precision": 0.25, - "recall": 0.0009900990099009901, - "f1": 0.0019723865877712033 - }, - "wallonia": { - "true_positive": 632, - "false_positive": 98, - "false_negative": 1314, - "precision": 0.8657534246575342, - "recall": 0.32476875642343267, - "f1": 0.4723467862481315 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 220, - "false_positive": 7, - "false_negative": 262, - "precision": 0.9691629955947136, - "recall": 0.45643153526970953, - "f1": 0.6205923836389281 - }, - "ath-rural-train": { - "true_positive": 301, - "false_positive": 39, - "false_negative": 635, - "precision": 0.8852941176470588, - "recall": 0.3215811965811966, - "f1": 0.4717868338557994 - }, - "charleroi-core-train": { - "true_positive": 124, - "false_positive": 8, - "false_negative": 402, - "precision": 0.9393939393939394, - "recall": 0.23574144486692014, - "f1": 0.37689969604863216 - }, - "eupen-train": { - "true_positive": 207, - "false_positive": 51, - "false_negative": 277, - "precision": 0.8023255813953488, - "recall": 0.42768595041322316, - "f1": 0.5579514824797843 - }, - "genk-industry-train": { - "true_positive": 1, - "false_positive": 2, - "false_negative": 337, - "precision": 0.3333333333333333, - "recall": 0.0029585798816568047, - "f1": 0.005865102639296187 - }, - "ixelles-dense-train": { - "true_positive": 417, - "false_positive": 6, - "false_negative": 601, - "precision": 0.9858156028368794, - "recall": 0.40962671905697445, - "f1": 0.578764746703678 - }, - "lokeren-ribbon-train": { - "true_positive": 0, - "false_positive": 0, - "false_negative": 626, - "precision": 1.0, - "recall": 0.0, - "f1": 0.0 - }, - "ostend-coastal-train": { - "true_positive": 0, - "false_positive": 1, - "false_negative": 46, - "precision": 0.0, - "recall": 0.0, - "f1": 0.0 - }, - "uccle-residential-train": { - "true_positive": 169, - "false_positive": 8, - "false_negative": 179, - "precision": 0.9548022598870056, - "recall": 0.48563218390804597, - "f1": 0.6438095238095237 - } - }, - "pure_empty_false_positives": 0 - } - ] -} \ No newline at end of file diff --git a/.codex-input/v34-assessment.json b/.codex-input/v34-assessment.json deleted file mode 100644 index 03854063..00000000 --- a/.codex-input/v34-assessment.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "schema_version": 1, - "status": "continue_training_loop", - "threshold_selection_source": "calibration_only", - "selected_threshold": 0.025, - "gates": { - "min_aggregate_f1": 0.55, - "min_region_f1": 0.45, - "min_region_precision": 0.5, - "min_region_recall": 0.4, - "max_pure_empty_false_positives": 0 - }, - "calibration": { - "threshold": 0.025, - "aggregate": { - "true_positive": 2996, - "false_positive": 2331, - "false_negative": 1808, - "precision": 0.5624178712220762, - "recall": 0.6236469608659451, - "f1": 0.5914519790741289 - }, - "regions": { - "brussels": { - "true_positive": 1192, - "false_positive": 616, - "false_negative": 656, - "precision": 0.6592920353982301, - "recall": 0.645021645021645, - "f1": 0.6520787746170679 - }, - "flanders": { - "true_positive": 468, - "false_positive": 571, - "false_negative": 542, - "precision": 0.4504331087584216, - "recall": 0.4633663366336634, - "f1": 0.4568081991215227 - }, - "wallonia": { - "true_positive": 1336, - "false_positive": 1144, - "false_negative": 610, - "precision": 0.5387096774193548, - "recall": 0.6865364850976362, - "f1": 0.6037053773158608 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 354, - "false_positive": 225, - "false_negative": 128, - "precision": 0.6113989637305699, - "recall": 0.7344398340248963, - "f1": 0.6672950047125353 - }, - "ath-rural-train": { - "true_positive": 648, - "false_positive": 519, - "false_negative": 288, - "precision": 0.5552699228791774, - "recall": 0.6923076923076923, - "f1": 0.616262482168331 - }, - "charleroi-core-train": { - "true_positive": 338, - "false_positive": 260, - "false_negative": 188, - "precision": 0.5652173913043478, - "recall": 0.6425855513307985, - "f1": 0.6014234875444839 - }, - "eupen-train": { - "true_positive": 350, - "false_positive": 365, - "false_negative": 134, - "precision": 0.48951048951048953, - "recall": 0.7231404958677686, - "f1": 0.5838198498748959 - }, - "genk-industry-train": { - "true_positive": 108, - "false_positive": 108, - "false_negative": 230, - "precision": 0.5, - "recall": 0.31952662721893493, - "f1": 0.3898916967509025 - }, - "ixelles-dense-train": { - "true_positive": 610, - "false_positive": 229, - "false_negative": 408, - "precision": 0.7270560190703218, - "recall": 0.5992141453831041, - "f1": 0.6569736133548734 - }, - "lokeren-ribbon-train": { - "true_positive": 340, - "false_positive": 377, - "false_negative": 286, - "precision": 0.47419804741980476, - "recall": 0.5431309904153354, - "f1": 0.5063291139240508 - }, - "ostend-coastal-train": { - "true_positive": 20, - "false_positive": 86, - "false_negative": 26, - "precision": 0.18867924528301888, - "recall": 0.43478260869565216, - "f1": 0.26315789473684215 - }, - "uccle-residential-train": { - "true_positive": 228, - "false_positive": 162, - "false_negative": 120, - "precision": 0.5846153846153846, - "recall": 0.6551724137931034, - "f1": 0.6178861788617886 - } - }, - "pure_empty_false_positives": 0 - }, - "test": null, - "background": null, - "failures": [ - "calibration_flanders_precision_below_gate" - ] -} \ No newline at end of file diff --git a/.codex-input/v34-calibration.json b/.codex-input/v34-calibration.json deleted file mode 100644 index 233821cd..00000000 --- a/.codex-input/v34-calibration.json +++ /dev/null @@ -1,1929 +0,0 @@ -{ - "schema_version": 1, - "model": "/app/storage/training/building-be-v34-yolo11l-flanders-hardnegative-r1/iteration-002/candidate.pt", - "summary": "/app/storage/operator-data/building-be-v30-rotated-holdouts-r1/calibration/yolo_tile_dataset_summary.json", - "split": "val", - "match_iou": 0.25, - "test_time_augmentation": false, - "inference_imgsz": 640, - "max_detections_per_tile": 1000, - "nms_iou": 0.3, - "containment_nms": 0.95, - "box_scale": 1.0, - "box_offset_x": 0.0, - "box_offset_y": 0.0, - "additional_model": null, - "ensemble_mode": null, - "ensemble_match_iou": null, - "proposal_classifier": null, - "proposal_classifier_threshold": null, - "proposal_crop_scale": null, - "proposal_classifier_batch": null, - "tile_count": 144, - "sweeps": [ - { - "threshold": 0.01, - "aggregate": { - "true_positive": 3241, - "false_positive": 4326, - "false_negative": 1563, - "precision": 0.4283071230342276, - "recall": 0.674646128226478, - "f1": 0.5239673429795491 - }, - "regions": { - "brussels": { - "true_positive": 1254, - "false_positive": 1312, - "false_negative": 594, - "precision": 0.4886983632112237, - "recall": 0.6785714285714286, - "f1": 0.5681921159945628 - }, - "flanders": { - "true_positive": 571, - "false_positive": 1248, - "false_negative": 439, - "precision": 0.31390874106652006, - "recall": 0.5653465346534653, - "f1": 0.4036762106751502 - }, - "wallonia": { - "true_positive": 1416, - "false_positive": 1766, - "false_negative": 530, - "precision": 0.4450031426775613, - "recall": 0.7276464542651593, - "f1": 0.5522620904836194 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 372, - "false_positive": 469, - "false_negative": 110, - "precision": 0.4423305588585018, - "recall": 0.7717842323651453, - "f1": 0.562358276643991 - }, - "ath-rural-train": { - "true_positive": 691, - "false_positive": 756, - "false_negative": 245, - "precision": 0.47753973738769867, - "recall": 0.7382478632478633, - "f1": 0.5799412505245489 - }, - "charleroi-core-train": { - "true_positive": 364, - "false_positive": 447, - "false_negative": 162, - "precision": 0.44882860665844637, - "recall": 0.6920152091254753, - "f1": 0.5445026178010471 - }, - "eupen-train": { - "true_positive": 361, - "false_positive": 563, - "false_negative": 123, - "precision": 0.3906926406926407, - "recall": 0.7458677685950413, - "f1": 0.5127840909090909 - }, - "genk-industry-train": { - "true_positive": 143, - "false_positive": 238, - "false_negative": 195, - "precision": 0.3753280839895013, - "recall": 0.4230769230769231, - "f1": 0.3977746870653685 - }, - "ixelles-dense-train": { - "true_positive": 641, - "false_positive": 435, - "false_negative": 377, - "precision": 0.595724907063197, - "recall": 0.6296660117878192, - "f1": 0.6122254059216811 - }, - "lokeren-ribbon-train": { - "true_positive": 406, - "false_positive": 804, - "false_negative": 220, - "precision": 0.33553719008264465, - "recall": 0.6485623003194888, - "f1": 0.44226579520697173 - }, - "ostend-coastal-train": { - "true_positive": 22, - "false_positive": 206, - "false_negative": 24, - "precision": 0.09649122807017543, - "recall": 0.4782608695652174, - "f1": 0.16058394160583941 - }, - "uccle-residential-train": { - "true_positive": 241, - "false_positive": 408, - "false_negative": 107, - "precision": 0.3713405238828968, - "recall": 0.6925287356321839, - "f1": 0.4834503510531595 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.015, - "aggregate": { - "true_positive": 3145, - "false_positive": 3288, - "false_negative": 1659, - "precision": 0.4888854344784704, - "recall": 0.6546627810158201, - "f1": 0.5597579425113464 - }, - "regions": { - "brussels": { - "true_positive": 1232, - "false_positive": 934, - "false_negative": 616, - "precision": 0.5687903970452447, - "recall": 0.6666666666666666, - "f1": 0.6138515196811161 - }, - "flanders": { - "true_positive": 528, - "false_positive": 878, - "false_negative": 482, - "precision": 0.3755334281650071, - "recall": 0.5227722772277228, - "f1": 0.4370860927152318 - }, - "wallonia": { - "true_positive": 1385, - "false_positive": 1476, - "false_negative": 561, - "precision": 0.48409646976581616, - "recall": 0.7117163412127441, - "f1": 0.5762429789889745 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 362, - "false_positive": 335, - "false_negative": 120, - "precision": 0.5193687230989957, - "recall": 0.7510373443983402, - "f1": 0.6140797285835454 - }, - "ath-rural-train": { - "true_positive": 672, - "false_positive": 642, - "false_negative": 264, - "precision": 0.5114155251141552, - "recall": 0.717948717948718, - "f1": 0.5973333333333333 - }, - "charleroi-core-train": { - "true_positive": 355, - "false_positive": 358, - "false_negative": 171, - "precision": 0.49789621318373073, - "recall": 0.6749049429657795, - "f1": 0.573042776432607 - }, - "eupen-train": { - "true_positive": 358, - "false_positive": 476, - "false_negative": 126, - "precision": 0.4292565947242206, - "recall": 0.7396694214876033, - "f1": 0.5432473444613051 - }, - "genk-industry-train": { - "true_positive": 125, - "false_positive": 169, - "false_negative": 213, - "precision": 0.42517006802721086, - "recall": 0.3698224852071006, - "f1": 0.39556962025316456 - }, - "ixelles-dense-train": { - "true_positive": 636, - "false_positive": 330, - "false_negative": 382, - "precision": 0.6583850931677019, - "recall": 0.6247544204322201, - "f1": 0.6411290322580646 - }, - "lokeren-ribbon-train": { - "true_positive": 383, - "false_positive": 576, - "false_negative": 243, - "precision": 0.3993743482794578, - "recall": 0.6118210862619808, - "f1": 0.4832807570977918 - }, - "ostend-coastal-train": { - "true_positive": 20, - "false_positive": 133, - "false_negative": 26, - "precision": 0.13071895424836602, - "recall": 0.43478260869565216, - "f1": 0.20100502512562815 - }, - "uccle-residential-train": { - "true_positive": 234, - "false_positive": 269, - "false_negative": 114, - "precision": 0.46520874751491054, - "recall": 0.6724137931034483, - "f1": 0.5499412455934195 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.02, - "aggregate": { - "true_positive": 3047, - "false_positive": 2734, - "false_negative": 1757, - "precision": 0.5270714409271753, - "recall": 0.634263114071607, - "f1": 0.575720358998583 - }, - "regions": { - "brussels": { - "true_positive": 1207, - "false_positive": 745, - "false_negative": 641, - "precision": 0.6183401639344263, - "recall": 0.6531385281385281, - "f1": 0.6352631578947369 - }, - "flanders": { - "true_positive": 487, - "false_positive": 702, - "false_negative": 523, - "precision": 0.4095878889823381, - "recall": 0.48217821782178216, - "f1": 0.4429286039108685 - }, - "wallonia": { - "true_positive": 1353, - "false_positive": 1287, - "false_negative": 593, - "precision": 0.5125, - "recall": 0.6952723535457348, - "f1": 0.5900566942869603 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 355, - "false_positive": 267, - "false_negative": 127, - "precision": 0.5707395498392283, - "recall": 0.7365145228215768, - "f1": 0.6431159420289855 - }, - "ath-rural-train": { - "true_positive": 658, - "false_positive": 574, - "false_negative": 278, - "precision": 0.5340909090909091, - "recall": 0.7029914529914529, - "f1": 0.6070110701107011 - }, - "charleroi-core-train": { - "true_positive": 344, - "false_positive": 298, - "false_negative": 182, - "precision": 0.5358255451713395, - "recall": 0.6539923954372624, - "f1": 0.5890410958904111 - }, - "eupen-train": { - "true_positive": 351, - "false_positive": 415, - "false_negative": 133, - "precision": 0.45822454308093996, - "recall": 0.7252066115702479, - "f1": 0.5616 - }, - "genk-industry-train": { - "true_positive": 114, - "false_positive": 137, - "false_negative": 224, - "precision": 0.4541832669322709, - "recall": 0.33727810650887574, - "f1": 0.3870967741935484 - }, - "ixelles-dense-train": { - "true_positive": 624, - "false_positive": 276, - "false_negative": 394, - "precision": 0.6933333333333334, - "recall": 0.6129666011787819, - "f1": 0.6506777893639207 - }, - "lokeren-ribbon-train": { - "true_positive": 353, - "false_positive": 460, - "false_negative": 273, - "precision": 0.43419434194341944, - "recall": 0.5638977635782748, - "f1": 0.49061848505906885 - }, - "ostend-coastal-train": { - "true_positive": 20, - "false_positive": 105, - "false_negative": 26, - "precision": 0.16, - "recall": 0.43478260869565216, - "f1": 0.23391812865497078 - }, - "uccle-residential-train": { - "true_positive": 228, - "false_positive": 202, - "false_negative": 120, - "precision": 0.5302325581395348, - "recall": 0.6551724137931034, - "f1": 0.5861182519280206 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.025, - "aggregate": { - "true_positive": 2996, - "false_positive": 2331, - "false_negative": 1808, - "precision": 0.5624178712220762, - "recall": 0.6236469608659451, - "f1": 0.5914519790741289 - }, - "regions": { - "brussels": { - "true_positive": 1192, - "false_positive": 616, - "false_negative": 656, - "precision": 0.6592920353982301, - "recall": 0.645021645021645, - "f1": 0.6520787746170679 - }, - "flanders": { - "true_positive": 468, - "false_positive": 571, - "false_negative": 542, - "precision": 0.4504331087584216, - "recall": 0.4633663366336634, - "f1": 0.4568081991215227 - }, - "wallonia": { - "true_positive": 1336, - "false_positive": 1144, - "false_negative": 610, - "precision": 0.5387096774193548, - "recall": 0.6865364850976362, - "f1": 0.6037053773158608 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 354, - "false_positive": 225, - "false_negative": 128, - "precision": 0.6113989637305699, - "recall": 0.7344398340248963, - "f1": 0.6672950047125353 - }, - "ath-rural-train": { - "true_positive": 648, - "false_positive": 519, - "false_negative": 288, - "precision": 0.5552699228791774, - "recall": 0.6923076923076923, - "f1": 0.616262482168331 - }, - "charleroi-core-train": { - "true_positive": 338, - "false_positive": 260, - "false_negative": 188, - "precision": 0.5652173913043478, - "recall": 0.6425855513307985, - "f1": 0.6014234875444839 - }, - "eupen-train": { - "true_positive": 350, - "false_positive": 365, - "false_negative": 134, - "precision": 0.48951048951048953, - "recall": 0.7231404958677686, - "f1": 0.5838198498748959 - }, - "genk-industry-train": { - "true_positive": 108, - "false_positive": 108, - "false_negative": 230, - "precision": 0.5, - "recall": 0.31952662721893493, - "f1": 0.3898916967509025 - }, - "ixelles-dense-train": { - "true_positive": 610, - "false_positive": 229, - "false_negative": 408, - "precision": 0.7270560190703218, - "recall": 0.5992141453831041, - "f1": 0.6569736133548734 - }, - "lokeren-ribbon-train": { - "true_positive": 340, - "false_positive": 377, - "false_negative": 286, - "precision": 0.47419804741980476, - "recall": 0.5431309904153354, - "f1": 0.5063291139240508 - }, - "ostend-coastal-train": { - "true_positive": 20, - "false_positive": 86, - "false_negative": 26, - "precision": 0.18867924528301888, - "recall": 0.43478260869565216, - "f1": 0.26315789473684215 - }, - "uccle-residential-train": { - "true_positive": 228, - "false_positive": 162, - "false_negative": 120, - "precision": 0.5846153846153846, - "recall": 0.6551724137931034, - "f1": 0.6178861788617886 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.03, - "aggregate": { - "true_positive": 2932, - "false_positive": 2048, - "false_negative": 1872, - "precision": 0.5887550200803213, - "recall": 0.6103247293921732, - "f1": 0.5993458708094849 - }, - "regions": { - "brussels": { - "true_positive": 1182, - "false_positive": 530, - "false_negative": 666, - "precision": 0.6904205607476636, - "recall": 0.6396103896103896, - "f1": 0.6640449438202247 - }, - "flanders": { - "true_positive": 436, - "false_positive": 470, - "false_negative": 574, - "precision": 0.48123620309050774, - "recall": 0.4316831683168317, - "f1": 0.4551148225469729 - }, - "wallonia": { - "true_positive": 1314, - "false_positive": 1048, - "false_negative": 632, - "precision": 0.5563082133784928, - "recall": 0.6752312435765673, - "f1": 0.6100278551532032 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 351, - "false_positive": 192, - "false_negative": 131, - "precision": 0.6464088397790055, - "recall": 0.7282157676348547, - "f1": 0.6848780487804877 - }, - "ath-rural-train": { - "true_positive": 638, - "false_positive": 480, - "false_negative": 298, - "precision": 0.5706618962432916, - "recall": 0.6816239316239316, - "f1": 0.6212268743914313 - }, - "charleroi-core-train": { - "true_positive": 333, - "false_positive": 236, - "false_negative": 193, - "precision": 0.5852372583479789, - "recall": 0.6330798479087453, - "f1": 0.6082191780821917 - }, - "eupen-train": { - "true_positive": 343, - "false_positive": 332, - "false_negative": 141, - "precision": 0.5081481481481481, - "recall": 0.7086776859504132, - "f1": 0.5918895599654875 - }, - "genk-industry-train": { - "true_positive": 99, - "false_positive": 88, - "false_negative": 239, - "precision": 0.5294117647058824, - "recall": 0.29289940828402367, - "f1": 0.37714285714285717 - }, - "ixelles-dense-train": { - "true_positive": 607, - "false_positive": 201, - "false_negative": 411, - "precision": 0.7512376237623762, - "recall": 0.5962671905697446, - "f1": 0.664841182913472 - }, - "lokeren-ribbon-train": { - "true_positive": 319, - "false_positive": 316, - "false_negative": 307, - "precision": 0.5023622047244094, - "recall": 0.5095846645367412, - "f1": 0.5059476605868358 - }, - "ostend-coastal-train": { - "true_positive": 18, - "false_positive": 66, - "false_negative": 28, - "precision": 0.21428571428571427, - "recall": 0.391304347826087, - "f1": 0.27692307692307694 - }, - "uccle-residential-train": { - "true_positive": 224, - "false_positive": 137, - "false_negative": 124, - "precision": 0.6204986149584487, - "recall": 0.6436781609195402, - "f1": 0.6318758815232722 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.035, - "aggregate": { - "true_positive": 2863, - "false_positive": 1824, - "false_negative": 1941, - "precision": 0.6108384894388735, - "recall": 0.5959616985845129, - "f1": 0.6033083974291433 - }, - "regions": { - "brussels": { - "true_positive": 1170, - "false_positive": 469, - "false_negative": 678, - "precision": 0.713849908480781, - "recall": 0.6331168831168831, - "f1": 0.6710639518210497 - }, - "flanders": { - "true_positive": 394, - "false_positive": 402, - "false_negative": 616, - "precision": 0.4949748743718593, - "recall": 0.3900990099009901, - "f1": 0.4363233665559247 - }, - "wallonia": { - "true_positive": 1299, - "false_positive": 953, - "false_negative": 647, - "precision": 0.5768206039076377, - "recall": 0.6675231243576567, - "f1": 0.6188661267270128 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 345, - "false_positive": 168, - "false_negative": 137, - "precision": 0.672514619883041, - "recall": 0.7157676348547718, - "f1": 0.6934673366834171 - }, - "ath-rural-train": { - "true_positive": 627, - "false_positive": 439, - "false_negative": 309, - "precision": 0.5881801125703565, - "recall": 0.6698717948717948, - "f1": 0.6263736263736265 - }, - "charleroi-core-train": { - "true_positive": 329, - "false_positive": 208, - "false_negative": 197, - "precision": 0.6126629422718808, - "recall": 0.6254752851711026, - "f1": 0.6190028222013171 - }, - "eupen-train": { - "true_positive": 343, - "false_positive": 306, - "false_negative": 141, - "precision": 0.5285053929121726, - "recall": 0.7086776859504132, - "f1": 0.6054721977052074 - }, - "genk-industry-train": { - "true_positive": 89, - "false_positive": 72, - "false_negative": 249, - "precision": 0.5527950310559007, - "recall": 0.26331360946745563, - "f1": 0.35671342685370744 - }, - "ixelles-dense-train": { - "true_positive": 602, - "false_positive": 179, - "false_negative": 416, - "precision": 0.7708066581306018, - "recall": 0.5913555992141454, - "f1": 0.6692607003891051 - }, - "lokeren-ribbon-train": { - "true_positive": 288, - "false_positive": 273, - "false_negative": 338, - "precision": 0.5133689839572193, - "recall": 0.46006389776357826, - "f1": 0.48525695029486104 - }, - "ostend-coastal-train": { - "true_positive": 17, - "false_positive": 57, - "false_negative": 29, - "precision": 0.22972972972972974, - "recall": 0.3695652173913043, - "f1": 0.2833333333333333 - }, - "uccle-residential-train": { - "true_positive": 223, - "false_positive": 122, - "false_negative": 125, - "precision": 0.6463768115942029, - "recall": 0.6408045977011494, - "f1": 0.6435786435786437 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.04, - "aggregate": { - "true_positive": 2796, - "false_positive": 1614, - "false_negative": 2008, - "precision": 0.6340136054421769, - "recall": 0.582014987510408, - "f1": 0.6069025396136315 - }, - "regions": { - "brussels": { - "true_positive": 1157, - "false_positive": 411, - "false_negative": 691, - "precision": 0.7378826530612245, - "recall": 0.6260822510822511, - "f1": 0.677400468384075 - }, - "flanders": { - "true_positive": 357, - "false_positive": 331, - "false_negative": 653, - "precision": 0.5188953488372093, - "recall": 0.35346534653465345, - "f1": 0.4204946996466431 - }, - "wallonia": { - "true_positive": 1282, - "false_positive": 872, - "false_negative": 664, - "precision": 0.5951717734447539, - "recall": 0.6587872559095581, - "f1": 0.6253658536585366 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 343, - "false_positive": 147, - "false_negative": 139, - "precision": 0.7, - "recall": 0.7116182572614108, - "f1": 0.705761316872428 - }, - "ath-rural-train": { - "true_positive": 619, - "false_positive": 406, - "false_negative": 317, - "precision": 0.6039024390243902, - "recall": 0.6613247863247863, - "f1": 0.6313105558388576 - }, - "charleroi-core-train": { - "true_positive": 323, - "false_positive": 186, - "false_negative": 203, - "precision": 0.6345776031434185, - "recall": 0.6140684410646388, - "f1": 0.6241545893719808 - }, - "eupen-train": { - "true_positive": 340, - "false_positive": 280, - "false_negative": 144, - "precision": 0.5483870967741935, - "recall": 0.7024793388429752, - "f1": 0.6159420289855072 - }, - "genk-industry-train": { - "true_positive": 77, - "false_positive": 66, - "false_negative": 261, - "precision": 0.5384615384615384, - "recall": 0.22781065088757396, - "f1": 0.32016632016632013 - }, - "ixelles-dense-train": { - "true_positive": 594, - "false_positive": 164, - "false_negative": 424, - "precision": 0.783641160949868, - "recall": 0.5834970530451866, - "f1": 0.6689189189189189 - }, - "lokeren-ribbon-train": { - "true_positive": 265, - "false_positive": 215, - "false_negative": 361, - "precision": 0.5520833333333334, - "recall": 0.4233226837060703, - "f1": 0.47920433996383366 - }, - "ostend-coastal-train": { - "true_positive": 15, - "false_positive": 50, - "false_negative": 31, - "precision": 0.23076923076923078, - "recall": 0.32608695652173914, - "f1": 0.2702702702702703 - }, - "uccle-residential-train": { - "true_positive": 220, - "false_positive": 100, - "false_negative": 128, - "precision": 0.6875, - "recall": 0.632183908045977, - "f1": 0.6586826347305389 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.045, - "aggregate": { - "true_positive": 2744, - "false_positive": 1454, - "false_negative": 2060, - "precision": 0.653644592663173, - "recall": 0.5711906744379683, - "f1": 0.609642301710731 - }, - "regions": { - "brussels": { - "true_positive": 1146, - "false_positive": 372, - "false_negative": 702, - "precision": 0.7549407114624506, - "recall": 0.6201298701298701, - "f1": 0.680926916221034 - }, - "flanders": { - "true_positive": 327, - "false_positive": 275, - "false_negative": 683, - "precision": 0.5431893687707641, - "recall": 0.3237623762376238, - "f1": 0.4057071960297766 - }, - "wallonia": { - "true_positive": 1271, - "false_positive": 807, - "false_negative": 675, - "precision": 0.611645813282002, - "recall": 0.6531346351490236, - "f1": 0.6317097415506958 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 340, - "false_positive": 141, - "false_negative": 142, - "precision": 0.7068607068607069, - "recall": 0.7053941908713693, - "f1": 0.7061266874350988 - }, - "ath-rural-train": { - "true_positive": 617, - "false_positive": 375, - "false_negative": 319, - "precision": 0.6219758064516129, - "recall": 0.6591880341880342, - "f1": 0.6400414937759337 - }, - "charleroi-core-train": { - "true_positive": 316, - "false_positive": 166, - "false_negative": 210, - "precision": 0.6556016597510373, - "recall": 0.6007604562737643, - "f1": 0.6269841269841271 - }, - "eupen-train": { - "true_positive": 338, - "false_positive": 266, - "false_negative": 146, - "precision": 0.5596026490066225, - "recall": 0.6983471074380165, - "f1": 0.6213235294117647 - }, - "genk-industry-train": { - "true_positive": 74, - "false_positive": 58, - "false_negative": 264, - "precision": 0.5606060606060606, - "recall": 0.21893491124260356, - "f1": 0.31489361702127655 - }, - "ixelles-dense-train": { - "true_positive": 588, - "false_positive": 146, - "false_negative": 430, - "precision": 0.8010899182561307, - "recall": 0.5776031434184676, - "f1": 0.6712328767123287 - }, - "lokeren-ribbon-train": { - "true_positive": 241, - "false_positive": 174, - "false_negative": 385, - "precision": 0.5807228915662651, - "recall": 0.38498402555910544, - "f1": 0.46301633045148904 - }, - "ostend-coastal-train": { - "true_positive": 12, - "false_positive": 43, - "false_negative": 34, - "precision": 0.21818181818181817, - "recall": 0.2608695652173913, - "f1": 0.2376237623762376 - }, - "uccle-residential-train": { - "true_positive": 218, - "false_positive": 85, - "false_negative": 130, - "precision": 0.7194719471947195, - "recall": 0.6264367816091954, - "f1": 0.6697388632872504 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.05, - "aggregate": { - "true_positive": 2674, - "false_positive": 1325, - "false_negative": 2130, - "precision": 0.6686671667916979, - "recall": 0.5566194837635304, - "f1": 0.6075201635805975 - }, - "regions": { - "brussels": { - "true_positive": 1134, - "false_positive": 340, - "false_negative": 714, - "precision": 0.7693351424694709, - "recall": 0.6136363636363636, - "f1": 0.6827212522576762 - }, - "flanders": { - "true_positive": 287, - "false_positive": 221, - "false_negative": 723, - "precision": 0.5649606299212598, - "recall": 0.28415841584158413, - "f1": 0.37812911725955206 - }, - "wallonia": { - "true_positive": 1253, - "false_positive": 764, - "false_negative": 693, - "precision": 0.6212196331184928, - "recall": 0.6438848920863309, - "f1": 0.6323492303810245 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 337, - "false_positive": 124, - "false_negative": 145, - "precision": 0.7310195227765727, - "recall": 0.6991701244813278, - "f1": 0.7147401908801696 - }, - "ath-rural-train": { - "true_positive": 606, - "false_positive": 360, - "false_negative": 330, - "precision": 0.6273291925465838, - "recall": 0.6474358974358975, - "f1": 0.6372239747634069 - }, - "charleroi-core-train": { - "true_positive": 311, - "false_positive": 156, - "false_negative": 215, - "precision": 0.6659528907922913, - "recall": 0.591254752851711, - "f1": 0.6263846928499497 - }, - "eupen-train": { - "true_positive": 336, - "false_positive": 248, - "false_negative": 148, - "precision": 0.5753424657534246, - "recall": 0.6942148760330579, - "f1": 0.6292134831460674 - }, - "genk-industry-train": { - "true_positive": 68, - "false_positive": 50, - "false_negative": 270, - "precision": 0.576271186440678, - "recall": 0.20118343195266272, - "f1": 0.2982456140350877 - }, - "ixelles-dense-train": { - "true_positive": 582, - "false_positive": 139, - "false_negative": 436, - "precision": 0.8072122052704577, - "recall": 0.5717092337917485, - "f1": 0.6693502012650948 - }, - "lokeren-ribbon-train": { - "true_positive": 207, - "false_positive": 139, - "false_negative": 419, - "precision": 0.5982658959537572, - "recall": 0.3306709265175719, - "f1": 0.425925925925926 - }, - "ostend-coastal-train": { - "true_positive": 12, - "false_positive": 32, - "false_negative": 34, - "precision": 0.2727272727272727, - "recall": 0.2608695652173913, - "f1": 0.2666666666666666 - }, - "uccle-residential-train": { - "true_positive": 215, - "false_positive": 77, - "false_negative": 133, - "precision": 0.7363013698630136, - "recall": 0.617816091954023, - "f1": 0.671875 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.06, - "aggregate": { - "true_positive": 2551, - "false_positive": 1086, - "false_negative": 2253, - "precision": 0.701402254605444, - "recall": 0.5310158201498751, - "f1": 0.604430754649923 - }, - "regions": { - "brussels": { - "true_positive": 1120, - "false_positive": 286, - "false_negative": 728, - "precision": 0.7965860597439545, - "recall": 0.6060606060606061, - "f1": 0.6883835279655808 - }, - "flanders": { - "true_positive": 203, - "false_positive": 151, - "false_negative": 807, - "precision": 0.5734463276836158, - "recall": 0.200990099009901, - "f1": 0.2976539589442815 - }, - "wallonia": { - "true_positive": 1228, - "false_positive": 649, - "false_negative": 718, - "precision": 0.6542354821523708, - "recall": 0.6310380267214799, - "f1": 0.642427413026419 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 333, - "false_positive": 108, - "false_negative": 149, - "precision": 0.7551020408163265, - "recall": 0.6908713692946058, - "f1": 0.7215601300108342 - }, - "ath-rural-train": { - "true_positive": 599, - "false_positive": 302, - "false_negative": 337, - "precision": 0.6648168701442841, - "recall": 0.6399572649572649, - "f1": 0.6521502449646162 - }, - "charleroi-core-train": { - "true_positive": 297, - "false_positive": 127, - "false_negative": 229, - "precision": 0.7004716981132075, - "recall": 0.564638783269962, - "f1": 0.6252631578947369 - }, - "eupen-train": { - "true_positive": 332, - "false_positive": 220, - "false_negative": 152, - "precision": 0.6014492753623188, - "recall": 0.6859504132231405, - "f1": 0.6409266409266409 - }, - "genk-industry-train": { - "true_positive": 57, - "false_positive": 40, - "false_negative": 281, - "precision": 0.5876288659793815, - "recall": 0.16863905325443787, - "f1": 0.2620689655172414 - }, - "ixelles-dense-train": { - "true_positive": 574, - "false_positive": 113, - "false_negative": 444, - "precision": 0.8355167394468704, - "recall": 0.5638506876227898, - "f1": 0.6733137829912023 - }, - "lokeren-ribbon-train": { - "true_positive": 136, - "false_positive": 84, - "false_negative": 490, - "precision": 0.6181818181818182, - "recall": 0.21725239616613418, - "f1": 0.3215130023640662 - }, - "ostend-coastal-train": { - "true_positive": 10, - "false_positive": 27, - "false_negative": 36, - "precision": 0.2702702702702703, - "recall": 0.21739130434782608, - "f1": 0.24096385542168675 - }, - "uccle-residential-train": { - "true_positive": 213, - "false_positive": 65, - "false_negative": 135, - "precision": 0.7661870503597122, - "recall": 0.6120689655172413, - "f1": 0.6805111821086263 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.075, - "aggregate": { - "true_positive": 2391, - "false_positive": 840, - "false_negative": 2413, - "precision": 0.7400185701021356, - "recall": 0.49771024146544546, - "f1": 0.5951462352209085 - }, - "regions": { - "brussels": { - "true_positive": 1096, - "false_positive": 214, - "false_negative": 752, - "precision": 0.8366412213740458, - "recall": 0.5930735930735931, - "f1": 0.6941101963267892 - }, - "flanders": { - "true_positive": 117, - "false_positive": 91, - "false_negative": 893, - "precision": 0.5625, - "recall": 0.11584158415841585, - "f1": 0.19211822660098524 - }, - "wallonia": { - "true_positive": 1178, - "false_positive": 535, - "false_negative": 768, - "precision": 0.6876824284880327, - "recall": 0.605344295991778, - "f1": 0.6438917737086636 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 327, - "false_positive": 79, - "false_negative": 155, - "precision": 0.8054187192118226, - "recall": 0.6784232365145229, - "f1": 0.7364864864864864 - }, - "ath-rural-train": { - "true_positive": 575, - "false_positive": 244, - "false_negative": 361, - "precision": 0.702075702075702, - "recall": 0.6143162393162394, - "f1": 0.6552706552706552 - }, - "charleroi-core-train": { - "true_positive": 279, - "false_positive": 108, - "false_negative": 247, - "precision": 0.7209302325581395, - "recall": 0.5304182509505704, - "f1": 0.6111719605695509 - }, - "eupen-train": { - "true_positive": 324, - "false_positive": 183, - "false_negative": 160, - "precision": 0.6390532544378699, - "recall": 0.6694214876033058, - "f1": 0.6538849646821393 - }, - "genk-industry-train": { - "true_positive": 39, - "false_positive": 26, - "false_negative": 299, - "precision": 0.6, - "recall": 0.11538461538461539, - "f1": 0.1935483870967742 - }, - "ixelles-dense-train": { - "true_positive": 559, - "false_positive": 86, - "false_negative": 459, - "precision": 0.8666666666666667, - "recall": 0.5491159135559921, - "f1": 0.6722790138304269 - }, - "lokeren-ribbon-train": { - "true_positive": 72, - "false_positive": 44, - "false_negative": 554, - "precision": 0.6206896551724138, - "recall": 0.11501597444089456, - "f1": 0.1940700808625337 - }, - "ostend-coastal-train": { - "true_positive": 6, - "false_positive": 21, - "false_negative": 40, - "precision": 0.2222222222222222, - "recall": 0.13043478260869565, - "f1": 0.16438356164383558 - }, - "uccle-residential-train": { - "true_positive": 210, - "false_positive": 49, - "false_negative": 138, - "precision": 0.8108108108108109, - "recall": 0.603448275862069, - "f1": 0.6919275123558484 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.1, - "aggregate": { - "true_positive": 2214, - "false_positive": 607, - "false_negative": 2590, - "precision": 0.7848280751506558, - "recall": 0.46086594504579514, - "f1": 0.5807213114754097 - }, - "regions": { - "brussels": { - "true_positive": 1061, - "false_positive": 147, - "false_negative": 787, - "precision": 0.8783112582781457, - "recall": 0.5741341991341992, - "f1": 0.694371727748691 - }, - "flanders": { - "true_positive": 55, - "false_positive": 44, - "false_negative": 955, - "precision": 0.5555555555555556, - "recall": 0.054455445544554455, - "f1": 0.09918845807033362 - }, - "wallonia": { - "true_positive": 1098, - "false_positive": 416, - "false_negative": 848, - "precision": 0.7252311756935271, - "recall": 0.5642343268242549, - "f1": 0.6346820809248556 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 318, - "false_positive": 58, - "false_negative": 164, - "precision": 0.8457446808510638, - "recall": 0.6597510373443983, - "f1": 0.7412587412587412 - }, - "ath-rural-train": { - "true_positive": 538, - "false_positive": 190, - "false_negative": 398, - "precision": 0.739010989010989, - "recall": 0.5747863247863247, - "f1": 0.6466346153846153 - }, - "charleroi-core-train": { - "true_positive": 252, - "false_positive": 81, - "false_negative": 274, - "precision": 0.7567567567567568, - "recall": 0.4790874524714829, - "f1": 0.5867287543655413 - }, - "eupen-train": { - "true_positive": 308, - "false_positive": 145, - "false_negative": 176, - "precision": 0.6799116997792495, - "recall": 0.6363636363636364, - "f1": 0.6574172892209178 - }, - "genk-industry-train": { - "true_positive": 31, - "false_positive": 15, - "false_negative": 307, - "precision": 0.6739130434782609, - "recall": 0.09171597633136094, - "f1": 0.16145833333333331 - }, - "ixelles-dense-train": { - "true_positive": 538, - "false_positive": 57, - "false_negative": 480, - "precision": 0.9042016806722689, - "recall": 0.5284872298624754, - "f1": 0.6670799752014879 - }, - "lokeren-ribbon-train": { - "true_positive": 19, - "false_positive": 17, - "false_negative": 607, - "precision": 0.5277777777777778, - "recall": 0.03035143769968051, - "f1": 0.05740181268882175 - }, - "ostend-coastal-train": { - "true_positive": 5, - "false_positive": 12, - "false_negative": 41, - "precision": 0.29411764705882354, - "recall": 0.10869565217391304, - "f1": 0.15873015873015875 - }, - "uccle-residential-train": { - "true_positive": 205, - "false_positive": 32, - "false_negative": 143, - "precision": 0.8649789029535865, - "recall": 0.5890804597701149, - "f1": 0.7008547008547009 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.125, - "aggregate": { - "true_positive": 2096, - "false_positive": 469, - "false_negative": 2708, - "precision": 0.8171539961013645, - "recall": 0.4363030807660283, - "f1": 0.5688695888180214 - }, - "regions": { - "brussels": { - "true_positive": 1037, - "false_positive": 103, - "false_negative": 811, - "precision": 0.9096491228070176, - "recall": 0.5611471861471862, - "f1": 0.6941097724230255 - }, - "flanders": { - "true_positive": 25, - "false_positive": 23, - "false_negative": 985, - "precision": 0.5208333333333334, - "recall": 0.024752475247524754, - "f1": 0.04725897920604915 - }, - "wallonia": { - "true_positive": 1034, - "false_positive": 343, - "false_negative": 912, - "precision": 0.7509077705156136, - "recall": 0.5313463514902363, - "f1": 0.6223292205838099 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 311, - "false_positive": 34, - "false_negative": 171, - "precision": 0.9014492753623189, - "recall": 0.6452282157676349, - "f1": 0.7521160822249093 - }, - "ath-rural-train": { - "true_positive": 506, - "false_positive": 149, - "false_negative": 430, - "precision": 0.7725190839694657, - "recall": 0.5405982905982906, - "f1": 0.6360779384035198 - }, - "charleroi-core-train": { - "true_positive": 229, - "false_positive": 66, - "false_negative": 297, - "precision": 0.7762711864406779, - "recall": 0.435361216730038, - "f1": 0.5578562728380024 - }, - "eupen-train": { - "true_positive": 299, - "false_positive": 128, - "false_negative": 185, - "precision": 0.7002341920374707, - "recall": 0.6177685950413223, - "f1": 0.6564215148188803 - }, - "genk-industry-train": { - "true_positive": 13, - "false_positive": 10, - "false_negative": 325, - "precision": 0.5652173913043478, - "recall": 0.038461538461538464, - "f1": 0.07202216066481995 - }, - "ixelles-dense-train": { - "true_positive": 524, - "false_positive": 42, - "false_negative": 494, - "precision": 0.9257950530035336, - "recall": 0.5147347740667977, - "f1": 0.6616161616161617 - }, - "lokeren-ribbon-train": { - "true_positive": 8, - "false_positive": 8, - "false_negative": 618, - "precision": 0.5, - "recall": 0.012779552715654952, - "f1": 0.024922118380062308 - }, - "ostend-coastal-train": { - "true_positive": 4, - "false_positive": 5, - "false_negative": 42, - "precision": 0.4444444444444444, - "recall": 0.08695652173913043, - "f1": 0.14545454545454548 - }, - "uccle-residential-train": { - "true_positive": 202, - "false_positive": 27, - "false_negative": 146, - "precision": 0.8820960698689956, - "recall": 0.5804597701149425, - "f1": 0.7001733102253034 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.15, - "aggregate": { - "true_positive": 1998, - "false_positive": 390, - "false_negative": 2806, - "precision": 0.8366834170854272, - "recall": 0.41590341382181517, - "f1": 0.5556173526140157 - }, - "regions": { - "brussels": { - "true_positive": 1009, - "false_positive": 87, - "false_negative": 839, - "precision": 0.9206204379562044, - "recall": 0.545995670995671, - "f1": 0.6854619565217392 - }, - "flanders": { - "true_positive": 9, - "false_positive": 15, - "false_negative": 1001, - "precision": 0.375, - "recall": 0.00891089108910891, - "f1": 0.01740812379110251 - }, - "wallonia": { - "true_positive": 980, - "false_positive": 288, - "false_negative": 966, - "precision": 0.7728706624605678, - "recall": 0.5035971223021583, - "f1": 0.6098319850653391 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 298, - "false_positive": 31, - "false_negative": 184, - "precision": 0.9057750759878419, - "recall": 0.6182572614107884, - "f1": 0.7348951911220714 - }, - "ath-rural-train": { - "true_positive": 481, - "false_positive": 130, - "false_negative": 455, - "precision": 0.7872340425531915, - "recall": 0.5138888888888888, - "f1": 0.6218487394957983 - }, - "charleroi-core-train": { - "true_positive": 212, - "false_positive": 52, - "false_negative": 314, - "precision": 0.803030303030303, - "recall": 0.40304182509505704, - "f1": 0.5367088607594936 - }, - "eupen-train": { - "true_positive": 287, - "false_positive": 106, - "false_negative": 197, - "precision": 0.7302798982188295, - "recall": 0.5929752066115702, - "f1": 0.6545039908779932 - }, - "genk-industry-train": { - "true_positive": 5, - "false_positive": 7, - "false_negative": 333, - "precision": 0.4166666666666667, - "recall": 0.014792899408284023, - "f1": 0.02857142857142857 - }, - "ixelles-dense-train": { - "true_positive": 511, - "false_positive": 32, - "false_negative": 507, - "precision": 0.9410681399631676, - "recall": 0.5019646365422397, - "f1": 0.6547085201793722 - }, - "lokeren-ribbon-train": { - "true_positive": 1, - "false_positive": 4, - "false_negative": 625, - "precision": 0.2, - "recall": 0.001597444089456869, - "f1": 0.003169572107765452 - }, - "ostend-coastal-train": { - "true_positive": 3, - "false_positive": 4, - "false_negative": 43, - "precision": 0.42857142857142855, - "recall": 0.06521739130434782, - "f1": 0.11320754716981131 - }, - "uccle-residential-train": { - "true_positive": 200, - "false_positive": 24, - "false_negative": 148, - "precision": 0.8928571428571429, - "recall": 0.5747126436781609, - "f1": 0.6993006993006994 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.2, - "aggregate": { - "true_positive": 1809, - "false_positive": 251, - "false_negative": 2995, - "precision": 0.8781553398058253, - "recall": 0.3765611990008326, - "f1": 0.5270979020979021 - }, - "regions": { - "brussels": { - "true_positive": 953, - "false_positive": 48, - "false_negative": 895, - "precision": 0.952047952047952, - "recall": 0.5156926406926406, - "f1": 0.6690066690066689 - }, - "flanders": { - "true_positive": 3, - "false_positive": 7, - "false_negative": 1007, - "precision": 0.3, - "recall": 0.0029702970297029703, - "f1": 0.0058823529411764705 - }, - "wallonia": { - "true_positive": 853, - "false_positive": 196, - "false_negative": 1093, - "precision": 0.8131553860819828, - "recall": 0.43833504624871533, - "f1": 0.5696160267111853 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 280, - "false_positive": 17, - "false_negative": 202, - "precision": 0.9427609427609428, - "recall": 0.5809128630705395, - "f1": 0.7188703465982029 - }, - "ath-rural-train": { - "true_positive": 426, - "false_positive": 86, - "false_negative": 510, - "precision": 0.83203125, - "recall": 0.4551282051282051, - "f1": 0.5883977900552486 - }, - "charleroi-core-train": { - "true_positive": 175, - "false_positive": 34, - "false_negative": 351, - "precision": 0.8373205741626795, - "recall": 0.33269961977186313, - "f1": 0.4761904761904761 - }, - "eupen-train": { - "true_positive": 252, - "false_positive": 76, - "false_negative": 232, - "precision": 0.7682926829268293, - "recall": 0.5206611570247934, - "f1": 0.6206896551724138 - }, - "genk-industry-train": { - "true_positive": 2, - "false_positive": 5, - "false_negative": 336, - "precision": 0.2857142857142857, - "recall": 0.005917159763313609, - "f1": 0.011594202898550725 - }, - "ixelles-dense-train": { - "true_positive": 478, - "false_positive": 15, - "false_negative": 540, - "precision": 0.9695740365111561, - "recall": 0.46954813359528486, - "f1": 0.6326935804103243 - }, - "lokeren-ribbon-train": { - "true_positive": 0, - "false_positive": 1, - "false_negative": 626, - "precision": 0.0, - "recall": 0.0, - "f1": 0.0 - }, - "ostend-coastal-train": { - "true_positive": 1, - "false_positive": 1, - "false_negative": 45, - "precision": 0.5, - "recall": 0.021739130434782608, - "f1": 0.041666666666666664 - }, - "uccle-residential-train": { - "true_positive": 195, - "false_positive": 16, - "false_negative": 153, - "precision": 0.9241706161137441, - "recall": 0.5603448275862069, - "f1": 0.697674418604651 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.25, - "aggregate": { - "true_positive": 1611, - "false_positive": 164, - "false_negative": 3193, - "precision": 0.9076056338028169, - "recall": 0.335345545378851, - "f1": 0.48974008207934333 - }, - "regions": { - "brussels": { - "true_positive": 878, - "false_positive": 28, - "false_negative": 970, - "precision": 0.9690949227373068, - "recall": 0.4751082251082251, - "f1": 0.6376180101670297 - }, - "flanders": { - "true_positive": 3, - "false_positive": 5, - "false_negative": 1007, - "precision": 0.375, - "recall": 0.0029702970297029703, - "f1": 0.005893909626719058 - }, - "wallonia": { - "true_positive": 730, - "false_positive": 131, - "false_negative": 1216, - "precision": 0.8478513356562137, - "recall": 0.3751284686536485, - "f1": 0.5201282508015675 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 252, - "false_positive": 9, - "false_negative": 230, - "precision": 0.9655172413793104, - "recall": 0.5228215767634855, - "f1": 0.6783310901749664 - }, - "ath-rural-train": { - "true_positive": 361, - "false_positive": 52, - "false_negative": 575, - "precision": 0.87409200968523, - "recall": 0.3856837606837607, - "f1": 0.5352112676056339 - }, - "charleroi-core-train": { - "true_positive": 148, - "false_positive": 20, - "false_negative": 378, - "precision": 0.8809523809523809, - "recall": 0.2813688212927757, - "f1": 0.42651296829971186 - }, - "eupen-train": { - "true_positive": 221, - "false_positive": 59, - "false_negative": 263, - "precision": 0.7892857142857143, - "recall": 0.45661157024793386, - "f1": 0.5785340314136126 - }, - "genk-industry-train": { - "true_positive": 2, - "false_positive": 5, - "false_negative": 336, - "precision": 0.2857142857142857, - "recall": 0.005917159763313609, - "f1": 0.011594202898550725 - }, - "ixelles-dense-train": { - "true_positive": 442, - "false_positive": 10, - "false_negative": 576, - "precision": 0.9778761061946902, - "recall": 0.43418467583497056, - "f1": 0.601360544217687 - }, - "lokeren-ribbon-train": { - "true_positive": 0, - "false_positive": 0, - "false_negative": 626, - "precision": 1.0, - "recall": 0.0, - "f1": 0.0 - }, - "ostend-coastal-train": { - "true_positive": 1, - "false_positive": 0, - "false_negative": 45, - "precision": 1.0, - "recall": 0.021739130434782608, - "f1": 0.042553191489361694 - }, - "uccle-residential-train": { - "true_positive": 184, - "false_positive": 9, - "false_negative": 164, - "precision": 0.9533678756476683, - "recall": 0.5287356321839081, - "f1": 0.6802218114602587 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.3, - "aggregate": { - "true_positive": 1387, - "false_positive": 113, - "false_negative": 3417, - "precision": 0.9246666666666666, - "recall": 0.2887177352206495, - "f1": 0.44003807106598986 - }, - "regions": { - "brussels": { - "true_positive": 815, - "false_positive": 21, - "false_negative": 1033, - "precision": 0.9748803827751196, - "recall": 0.44101731601731603, - "f1": 0.6073025335320417 - }, - "flanders": { - "true_positive": 2, - "false_positive": 2, - "false_negative": 1008, - "precision": 0.5, - "recall": 0.0019801980198019802, - "f1": 0.0039447731755424065 - }, - "wallonia": { - "true_positive": 570, - "false_positive": 90, - "false_negative": 1376, - "precision": 0.8636363636363636, - "recall": 0.29290853031860226, - "f1": 0.43745203376822717 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 227, - "false_positive": 6, - "false_negative": 255, - "precision": 0.9742489270386266, - "recall": 0.470954356846473, - "f1": 0.634965034965035 - }, - "ath-rural-train": { - "true_positive": 276, - "false_positive": 34, - "false_negative": 660, - "precision": 0.8903225806451613, - "recall": 0.2948717948717949, - "f1": 0.44301765650080255 - }, - "charleroi-core-train": { - "true_positive": 114, - "false_positive": 8, - "false_negative": 412, - "precision": 0.9344262295081968, - "recall": 0.21673003802281368, - "f1": 0.3518518518518518 - }, - "eupen-train": { - "true_positive": 180, - "false_positive": 48, - "false_negative": 304, - "precision": 0.7894736842105263, - "recall": 0.371900826446281, - "f1": 0.5056179775280898 - }, - "genk-industry-train": { - "true_positive": 1, - "false_positive": 2, - "false_negative": 337, - "precision": 0.3333333333333333, - "recall": 0.0029585798816568047, - "f1": 0.005865102639296187 - }, - "ixelles-dense-train": { - "true_positive": 413, - "false_positive": 6, - "false_negative": 605, - "precision": 0.9856801909307876, - "recall": 0.4056974459724951, - "f1": 0.5748086290883786 - }, - "lokeren-ribbon-train": { - "true_positive": 0, - "false_positive": 0, - "false_negative": 626, - "precision": 1.0, - "recall": 0.0, - "f1": 0.0 - }, - "ostend-coastal-train": { - "true_positive": 1, - "false_positive": 0, - "false_negative": 45, - "precision": 1.0, - "recall": 0.021739130434782608, - "f1": 0.042553191489361694 - }, - "uccle-residential-train": { - "true_positive": 175, - "false_positive": 9, - "false_negative": 173, - "precision": 0.9510869565217391, - "recall": 0.5028735632183908, - "f1": 0.6578947368421053 - } - }, - "pure_empty_false_positives": 0 - } - ] -} \ No newline at end of file diff --git a/.codex-input/v35-calibration.json b/.codex-input/v35-calibration.json deleted file mode 100644 index a0821828..00000000 --- a/.codex-input/v35-calibration.json +++ /dev/null @@ -1,1929 +0,0 @@ -{ - "schema_version": 1, - "model": "/app/storage/training/building-be-v35-yolo11l-balanced-flanders-r1/iteration-001/candidate.pt", - "summary": "/app/storage/operator-data/building-be-v30-rotated-holdouts-r1/calibration/yolo_tile_dataset_summary.json", - "split": "val", - "match_iou": 0.25, - "test_time_augmentation": false, - "inference_imgsz": 640, - "max_detections_per_tile": 1000, - "nms_iou": 0.3, - "containment_nms": 0.95, - "box_scale": 1.0, - "box_offset_x": 0.0, - "box_offset_y": 0.0, - "additional_model": null, - "ensemble_mode": null, - "ensemble_match_iou": null, - "proposal_classifier": null, - "proposal_classifier_threshold": null, - "proposal_crop_scale": null, - "proposal_classifier_batch": null, - "tile_count": 144, - "sweeps": [ - { - "threshold": 0.01, - "aggregate": { - "true_positive": 3285, - "false_positive": 4582, - "false_negative": 1519, - "precision": 0.417567052243549, - "recall": 0.6838051623646961, - "f1": 0.5185068266119486 - }, - "regions": { - "brussels": { - "true_positive": 1240, - "false_positive": 1289, - "false_negative": 608, - "precision": 0.4903123764333729, - "recall": 0.670995670995671, - "f1": 0.5665981265707106 - }, - "flanders": { - "true_positive": 615, - "false_positive": 1580, - "false_negative": 395, - "precision": 0.28018223234624146, - "recall": 0.6089108910891089, - "f1": 0.3837753510140406 - }, - "wallonia": { - "true_positive": 1430, - "false_positive": 1713, - "false_negative": 516, - "precision": 0.4549793191218581, - "recall": 0.7348406988694759, - "f1": 0.5619964629593242 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 370, - "false_positive": 455, - "false_negative": 112, - "precision": 0.4484848484848485, - "recall": 0.7676348547717843, - "f1": 0.5661820964039785 - }, - "ath-rural-train": { - "true_positive": 691, - "false_positive": 720, - "false_negative": 245, - "precision": 0.4897236002834869, - "recall": 0.7382478632478633, - "f1": 0.5888368129527056 - }, - "charleroi-core-train": { - "true_positive": 366, - "false_positive": 459, - "false_negative": 160, - "precision": 0.44363636363636366, - "recall": 0.6958174904942965, - "f1": 0.541820873427091 - }, - "eupen-train": { - "true_positive": 373, - "false_positive": 534, - "false_negative": 111, - "precision": 0.41124586549062847, - "recall": 0.7706611570247934, - "f1": 0.5363048166786485 - }, - "genk-industry-train": { - "true_positive": 149, - "false_positive": 263, - "false_negative": 189, - "precision": 0.3616504854368932, - "recall": 0.4408284023668639, - "f1": 0.3973333333333333 - }, - "ixelles-dense-train": { - "true_positive": 638, - "false_positive": 441, - "false_negative": 380, - "precision": 0.5912882298424467, - "recall": 0.6267190569744597, - "f1": 0.6084883166428231 - }, - "lokeren-ribbon-train": { - "true_positive": 435, - "false_positive": 961, - "false_negative": 191, - "precision": 0.3116045845272206, - "recall": 0.694888178913738, - "f1": 0.43026706231454004 - }, - "ostend-coastal-train": { - "true_positive": 31, - "false_positive": 356, - "false_negative": 15, - "precision": 0.08010335917312661, - "recall": 0.6739130434782609, - "f1": 0.14318706697459582 - }, - "uccle-residential-train": { - "true_positive": 232, - "false_positive": 393, - "false_negative": 116, - "precision": 0.3712, - "recall": 0.6666666666666666, - "f1": 0.4768756423432683 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.015, - "aggregate": { - "true_positive": 3177, - "false_positive": 3489, - "false_negative": 1627, - "precision": 0.4765976597659766, - "recall": 0.6613238967527061, - "f1": 0.5539668700959024 - }, - "regions": { - "brussels": { - "true_positive": 1217, - "false_positive": 906, - "false_negative": 631, - "precision": 0.5732454074422987, - "recall": 0.6585497835497836, - "f1": 0.6129438428607404 - }, - "flanders": { - "true_positive": 569, - "false_positive": 1166, - "false_negative": 441, - "precision": 0.3279538904899135, - "recall": 0.5633663366336633, - "f1": 0.4145719489981785 - }, - "wallonia": { - "true_positive": 1391, - "false_positive": 1417, - "false_negative": 555, - "precision": 0.49537037037037035, - "recall": 0.7147995889003084, - "f1": 0.5851914177534708 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 361, - "false_positive": 326, - "false_negative": 121, - "precision": 0.5254730713245997, - "recall": 0.7489626556016598, - "f1": 0.6176218990590248 - }, - "ath-rural-train": { - "true_positive": 671, - "false_positive": 620, - "false_negative": 265, - "precision": 0.5197521301316809, - "recall": 0.7168803418803419, - "f1": 0.6026044005388415 - }, - "charleroi-core-train": { - "true_positive": 354, - "false_positive": 353, - "false_negative": 172, - "precision": 0.5007072135785007, - "recall": 0.6730038022813688, - "f1": 0.5742092457420924 - }, - "eupen-train": { - "true_positive": 366, - "false_positive": 444, - "false_negative": 118, - "precision": 0.45185185185185184, - "recall": 0.756198347107438, - "f1": 0.5656877897990726 - }, - "genk-industry-train": { - "true_positive": 130, - "false_positive": 196, - "false_negative": 208, - "precision": 0.3987730061349693, - "recall": 0.38461538461538464, - "f1": 0.39156626506024095 - }, - "ixelles-dense-train": { - "true_positive": 628, - "false_positive": 331, - "false_negative": 390, - "precision": 0.6548488008342023, - "recall": 0.6168958742632613, - "f1": 0.635306019221042 - }, - "lokeren-ribbon-train": { - "true_positive": 411, - "false_positive": 717, - "false_negative": 215, - "precision": 0.36436170212765956, - "recall": 0.6565495207667732, - "f1": 0.4686431014823261 - }, - "ostend-coastal-train": { - "true_positive": 28, - "false_positive": 253, - "false_negative": 18, - "precision": 0.099644128113879, - "recall": 0.6086956521739131, - "f1": 0.1712538226299694 - }, - "uccle-residential-train": { - "true_positive": 228, - "false_positive": 249, - "false_negative": 120, - "precision": 0.4779874213836478, - "recall": 0.6551724137931034, - "f1": 0.5527272727272727 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.02, - "aggregate": { - "true_positive": 3092, - "false_positive": 2812, - "false_negative": 1712, - "precision": 0.5237127371273713, - "recall": 0.6436303080766028, - "f1": 0.5775121404557341 - }, - "regions": { - "brussels": { - "true_positive": 1193, - "false_positive": 704, - "false_negative": 655, - "precision": 0.6288877174486031, - "recall": 0.6455627705627706, - "f1": 0.6371161548731642 - }, - "flanders": { - "true_positive": 525, - "false_positive": 855, - "false_negative": 485, - "precision": 0.3804347826086957, - "recall": 0.5198019801980198, - "f1": 0.43933054393305443 - }, - "wallonia": { - "true_positive": 1374, - "false_positive": 1253, - "false_negative": 572, - "precision": 0.523030072325847, - "recall": 0.7060637204522097, - "f1": 0.6009184342882133 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 351, - "false_positive": 242, - "false_negative": 131, - "precision": 0.5919055649241147, - "recall": 0.7282157676348547, - "f1": 0.6530232558139535 - }, - "ath-rural-train": { - "true_positive": 663, - "false_positive": 559, - "false_negative": 273, - "precision": 0.5425531914893617, - "recall": 0.7083333333333334, - "f1": 0.6144578313253012 - }, - "charleroi-core-train": { - "true_positive": 349, - "false_positive": 304, - "false_negative": 177, - "precision": 0.5344563552833078, - "recall": 0.6634980988593155, - "f1": 0.5920271416454623 - }, - "eupen-train": { - "true_positive": 362, - "false_positive": 390, - "false_negative": 122, - "precision": 0.48138297872340424, - "recall": 0.7479338842975206, - "f1": 0.5857605177993528 - }, - "genk-industry-train": { - "true_positive": 116, - "false_positive": 146, - "false_negative": 222, - "precision": 0.44274809160305345, - "recall": 0.3431952662721893, - "f1": 0.3866666666666666 - }, - "ixelles-dense-train": { - "true_positive": 616, - "false_positive": 278, - "false_negative": 402, - "precision": 0.6890380313199105, - "recall": 0.6051080550098232, - "f1": 0.6443514644351466 - }, - "lokeren-ribbon-train": { - "true_positive": 381, - "false_positive": 530, - "false_negative": 245, - "precision": 0.41822173435784854, - "recall": 0.6086261980830671, - "f1": 0.49577098243331164 - }, - "ostend-coastal-train": { - "true_positive": 28, - "false_positive": 179, - "false_negative": 18, - "precision": 0.13526570048309178, - "recall": 0.6086956521739131, - "f1": 0.22134387351778656 - }, - "uccle-residential-train": { - "true_positive": 226, - "false_positive": 184, - "false_negative": 122, - "precision": 0.551219512195122, - "recall": 0.6494252873563219, - "f1": 0.5963060686015832 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.025, - "aggregate": { - "true_positive": 3008, - "false_positive": 2376, - "false_negative": 1796, - "precision": 0.5586924219910847, - "recall": 0.6261448792672772, - "f1": 0.5904986258343149 - }, - "regions": { - "brussels": { - "true_positive": 1172, - "false_positive": 572, - "false_negative": 676, - "precision": 0.6720183486238532, - "recall": 0.6341991341991342, - "f1": 0.6525612472160356 - }, - "flanders": { - "true_positive": 488, - "false_positive": 691, - "false_negative": 522, - "precision": 0.41391009329940626, - "recall": 0.48316831683168315, - "f1": 0.4458656920968479 - }, - "wallonia": { - "true_positive": 1348, - "false_positive": 1113, - "false_negative": 598, - "precision": 0.5477448191791955, - "recall": 0.6927029804727647, - "f1": 0.6117540276832312 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 345, - "false_positive": 200, - "false_negative": 137, - "precision": 0.6330275229357798, - "recall": 0.7157676348547718, - "f1": 0.6718597857838364 - }, - "ath-rural-train": { - "true_positive": 650, - "false_positive": 503, - "false_negative": 286, - "precision": 0.5637467476149176, - "recall": 0.6944444444444444, - "f1": 0.6223073240785064 - }, - "charleroi-core-train": { - "true_positive": 338, - "false_positive": 257, - "false_negative": 188, - "precision": 0.5680672268907563, - "recall": 0.6425855513307985, - "f1": 0.6030330062444247 - }, - "eupen-train": { - "true_positive": 360, - "false_positive": 353, - "false_negative": 124, - "precision": 0.5049088359046283, - "recall": 0.743801652892562, - "f1": 0.6015037593984962 - }, - "genk-industry-train": { - "true_positive": 105, - "false_positive": 119, - "false_negative": 233, - "precision": 0.46875, - "recall": 0.3106508875739645, - "f1": 0.3736654804270463 - }, - "ixelles-dense-train": { - "true_positive": 605, - "false_positive": 227, - "false_negative": 413, - "precision": 0.7271634615384616, - "recall": 0.5943025540275049, - "f1": 0.6540540540540541 - }, - "lokeren-ribbon-train": { - "true_positive": 357, - "false_positive": 429, - "false_negative": 269, - "precision": 0.4541984732824427, - "recall": 0.5702875399361023, - "f1": 0.5056657223796034 - }, - "ostend-coastal-train": { - "true_positive": 26, - "false_positive": 143, - "false_negative": 20, - "precision": 0.15384615384615385, - "recall": 0.5652173913043478, - "f1": 0.24186046511627907 - }, - "uccle-residential-train": { - "true_positive": 222, - "false_positive": 145, - "false_negative": 126, - "precision": 0.6049046321525886, - "recall": 0.6379310344827587, - "f1": 0.620979020979021 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.03, - "aggregate": { - "true_positive": 2933, - "false_positive": 2066, - "false_negative": 1871, - "precision": 0.5867173434686938, - "recall": 0.6105328892589509, - "f1": 0.5983882484953585 - }, - "regions": { - "brussels": { - "true_positive": 1157, - "false_positive": 481, - "false_negative": 691, - "precision": 0.7063492063492064, - "recall": 0.6260822510822511, - "f1": 0.6637980493402181 - }, - "flanders": { - "true_positive": 450, - "false_positive": 597, - "false_negative": 560, - "precision": 0.4297994269340974, - "recall": 0.44554455445544555, - "f1": 0.4375303840544482 - }, - "wallonia": { - "true_positive": 1326, - "false_positive": 988, - "false_negative": 620, - "precision": 0.5730337078651685, - "recall": 0.6813977389516958, - "f1": 0.6225352112676056 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 341, - "false_positive": 171, - "false_negative": 141, - "precision": 0.666015625, - "recall": 0.7074688796680498, - "f1": 0.6861167002012072 - }, - "ath-rural-train": { - "true_positive": 642, - "false_positive": 449, - "false_negative": 294, - "precision": 0.5884509624197983, - "recall": 0.6858974358974359, - "f1": 0.6334484459792797 - }, - "charleroi-core-train": { - "true_positive": 328, - "false_positive": 224, - "false_negative": 198, - "precision": 0.5942028985507246, - "recall": 0.623574144486692, - "f1": 0.6085343228200372 - }, - "eupen-train": { - "true_positive": 356, - "false_positive": 315, - "false_negative": 128, - "precision": 0.5305514157973175, - "recall": 0.7355371900826446, - "f1": 0.6164502164502165 - }, - "genk-industry-train": { - "true_positive": 98, - "false_positive": 106, - "false_negative": 240, - "precision": 0.4803921568627451, - "recall": 0.28994082840236685, - "f1": 0.36162361623616235 - }, - "ixelles-dense-train": { - "true_positive": 595, - "false_positive": 188, - "false_negative": 423, - "precision": 0.7598978288633461, - "recall": 0.5844793713163065, - "f1": 0.6607440310938367 - }, - "lokeren-ribbon-train": { - "true_positive": 331, - "false_positive": 371, - "false_negative": 295, - "precision": 0.47150997150997154, - "recall": 0.5287539936102237, - "f1": 0.4984939759036145 - }, - "ostend-coastal-train": { - "true_positive": 21, - "false_positive": 120, - "false_negative": 25, - "precision": 0.14893617021276595, - "recall": 0.45652173913043476, - "f1": 0.22459893048128343 - }, - "uccle-residential-train": { - "true_positive": 221, - "false_positive": 122, - "false_negative": 127, - "precision": 0.6443148688046647, - "recall": 0.6350574712643678, - "f1": 0.6396526772793054 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.035, - "aggregate": { - "true_positive": 2883, - "false_positive": 1821, - "false_negative": 1921, - "precision": 0.6128826530612245, - "recall": 0.6001248959200666, - "f1": 0.6064366848969288 - }, - "regions": { - "brussels": { - "true_positive": 1145, - "false_positive": 416, - "false_negative": 703, - "precision": 0.7335041639974376, - "recall": 0.6195887445887446, - "f1": 0.671751246699912 - }, - "flanders": { - "true_positive": 421, - "false_positive": 510, - "false_negative": 589, - "precision": 0.4522019334049409, - "recall": 0.4168316831683168, - "f1": 0.43379701184956204 - }, - "wallonia": { - "true_positive": 1317, - "false_positive": 895, - "false_negative": 629, - "precision": 0.5953887884267631, - "recall": 0.6767728674203495, - "f1": 0.6334776334776334 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 336, - "false_positive": 145, - "false_negative": 146, - "precision": 0.6985446985446986, - "recall": 0.6970954356846473, - "f1": 0.6978193146417445 - }, - "ath-rural-train": { - "true_positive": 638, - "false_positive": 407, - "false_negative": 298, - "precision": 0.6105263157894737, - "recall": 0.6816239316239316, - "f1": 0.6441191317516406 - }, - "charleroi-core-train": { - "true_positive": 324, - "false_positive": 196, - "false_negative": 202, - "precision": 0.6230769230769231, - "recall": 0.6159695817490495, - "f1": 0.6195028680688336 - }, - "eupen-train": { - "true_positive": 355, - "false_positive": 292, - "false_negative": 129, - "precision": 0.5486862442040186, - "recall": 0.7334710743801653, - "f1": 0.627763041556145 - }, - "genk-industry-train": { - "true_positive": 88, - "false_positive": 93, - "false_negative": 250, - "precision": 0.4861878453038674, - "recall": 0.2603550295857988, - "f1": 0.33911368015414256 - }, - "ixelles-dense-train": { - "true_positive": 589, - "false_positive": 167, - "false_negative": 429, - "precision": 0.7791005291005291, - "recall": 0.5785854616895875, - "f1": 0.6640360766629086 - }, - "lokeren-ribbon-train": { - "true_positive": 317, - "false_positive": 322, - "false_negative": 309, - "precision": 0.49608763693270735, - "recall": 0.5063897763578274, - "f1": 0.5011857707509881 - }, - "ostend-coastal-train": { - "true_positive": 16, - "false_positive": 95, - "false_negative": 30, - "precision": 0.14414414414414414, - "recall": 0.34782608695652173, - "f1": 0.20382165605095542 - }, - "uccle-residential-train": { - "true_positive": 220, - "false_positive": 104, - "false_negative": 128, - "precision": 0.6790123456790124, - "recall": 0.632183908045977, - "f1": 0.6547619047619048 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.04, - "aggregate": { - "true_positive": 2823, - "false_positive": 1629, - "false_negative": 1981, - "precision": 0.6340970350404312, - "recall": 0.5876353039134055, - "f1": 0.6099827139152981 - }, - "regions": { - "brussels": { - "true_positive": 1132, - "false_positive": 362, - "false_negative": 716, - "precision": 0.7576974564926372, - "recall": 0.6125541125541125, - "f1": 0.6774386594853381 - }, - "flanders": { - "true_positive": 398, - "false_positive": 430, - "false_negative": 612, - "precision": 0.4806763285024155, - "recall": 0.3940594059405941, - "f1": 0.4330794341675735 - }, - "wallonia": { - "true_positive": 1293, - "false_positive": 837, - "false_negative": 653, - "precision": 0.6070422535211267, - "recall": 0.6644398766700925, - "f1": 0.6344455348380765 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 334, - "false_positive": 125, - "false_negative": 148, - "precision": 0.7276688453159041, - "recall": 0.6929460580912863, - "f1": 0.7098831030818278 - }, - "ath-rural-train": { - "true_positive": 627, - "false_positive": 388, - "false_negative": 309, - "precision": 0.6177339901477833, - "recall": 0.6698717948717948, - "f1": 0.6427473090722706 - }, - "charleroi-core-train": { - "true_positive": 316, - "false_positive": 177, - "false_negative": 210, - "precision": 0.640973630831643, - "recall": 0.6007604562737643, - "f1": 0.620215897939156 - }, - "eupen-train": { - "true_positive": 350, - "false_positive": 272, - "false_negative": 134, - "precision": 0.5627009646302251, - "recall": 0.7231404958677686, - "f1": 0.6329113924050633 - }, - "genk-industry-train": { - "true_positive": 84, - "false_positive": 78, - "false_negative": 254, - "precision": 0.5185185185185185, - "recall": 0.2485207100591716, - "f1": 0.336 - }, - "ixelles-dense-train": { - "true_positive": 582, - "false_positive": 149, - "false_negative": 436, - "precision": 0.7961696306429549, - "recall": 0.5717092337917485, - "f1": 0.6655231560891938 - }, - "lokeren-ribbon-train": { - "true_positive": 299, - "false_positive": 286, - "false_negative": 327, - "precision": 0.5111111111111111, - "recall": 0.4776357827476038, - "f1": 0.4938067712634186 - }, - "ostend-coastal-train": { - "true_positive": 15, - "false_positive": 66, - "false_negative": 31, - "precision": 0.18518518518518517, - "recall": 0.32608695652173914, - "f1": 0.23622047244094485 - }, - "uccle-residential-train": { - "true_positive": 216, - "false_positive": 88, - "false_negative": 132, - "precision": 0.7105263157894737, - "recall": 0.6206896551724138, - "f1": 0.6625766871165644 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.045, - "aggregate": { - "true_positive": 2772, - "false_positive": 1480, - "false_negative": 2032, - "precision": 0.651928504233302, - "recall": 0.5770191507077436, - "f1": 0.612190812720848 - }, - "regions": { - "brussels": { - "true_positive": 1123, - "false_positive": 335, - "false_negative": 725, - "precision": 0.7702331961591221, - "recall": 0.6076839826839827, - "f1": 0.6793708408953418 - }, - "flanders": { - "true_positive": 369, - "false_positive": 363, - "false_negative": 641, - "precision": 0.5040983606557377, - "recall": 0.36534653465346534, - "f1": 0.4236509758897818 - }, - "wallonia": { - "true_positive": 1280, - "false_positive": 782, - "false_negative": 666, - "precision": 0.6207565470417071, - "recall": 0.65775950668037, - "f1": 0.6387225548902196 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 329, - "false_positive": 110, - "false_negative": 153, - "precision": 0.7494305239179955, - "recall": 0.6825726141078838, - "f1": 0.7144408251900108 - }, - "ath-rural-train": { - "true_positive": 620, - "false_positive": 363, - "false_negative": 316, - "precision": 0.6307222787385555, - "recall": 0.6623931623931624, - "f1": 0.6461698801459094 - }, - "charleroi-core-train": { - "true_positive": 311, - "false_positive": 161, - "false_negative": 215, - "precision": 0.6588983050847458, - "recall": 0.591254752851711, - "f1": 0.623246492985972 - }, - "eupen-train": { - "true_positive": 349, - "false_positive": 258, - "false_negative": 135, - "precision": 0.5749588138385503, - "recall": 0.7210743801652892, - "f1": 0.6397800183318056 - }, - "genk-industry-train": { - "true_positive": 79, - "false_positive": 65, - "false_negative": 259, - "precision": 0.5486111111111112, - "recall": 0.23372781065088757, - "f1": 0.3278008298755187 - }, - "ixelles-dense-train": { - "true_positive": 579, - "false_positive": 141, - "false_negative": 439, - "precision": 0.8041666666666667, - "recall": 0.568762278978389, - "f1": 0.666283084004603 - }, - "lokeren-ribbon-train": { - "true_positive": 275, - "false_positive": 244, - "false_negative": 351, - "precision": 0.5298651252408478, - "recall": 0.43929712460063897, - "f1": 0.48034934497816595 - }, - "ostend-coastal-train": { - "true_positive": 15, - "false_positive": 54, - "false_negative": 31, - "precision": 0.21739130434782608, - "recall": 0.32608695652173914, - "f1": 0.2608695652173913 - }, - "uccle-residential-train": { - "true_positive": 215, - "false_positive": 84, - "false_negative": 133, - "precision": 0.7190635451505016, - "recall": 0.617816091954023, - "f1": 0.6646058732612056 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.05, - "aggregate": { - "true_positive": 2713, - "false_positive": 1326, - "false_negative": 2091, - "precision": 0.6717009160683337, - "recall": 0.5647377185678601, - "f1": 0.613592672170078 - }, - "regions": { - "brussels": { - "true_positive": 1111, - "false_positive": 294, - "false_negative": 737, - "precision": 0.7907473309608541, - "recall": 0.6011904761904762, - "f1": 0.6830617891177375 - }, - "flanders": { - "true_positive": 334, - "false_positive": 310, - "false_negative": 676, - "precision": 0.5186335403726708, - "recall": 0.3306930693069307, - "f1": 0.4038694074969771 - }, - "wallonia": { - "true_positive": 1268, - "false_positive": 722, - "false_negative": 678, - "precision": 0.6371859296482412, - "recall": 0.6515930113052415, - "f1": 0.6443089430894309 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 324, - "false_positive": 97, - "false_negative": 158, - "precision": 0.7695961995249406, - "recall": 0.6721991701244814, - "f1": 0.717607973421927 - }, - "ath-rural-train": { - "true_positive": 614, - "false_positive": 337, - "false_negative": 322, - "precision": 0.6456361724500526, - "recall": 0.655982905982906, - "f1": 0.6507684154742979 - }, - "charleroi-core-train": { - "true_positive": 307, - "false_positive": 147, - "false_negative": 219, - "precision": 0.6762114537444934, - "recall": 0.5836501901140685, - "f1": 0.6265306122448979 - }, - "eupen-train": { - "true_positive": 347, - "false_positive": 238, - "false_negative": 137, - "precision": 0.5931623931623932, - "recall": 0.7169421487603306, - "f1": 0.6492048643592142 - }, - "genk-industry-train": { - "true_positive": 72, - "false_positive": 59, - "false_negative": 266, - "precision": 0.549618320610687, - "recall": 0.21301775147928995, - "f1": 0.3070362473347548 - }, - "ixelles-dense-train": { - "true_positive": 575, - "false_positive": 124, - "false_negative": 443, - "precision": 0.8226037195994278, - "recall": 0.5648330058939096, - "f1": 0.669772859638905 - }, - "lokeren-ribbon-train": { - "true_positive": 248, - "false_positive": 205, - "false_negative": 378, - "precision": 0.5474613686534217, - "recall": 0.3961661341853035, - "f1": 0.45968489341983315 - }, - "ostend-coastal-train": { - "true_positive": 14, - "false_positive": 46, - "false_negative": 32, - "precision": 0.23333333333333334, - "recall": 0.30434782608695654, - "f1": 0.26415094339622636 - }, - "uccle-residential-train": { - "true_positive": 212, - "false_positive": 73, - "false_negative": 136, - "precision": 0.743859649122807, - "recall": 0.6091954022988506, - "f1": 0.6698262243285941 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.06, - "aggregate": { - "true_positive": 2605, - "false_positive": 1110, - "false_negative": 2199, - "precision": 0.7012113055181696, - "recall": 0.5422564529558701, - "f1": 0.6115741284188284 - }, - "regions": { - "brussels": { - "true_positive": 1100, - "false_positive": 242, - "false_negative": 748, - "precision": 0.819672131147541, - "recall": 0.5952380952380952, - "f1": 0.689655172413793 - }, - "flanders": { - "true_positive": 274, - "false_positive": 230, - "false_negative": 736, - "precision": 0.5436507936507936, - "recall": 0.2712871287128713, - "f1": 0.3619550858652576 - }, - "wallonia": { - "true_positive": 1231, - "false_positive": 638, - "false_negative": 715, - "precision": 0.6586409844836811, - "recall": 0.6325796505652621, - "f1": 0.6453473132372215 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 318, - "false_positive": 74, - "false_negative": 164, - "precision": 0.8112244897959183, - "recall": 0.6597510373443983, - "f1": 0.7276887871853546 - }, - "ath-rural-train": { - "true_positive": 598, - "false_positive": 298, - "false_negative": 338, - "precision": 0.6674107142857143, - "recall": 0.6388888888888888, - "f1": 0.6528384279475982 - }, - "charleroi-core-train": { - "true_positive": 291, - "false_positive": 125, - "false_negative": 235, - "precision": 0.6995192307692307, - "recall": 0.5532319391634981, - "f1": 0.6178343949044587 - }, - "eupen-train": { - "true_positive": 342, - "false_positive": 215, - "false_negative": 142, - "precision": 0.6140035906642729, - "recall": 0.7066115702479339, - "f1": 0.6570605187319885 - }, - "genk-industry-train": { - "true_positive": 63, - "false_positive": 52, - "false_negative": 275, - "precision": 0.5478260869565217, - "recall": 0.1863905325443787, - "f1": 0.27814569536423844 - }, - "ixelles-dense-train": { - "true_positive": 571, - "false_positive": 107, - "false_negative": 447, - "precision": 0.8421828908554573, - "recall": 0.5609037328094303, - "f1": 0.6733490566037736 - }, - "lokeren-ribbon-train": { - "true_positive": 201, - "false_positive": 144, - "false_negative": 425, - "precision": 0.5826086956521739, - "recall": 0.3210862619808307, - "f1": 0.4140061791967044 - }, - "ostend-coastal-train": { - "true_positive": 10, - "false_positive": 34, - "false_negative": 36, - "precision": 0.22727272727272727, - "recall": 0.21739130434782608, - "f1": 0.22222222222222224 - }, - "uccle-residential-train": { - "true_positive": 211, - "false_positive": 61, - "false_negative": 137, - "precision": 0.7757352941176471, - "recall": 0.6063218390804598, - "f1": 0.6806451612903226 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.075, - "aggregate": { - "true_positive": 2445, - "false_positive": 862, - "false_negative": 2359, - "precision": 0.7393407922588449, - "recall": 0.5089508742714405, - "f1": 0.6028849710270003 - }, - "regions": { - "brussels": { - "true_positive": 1078, - "false_positive": 191, - "false_negative": 770, - "precision": 0.8494877856579984, - "recall": 0.5833333333333334, - "f1": 0.6916907282643567 - }, - "flanders": { - "true_positive": 192, - "false_positive": 139, - "false_negative": 818, - "precision": 0.5800604229607251, - "recall": 0.1900990099009901, - "f1": 0.2863534675615213 - }, - "wallonia": { - "true_positive": 1175, - "false_positive": 532, - "false_negative": 771, - "precision": 0.6883421206795548, - "recall": 0.6038026721479959, - "f1": 0.6433068710648782 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 311, - "false_positive": 58, - "false_negative": 171, - "precision": 0.8428184281842819, - "recall": 0.6452282157676349, - "f1": 0.7309048178613395 - }, - "ath-rural-train": { - "true_positive": 573, - "false_positive": 241, - "false_negative": 363, - "precision": 0.7039312039312039, - "recall": 0.6121794871794872, - "f1": 0.6548571428571429 - }, - "charleroi-core-train": { - "true_positive": 271, - "false_positive": 106, - "false_negative": 255, - "precision": 0.7188328912466844, - "recall": 0.5152091254752852, - "f1": 0.6002214839424141 - }, - "eupen-train": { - "true_positive": 331, - "false_positive": 185, - "false_negative": 153, - "precision": 0.6414728682170543, - "recall": 0.6838842975206612, - "f1": 0.662 - }, - "genk-industry-train": { - "true_positive": 50, - "false_positive": 34, - "false_negative": 288, - "precision": 0.5952380952380952, - "recall": 0.14792899408284024, - "f1": 0.2369668246445498 - }, - "ixelles-dense-train": { - "true_positive": 559, - "false_positive": 85, - "false_negative": 459, - "precision": 0.8680124223602484, - "recall": 0.5491159135559921, - "f1": 0.6726835138387485 - }, - "lokeren-ribbon-train": { - "true_positive": 134, - "false_positive": 82, - "false_negative": 492, - "precision": 0.6203703703703703, - "recall": 0.21405750798722045, - "f1": 0.3182897862232779 - }, - "ostend-coastal-train": { - "true_positive": 8, - "false_positive": 23, - "false_negative": 38, - "precision": 0.25806451612903225, - "recall": 0.17391304347826086, - "f1": 0.2077922077922078 - }, - "uccle-residential-train": { - "true_positive": 208, - "false_positive": 48, - "false_negative": 140, - "precision": 0.8125, - "recall": 0.5977011494252874, - "f1": 0.6887417218543046 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.1, - "aggregate": { - "true_positive": 2248, - "false_positive": 589, - "false_negative": 2556, - "precision": 0.7923863235812478, - "recall": 0.46794338051623646, - "f1": 0.5884046590760371 - }, - "regions": { - "brussels": { - "true_positive": 1041, - "false_positive": 123, - "false_negative": 807, - "precision": 0.8943298969072165, - "recall": 0.5633116883116883, - "f1": 0.6912350597609561 - }, - "flanders": { - "true_positive": 94, - "false_positive": 68, - "false_negative": 916, - "precision": 0.5802469135802469, - "recall": 0.09306930693069307, - "f1": 0.16040955631399317 - }, - "wallonia": { - "true_positive": 1113, - "false_positive": 398, - "false_negative": 833, - "precision": 0.7365982792852416, - "recall": 0.5719424460431655, - "f1": 0.6439109054093145 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 301, - "false_positive": 35, - "false_negative": 181, - "precision": 0.8958333333333334, - "recall": 0.6244813278008299, - "f1": 0.7359413202933984 - }, - "ath-rural-train": { - "true_positive": 546, - "false_positive": 180, - "false_negative": 390, - "precision": 0.7520661157024794, - "recall": 0.5833333333333334, - "f1": 0.6570397111913359 - }, - "charleroi-core-train": { - "true_positive": 249, - "false_positive": 71, - "false_negative": 277, - "precision": 0.778125, - "recall": 0.47338403041825095, - "f1": 0.5886524822695035 - }, - "eupen-train": { - "true_positive": 318, - "false_positive": 147, - "false_negative": 166, - "precision": 0.6838709677419355, - "recall": 0.6570247933884298, - "f1": 0.6701791359325606 - }, - "genk-industry-train": { - "true_positive": 32, - "false_positive": 18, - "false_negative": 306, - "precision": 0.64, - "recall": 0.09467455621301775, - "f1": 0.16494845360824742 - }, - "ixelles-dense-train": { - "true_positive": 533, - "false_positive": 54, - "false_negative": 485, - "precision": 0.9080068143100511, - "recall": 0.5235756385068763, - "f1": 0.6641744548286604 - }, - "lokeren-ribbon-train": { - "true_positive": 58, - "false_positive": 39, - "false_negative": 568, - "precision": 0.5979381443298969, - "recall": 0.0926517571884984, - "f1": 0.16044260027662519 - }, - "ostend-coastal-train": { - "true_positive": 4, - "false_positive": 11, - "false_negative": 42, - "precision": 0.26666666666666666, - "recall": 0.08695652173913043, - "f1": 0.13114754098360656 - }, - "uccle-residential-train": { - "true_positive": 207, - "false_positive": 34, - "false_negative": 141, - "precision": 0.8589211618257261, - "recall": 0.5948275862068966, - "f1": 0.702886247877759 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.125, - "aggregate": { - "true_positive": 2101, - "false_positive": 436, - "false_negative": 2703, - "precision": 0.8281434765471029, - "recall": 0.43734388009991676, - "f1": 0.5724015801661898 - }, - "regions": { - "brussels": { - "true_positive": 1015, - "false_positive": 96, - "false_negative": 833, - "precision": 0.9135913591359136, - "recall": 0.5492424242424242, - "f1": 0.6860425819533627 - }, - "flanders": { - "true_positive": 47, - "false_positive": 31, - "false_negative": 963, - "precision": 0.6025641025641025, - "recall": 0.046534653465346534, - "f1": 0.08639705882352941 - }, - "wallonia": { - "true_positive": 1039, - "false_positive": 309, - "false_negative": 907, - "precision": 0.7707715133531158, - "recall": 0.5339157245632066, - "f1": 0.6308439587128112 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 292, - "false_positive": 29, - "false_negative": 190, - "precision": 0.9096573208722741, - "recall": 0.6058091286307054, - "f1": 0.7272727272727272 - }, - "ath-rural-train": { - "true_positive": 504, - "false_positive": 142, - "false_negative": 432, - "precision": 0.7801857585139319, - "recall": 0.5384615384615384, - "f1": 0.6371681415929203 - }, - "charleroi-core-train": { - "true_positive": 230, - "false_positive": 47, - "false_negative": 296, - "precision": 0.8303249097472925, - "recall": 0.4372623574144487, - "f1": 0.572851805728518 - }, - "eupen-train": { - "true_positive": 305, - "false_positive": 120, - "false_negative": 179, - "precision": 0.7176470588235294, - "recall": 0.6301652892561983, - "f1": 0.671067106710671 - }, - "genk-industry-train": { - "true_positive": 16, - "false_positive": 10, - "false_negative": 322, - "precision": 0.6153846153846154, - "recall": 0.047337278106508875, - "f1": 0.0879120879120879 - }, - "ixelles-dense-train": { - "true_positive": 523, - "false_positive": 39, - "false_negative": 495, - "precision": 0.9306049822064056, - "recall": 0.5137524557956779, - "f1": 0.6620253164556962 - }, - "lokeren-ribbon-train": { - "true_positive": 28, - "false_positive": 16, - "false_negative": 598, - "precision": 0.6363636363636364, - "recall": 0.04472843450479233, - "f1": 0.0835820895522388 - }, - "ostend-coastal-train": { - "true_positive": 3, - "false_positive": 5, - "false_negative": 43, - "precision": 0.375, - "recall": 0.06521739130434782, - "f1": 0.11111111111111109 - }, - "uccle-residential-train": { - "true_positive": 200, - "false_positive": 28, - "false_negative": 148, - "precision": 0.8771929824561403, - "recall": 0.5747126436781609, - "f1": 0.6944444444444443 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.15, - "aggregate": { - "true_positive": 1979, - "false_positive": 350, - "false_negative": 2825, - "precision": 0.849720910261915, - "recall": 0.41194837635303916, - "f1": 0.5548857423244077 - }, - "regions": { - "brussels": { - "true_positive": 992, - "false_positive": 76, - "false_negative": 856, - "precision": 0.9288389513108615, - "recall": 0.5367965367965368, - "f1": 0.6803840877914953 - }, - "flanders": { - "true_positive": 19, - "false_positive": 20, - "false_negative": 991, - "precision": 0.48717948717948717, - "recall": 0.01881188118811881, - "f1": 0.03622497616777884 - }, - "wallonia": { - "true_positive": 968, - "false_positive": 254, - "false_negative": 978, - "precision": 0.7921440261865794, - "recall": 0.49743062692702983, - "f1": 0.6111111111111112 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 282, - "false_positive": 22, - "false_negative": 200, - "precision": 0.9276315789473685, - "recall": 0.5850622406639004, - "f1": 0.7175572519083969 - }, - "ath-rural-train": { - "true_positive": 468, - "false_positive": 117, - "false_negative": 468, - "precision": 0.8, - "recall": 0.5, - "f1": 0.6153846153846154 - }, - "charleroi-core-train": { - "true_positive": 208, - "false_positive": 37, - "false_negative": 318, - "precision": 0.8489795918367347, - "recall": 0.39543726235741444, - "f1": 0.5395590142671854 - }, - "eupen-train": { - "true_positive": 292, - "false_positive": 100, - "false_negative": 192, - "precision": 0.7448979591836735, - "recall": 0.6033057851239669, - "f1": 0.6666666666666667 - }, - "genk-industry-train": { - "true_positive": 7, - "false_positive": 9, - "false_negative": 331, - "precision": 0.4375, - "recall": 0.020710059171597635, - "f1": 0.03954802259887006 - }, - "ixelles-dense-train": { - "true_positive": 512, - "false_positive": 31, - "false_negative": 506, - "precision": 0.9429097605893186, - "recall": 0.5029469548133595, - "f1": 0.6559897501601538 - }, - "lokeren-ribbon-train": { - "true_positive": 11, - "false_positive": 10, - "false_negative": 615, - "precision": 0.5238095238095238, - "recall": 0.01757188498402556, - "f1": 0.03400309119010819 - }, - "ostend-coastal-train": { - "true_positive": 1, - "false_positive": 1, - "false_negative": 45, - "precision": 0.5, - "recall": 0.021739130434782608, - "f1": 0.041666666666666664 - }, - "uccle-residential-train": { - "true_positive": 198, - "false_positive": 23, - "false_negative": 150, - "precision": 0.8959276018099548, - "recall": 0.5689655172413793, - "f1": 0.6959578207381372 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.2, - "aggregate": { - "true_positive": 1789, - "false_positive": 231, - "false_negative": 3015, - "precision": 0.8856435643564357, - "recall": 0.3723980016652789, - "f1": 0.5243259085580305 - }, - "regions": { - "brussels": { - "true_positive": 934, - "false_positive": 38, - "false_negative": 914, - "precision": 0.9609053497942387, - "recall": 0.5054112554112554, - "f1": 0.6624113475177306 - }, - "flanders": { - "true_positive": 8, - "false_positive": 9, - "false_negative": 1002, - "precision": 0.47058823529411764, - "recall": 0.007920792079207921, - "f1": 0.015579357351509249 - }, - "wallonia": { - "true_positive": 847, - "false_positive": 184, - "false_negative": 1099, - "precision": 0.8215324927255092, - "recall": 0.4352517985611511, - "f1": 0.5690292240510582 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 263, - "false_positive": 11, - "false_negative": 219, - "precision": 0.9598540145985401, - "recall": 0.5456431535269709, - "f1": 0.6957671957671957 - }, - "ath-rural-train": { - "true_positive": 414, - "false_positive": 83, - "false_negative": 522, - "precision": 0.8329979879275654, - "recall": 0.4423076923076923, - "f1": 0.5778087927424982 - }, - "charleroi-core-train": { - "true_positive": 178, - "false_positive": 20, - "false_negative": 348, - "precision": 0.898989898989899, - "recall": 0.33840304182509506, - "f1": 0.49171270718232046 - }, - "eupen-train": { - "true_positive": 255, - "false_positive": 81, - "false_negative": 229, - "precision": 0.7589285714285714, - "recall": 0.5268595041322314, - "f1": 0.6219512195121951 - }, - "genk-industry-train": { - "true_positive": 3, - "false_positive": 6, - "false_negative": 335, - "precision": 0.3333333333333333, - "recall": 0.008875739644970414, - "f1": 0.01729106628242075 - }, - "ixelles-dense-train": { - "true_positive": 479, - "false_positive": 15, - "false_negative": 539, - "precision": 0.9696356275303644, - "recall": 0.47053045186640474, - "f1": 0.6335978835978835 - }, - "lokeren-ribbon-train": { - "true_positive": 4, - "false_positive": 3, - "false_negative": 622, - "precision": 0.5714285714285714, - "recall": 0.006389776357827476, - "f1": 0.01263823064770932 - }, - "ostend-coastal-train": { - "true_positive": 1, - "false_positive": 0, - "false_negative": 45, - "precision": 1.0, - "recall": 0.021739130434782608, - "f1": 0.042553191489361694 - }, - "uccle-residential-train": { - "true_positive": 192, - "false_positive": 12, - "false_negative": 156, - "precision": 0.9411764705882353, - "recall": 0.5517241379310345, - "f1": 0.6956521739130435 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.25, - "aggregate": { - "true_positive": 1595, - "false_positive": 155, - "false_negative": 3209, - "precision": 0.9114285714285715, - "recall": 0.332014987510408, - "f1": 0.48672566371681414 - }, - "regions": { - "brussels": { - "true_positive": 870, - "false_positive": 22, - "false_negative": 978, - "precision": 0.9753363228699552, - "recall": 0.4707792207792208, - "f1": 0.635036496350365 - }, - "flanders": { - "true_positive": 5, - "false_positive": 5, - "false_negative": 1005, - "precision": 0.5, - "recall": 0.0049504950495049506, - "f1": 0.00980392156862745 - }, - "wallonia": { - "true_positive": 720, - "false_positive": 128, - "false_negative": 1226, - "precision": 0.8490566037735849, - "recall": 0.3699897225077081, - "f1": 0.5153901216893342 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 241, - "false_positive": 4, - "false_negative": 241, - "precision": 0.9836734693877551, - "recall": 0.5, - "f1": 0.6629986244841816 - }, - "ath-rural-train": { - "true_positive": 350, - "false_positive": 54, - "false_negative": 586, - "precision": 0.8663366336633663, - "recall": 0.37393162393162394, - "f1": 0.5223880597014926 - }, - "charleroi-core-train": { - "true_positive": 139, - "false_positive": 10, - "false_negative": 387, - "precision": 0.9328859060402684, - "recall": 0.26425855513307983, - "f1": 0.41185185185185186 - }, - "eupen-train": { - "true_positive": 231, - "false_positive": 64, - "false_negative": 253, - "precision": 0.7830508474576271, - "recall": 0.4772727272727273, - "f1": 0.5930680359435173 - }, - "genk-industry-train": { - "true_positive": 3, - "false_positive": 4, - "false_negative": 335, - "precision": 0.42857142857142855, - "recall": 0.008875739644970414, - "f1": 0.017391304347826087 - }, - "ixelles-dense-train": { - "true_positive": 450, - "false_positive": 8, - "false_negative": 568, - "precision": 0.982532751091703, - "recall": 0.44204322200392926, - "f1": 0.6097560975609756 - }, - "lokeren-ribbon-train": { - "true_positive": 1, - "false_positive": 1, - "false_negative": 625, - "precision": 0.5, - "recall": 0.001597444089456869, - "f1": 0.0031847133757961785 - }, - "ostend-coastal-train": { - "true_positive": 1, - "false_positive": 0, - "false_negative": 45, - "precision": 1.0, - "recall": 0.021739130434782608, - "f1": 0.042553191489361694 - }, - "uccle-residential-train": { - "true_positive": 179, - "false_positive": 10, - "false_negative": 169, - "precision": 0.9470899470899471, - "recall": 0.514367816091954, - "f1": 0.6666666666666667 - } - }, - "pure_empty_false_positives": 0 - }, - { - "threshold": 0.3, - "aggregate": { - "true_positive": 1364, - "false_positive": 103, - "false_negative": 3440, - "precision": 0.9297886843899114, - "recall": 0.2839300582847627, - "f1": 0.43501833838303305 - }, - "regions": { - "brussels": { - "true_positive": 793, - "false_positive": 14, - "false_negative": 1055, - "precision": 0.9826517967781908, - "recall": 0.4291125541125541, - "f1": 0.5973634651600753 - }, - "flanders": { - "true_positive": 1, - "false_positive": 2, - "false_negative": 1009, - "precision": 0.3333333333333333, - "recall": 0.0009900990099009901, - "f1": 0.001974333662388944 - }, - "wallonia": { - "true_positive": 570, - "false_positive": 87, - "false_negative": 1376, - "precision": 0.867579908675799, - "recall": 0.29290853031860226, - "f1": 0.43795620437956206 - } - }, - "samples": { - "anderlecht-industry-train": { - "true_positive": 212, - "false_positive": 1, - "false_negative": 270, - "precision": 0.9953051643192489, - "recall": 0.43983402489626555, - "f1": 0.6100719424460432 - }, - "ath-rural-train": { - "true_positive": 270, - "false_positive": 33, - "false_negative": 666, - "precision": 0.8910891089108911, - "recall": 0.28846153846153844, - "f1": 0.4358353510895883 - }, - "charleroi-core-train": { - "true_positive": 111, - "false_positive": 4, - "false_negative": 415, - "precision": 0.9652173913043478, - "recall": 0.21102661596958175, - "f1": 0.34633385335413414 - }, - "eupen-train": { - "true_positive": 189, - "false_positive": 50, - "false_negative": 295, - "precision": 0.7907949790794979, - "recall": 0.390495867768595, - "f1": 0.5228215767634854 - }, - "genk-industry-train": { - "true_positive": 1, - "false_positive": 1, - "false_negative": 337, - "precision": 0.5, - "recall": 0.0029585798816568047, - "f1": 0.0058823529411764705 - }, - "ixelles-dense-train": { - "true_positive": 408, - "false_positive": 5, - "false_negative": 610, - "precision": 0.9878934624697336, - "recall": 0.40078585461689586, - "f1": 0.570230607966457 - }, - "lokeren-ribbon-train": { - "true_positive": 0, - "false_positive": 1, - "false_negative": 626, - "precision": 0.0, - "recall": 0.0, - "f1": 0.0 - }, - "ostend-coastal-train": { - "true_positive": 0, - "false_positive": 0, - "false_negative": 46, - "precision": 1.0, - "recall": 0.0, - "f1": 0.0 - }, - "uccle-residential-train": { - "true_positive": 173, - "false_positive": 8, - "false_negative": 175, - "precision": 0.9558011049723757, - "recall": 0.49712643678160917, - "f1": 0.6540642722117201 - } - }, - "pure_empty_false_positives": 0 - } - ] -} \ No newline at end of file diff --git a/.codex-input/v8_contact_sheet_001.png b/.codex-input/v8_contact_sheet_001.png deleted file mode 100644 index 3ce88dd1..00000000 Binary files a/.codex-input/v8_contact_sheet_001.png and /dev/null differ diff --git a/.env.example b/.env.example index 6fbd9236..e88edfe7 100644 --- a/.env.example +++ b/.env.example @@ -8,9 +8,10 @@ GEOINTEL_MAX_IN_MEMORY_VECTOR_MB=64 CORS_ORIGINS=http://localhost:1202,http://127.0.0.1:1202 # Optional single-operator access gate. Store only a PBKDF2-SHA256 hash and -# a unique 32+ character signing secret. Guest access is enabled by default -# whenever this gate is active; disable it explicitly on non-demo instances. +# a unique 32+ character signing secret. Guest access is opt-in and should be +# enabled only on a dedicated demo installation with bounded public data. GEOINTEL_AUTH_ENABLED=false +GEOINTEL_AUTH_REQUIRE_HTTPS=false GEOINTEL_AUTH_USERNAME= GEOINTEL_AUTH_PASSWORD_HASH= GEOINTEL_AUTH_SESSION_SECRET= @@ -20,7 +21,7 @@ GEOINTEL_AUTHENTIK_ISSUER= GEOINTEL_AUTHENTIK_CLIENT_ID= GEOINTEL_AUTHENTIK_CLIENT_SECRET= GEOINTEL_AUTHENTIK_ALLOWED_EMAIL= -GEOINTEL_GUEST_ACCESS_ENABLED=true +GEOINTEL_GUEST_ACCESS_ENABLED=false GEOINTEL_GUEST_DISPLAY_NAME=Gast GEOINTEL_GUEST_SESSION_TTL_SECONDS=7200 ORTHOPHOTO_ENABLED=true @@ -193,7 +194,7 @@ GEOINTEL_POSTGIS_DATA_PATH=./postgres-data GEOINTEL_POSTGRES_DB=geointel GEOINTEL_POSTGRES_USER=geointel GEOINTEL_POSTGRES_PASSWORD=geointel -GEOINTEL_CORS_ORIGINS=https://geointel.itworx.tech,http://geointel.itworx.tech,http://localhost:1202,http://127.0.0.1:1202,http://192.168.10.150:1202 +GEOINTEL_CORS_ORIGINS=https://geointel.example.com,http://localhost:1202,http://127.0.0.1:1202 GEOINTEL_MAX_UPLOAD_MB=500 GEOINTEL_AOI_WORKER_ENABLED=false GEOINTEL_AOI_WORKER_POLL_SECONDS=2 diff --git a/.gitignore b/.gitignore index a3d16184..c4dd2870 100644 --- a/.gitignore +++ b/.gitignore @@ -82,3 +82,6 @@ build/ # Local investigation scratch is never repository input. /.codex-input/ /.codex-artifacts/ +/.playwright-mcp/ +/.mcp.json +/data/ diff --git a/.mcp.json b/.mcp.json deleted file mode 100644 index 4a91067c..00000000 --- a/.mcp.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "mcpServers": { - "higgsfield": { - "command": "npx", - "args": ["-y", "higgsfield-mcp"], - "env": { - "HF_API_KEY": "${HF_API_KEY}", - "HF_SECRET": "${HF_SECRET}" - } - }, - "aistudio": { - "command": "npx", - "args": ["-y", "aistudio-mcp-server"], - "env": { - "GEMINI_API_KEY": "${GEMINI_API_KEY}", - "GEMINI_MODEL": "gemini-2.5-flash", - "GEMINI_TIMEOUT": "600000" - } - } - } -} diff --git a/.playwright-mcp/console-2026-07-22T04-28-18-485Z.log b/.playwright-mcp/console-2026-07-22T04-28-18-485Z.log deleted file mode 100644 index 84a7bdac..00000000 --- a/.playwright-mcp/console-2026-07-22T04-28-18-485Z.log +++ /dev/null @@ -1,2 +0,0 @@ -[ 3386ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ http://boot/config/plugins/dockerMan/images/media-codec-dashboard-icon.png:0 -[ 421496ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://192.168.10.150:1218/api/icons/media-codec-dashboard-icon.png:0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 83685b05..fa1b70e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1600,7 +1600,7 @@ ## Sprint 162 Split-background promotion runtime pass (2026-07-11) - Hardened split-background preflight compatibility for legacy operator manifests by deriving missing background categories from `reference_feature_count`. -- Ran Tower split-background promotion evidence against `http://192.168.10.150:1202`. +- Ran Tower split-background promotion evidence against `http://192.0.2.10:1202`. - Produced a high-threshold promote candidate: `geointel-building-yolov8s-aoi1024bg512r3e50-pt|512|64|0.35`. - Verified the strict pure-empty background gate: 3 samples, 9 runs, 0 detections. - Preserved the current model default; no automatic activation, provider fetching, fake outputs, model downloads, API contracts or migrations changed. @@ -1953,7 +1953,7 @@ - `geel_grb_gbg_buildings.geojson` from the Digitaal Vlaanderen GRB OGC API Features `GBG` collection. - Fixed raster upload metadata mapping so uploaded rasters persist canonical `bounds_json`, `resolution_json` and `bands_json` from extracted raster metadata. - Added regression coverage for raster upload metadata mapping. -- Deployed the fix to Tower and ran the real-data detection + QA workflow against `http://192.168.10.150:1202`. +- Deployed the fix to Tower and ran the real-data detection + QA workflow against `http://192.0.2.10:1202`. - The workflow passed with persisted raster/reference datasets, tile manifest, AnalysisRun, QualityCheck and detection GeoJSON export. A follow-up pass identified case-sensitive class filtering as the reason the initial Geel run persisted zero detections. ## Sprint 121 Real data detection and QA workflow smoke (2026-07-07) @@ -2178,7 +2178,7 @@ ## Sprint 91 populated workflow audit polish (2026-06-21) -- Audited the live populated demo workflow on `http://192.168.10.150:1202` across Overview, Data, Map, QA/QC, AI Labs and Exports. +- Audited the live populated demo workflow on `http://192.0.2.10:1202` across Overview, Data, Map, QA/QC, AI Labs and Exports. - Tightened the Overview workflow guidance complete state so a fully populated flow shows `Ready for handoff` instead of another next-step prompt. - Clarified the Map guidance detail by separating rendered layer feature count from AOI context. - Added regression coverage for complete-state copy and precise Map guidance copy. @@ -2502,7 +2502,7 @@ - Created a live Tower database backup before collation maintenance: `backups/geointel-before-collation-refresh-20260617-065707.dump`. - Ran `REINDEX DATABASE geointel;` and `ALTER DATABASE "geointel" REFRESH COLLATION VERSION;` against the all-in-one PostGIS runtime. - Verified the reused database volume now reports matching collation versions: `stored=2.36 actual=2.36`. -- Re-ran live migration smoke, browser runtime smoke, GIS runtime smoke and demo/export/golden QA workflow smoke successfully against `http://192.168.10.150:1202`. +- Re-ran live migration smoke, browser runtime smoke, GIS runtime smoke and demo/export/golden QA workflow smoke successfully against `http://192.0.2.10:1202`. - No API contracts, migrations, product features, provider fetching or AI behavior were introduced. ## Sprint 36 PostgreSQL collation maintenance visibility (2026-06-17) @@ -2553,7 +2553,7 @@ - Updated Tower deploy scripts to stop the old multi-container stack without removing volumes and start the all-in-one stack. - Updated the Unraid template so the Docker can be edited from Unraid with one web port, storage path, PostGIS data path and app icon. - Hardened live migration and browser runtime smoke scripts with startup retries and an icon check. -- Verified Tower deployment at `http://192.168.10.150:1202` with one healthy `geointel` container, passing live migration smoke, API proxy smoke and icon smoke. +- Verified Tower deployment at `http://192.0.2.10:1202` with one healthy `geointel` container, passing live migration smoke, API proxy smoke and icon smoke. - No API contracts, migrations, product features, provider fetching or AI behavior were introduced. ## Sprint 31 Unraid deployment template (2026-06-17) @@ -3008,7 +3008,7 @@ Added: ## Sprint 55 live visual shell polish (2026-06-17) -- Audited the live workbench visually in Browser on `http://192.168.10.150:1202`. +- Audited the live workbench visually in Browser on `http://192.0.2.10:1202`. - Compacted the top context bar and primary navigation so the workbench has more usable canvas space. - Moved the inspector below the workspace on standard desktop widths instead of forcing a cramped three-column layout. - Preserved the side inspector behavior for wider screens. diff --git a/README.md b/README.md index 4776f4ab..3d77be6f 100644 --- a/README.md +++ b/README.md @@ -153,12 +153,14 @@ Open daarna `http://localhost:1202`. ### Gastdemo -Met `GEOINTEL_GUEST_ACCESS_ENABLED=true` biedt de toegangspagina een +Met `GEOINTEL_AUTH_ENABLED=true` en de expliciete opt-in +`GEOINTEL_GUEST_ACCESS_ENABLED=true` biedt de toegangspagina een kortlevende, projectgebonden demosessie. De gast heeft binnen het ingestelde demoproject dezelfde kaart-, bronselectie-, modelselectie-, analyse-, QA- en exportmogelijkheden als een operator. Alleen beheerfuncties zoals instellingen, uploads, bronconfiguratie, projectbeheer en evidence-review blijven geblokkeerd; -dit is geen multi-user- of tenantisolatie. +dit is geen multi-user- of tenantisolatie. Gasttoegang staat standaard uit en +hoort alleen op een aparte demo-installatie met publieke data. Een optionele Authentik OIDC-login kan naast de lokale operatorlogin worden ingeschakeld. GeoIntel gebruikt daarbij PKCE, state, nonce, issuer-/audience- diff --git a/backend/README.md b/backend/README.md index c1fc9ce1..7b2568ed 100644 --- a/backend/README.md +++ b/backend/README.md @@ -460,7 +460,7 @@ To validate the full configured-YOLO runtime path against Docker/Tower after a model is mounted and selected, run: ```bash -bash scripts/verify_model_asset_detection_workflow.sh http://192.168.10.150:1202 +bash scripts/verify_model_asset_detection_workflow.sh http://192.0.2.10:1202 ``` The smoke uses the existing demo raster to generate a tile manifest, selects a @@ -477,7 +477,7 @@ the runtime host, then run: ```bash REAL_RASTER_PATH=/mnt/user/appdata/geointel/data/orthophoto.tif \ REAL_REFERENCE_VECTOR_PATH=/mnt/user/appdata/geointel/data/reference-buildings.geojson \ -bash scripts/verify_real_data_detection_qa_workflow.sh http://192.168.10.150:1202 +bash scripts/verify_real_data_detection_qa_workflow.sh http://192.0.2.10:1202 ``` This smoke refuses missing/unsupported inputs, uploads the raster and reference @@ -556,7 +556,7 @@ For model-quality calibration, run the confidence sweep wrapper: REAL_RASTER_PATH=/mnt/user/appdata/geointel/storage/operator-data/geel_orthophoto_wms_512.tif \ REAL_REFERENCE_VECTOR_PATH=/mnt/user/appdata/geointel/storage/operator-data/geel_grb_gbg_buildings.geojson \ CALIBRATION_THRESHOLDS="0.50 0.35 0.25 0.15" \ -bash scripts/run_detection_calibration_sweep.sh http://192.168.10.150:1202 +bash scripts/run_detection_calibration_sweep.sh http://192.0.2.10:1202 ``` The sweep creates one real persisted workflow run per threshold, fetches the @@ -576,7 +576,7 @@ QUALITY_MODEL_ASSET_IDS="yolov8n-building-segmentation-pt yolov8n-pt" \ QUALITY_TILE_SIZES="512 640" \ QUALITY_TILE_OVERLAPS="64" \ QUALITY_THRESHOLDS="0.50 0.15" \ -bash scripts/run_detection_quality_matrix.sh http://192.168.10.150:1202 +bash scripts/run_detection_quality_matrix.sh http://192.0.2.10:1202 ``` The matrix creates one real persisted workflow run per combination and writes @@ -594,7 +594,7 @@ QUALITY_MODEL_ASSET_IDS="yolov8n-building-segmentation-pt yolov8n-pt" \ QUALITY_TILE_SIZES="512 640" \ QUALITY_TILE_OVERLAPS="64" \ QUALITY_THRESHOLDS="0.50 0.15" \ -bash scripts/run_multi_sample_detection_quality_matrix.sh http://192.168.10.150:1202 +bash scripts/run_multi_sample_detection_quality_matrix.sh http://192.0.2.10:1202 ``` The combined `multi_sample_quality_summary.json` reports per-sample and overall @@ -611,7 +611,7 @@ QUALITY_MODEL_ASSET_IDS="geointel-building-yolov8n-expanded160e50-pt geointel-bu QUALITY_TILE_SIZES="640" \ QUALITY_TILE_OVERLAPS="64" \ QUALITY_THRESHOLDS="0.25 0.15 0.05" \ -bash scripts/run_operator_hard_negative_detection_matrix.sh http://192.168.10.150:1202 +bash scripts/run_operator_hard_negative_detection_matrix.sh http://192.0.2.10:1202 ``` This path uploads only background rasters, runs configured-YOLO detection and @@ -624,7 +624,7 @@ evidence bundle: ```bash CALIBRATION_SUMMARY_PATH=/mnt/user/appdata/geointel/artifacts/detection-calibration/20260707T002103Z/calibration_summary.json \ -bash scripts/export_detection_calibration_evidence.sh http://192.168.10.150:1202 +bash scripts/export_detection_calibration_evidence.sh http://192.0.2.10:1202 ``` The bundle writes combined QA evidence GeoJSON plus a standalone HTML/SVG review @@ -738,7 +738,7 @@ python scripts/seed_demo_workflow.py --json In Docker Compose on a LAN host: ```bash -curl -X POST http://192.168.10.150:1202/api/v1/demo/workflow +curl -X POST http://192.0.2.10:1202/api/v1/demo/workflow ``` ### QA/QC result listing @@ -823,7 +823,7 @@ After rebuilding a Docker/LAN deployment, verify the end-to-end demo and export flow through the browser-facing frontend proxy: ```bash -bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202 +bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202 ``` The script seeds the explicit demo workflow, verifies persisted QA/QC results, @@ -886,7 +886,7 @@ bash scripts/verify_gis_runtime.sh http://localhost:1202 On a NAS or server host, use the published LAN URL: ```bash -bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202 +bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202 ``` The script calls `/api/v1/system/capabilities` through the frontend proxy and diff --git a/backend/app/api/routes/auth.py b/backend/app/api/routes/auth.py index d3cd7bef..f7f94ba6 100644 --- a/backend/app/api/routes/auth.py +++ b/backend/app/api/routes/auth.py @@ -2,6 +2,7 @@ from __future__ import annotations import logging from datetime import UTC, datetime +from ipaddress import ip_address, ip_network from fastapi import APIRouter, Depends, Request, Response, status from fastapi.responses import RedirectResponse @@ -20,6 +21,43 @@ router = APIRouter(prefix="/auth", tags=["auth"]) COOKIE_NAME = "geointel_session" OIDC_FLOW_COOKIE_NAME = "geointel_oidc_flow" logger = logging.getLogger("geointel.auth") +_TRUSTED_PROXY_NETWORKS = ( + ip_network("127.0.0.0/8"), + ip_network("::1/128"), + ip_network("172.16.0.0/12"), +) + + +def _peer_is_trusted_proxy(request: Request) -> bool: + if request.client is None: + return False + try: + peer_address = ip_address(request.client.host) + except ValueError: + return False + return any(peer_address in network for network in _TRUSTED_PROXY_NETWORKS) + + +def _request_is_https(request: Request) -> bool: + if request.url.scheme == "https": + return True + if not _peer_is_trusted_proxy(request): + return False + forwarded_proto = request.headers.get("x-forwarded-proto", "").split(",", 1)[0].strip().lower() + return forwarded_proto == "https" + + +def _client_host(request: Request) -> str: + peer = request.client.host if request.client else "unknown" + if not _peer_is_trusted_proxy(request): + return peer + forwarded = request.headers.get("x-real-ip", "").strip() + if not forwarded: + return peer + try: + return str(ip_address(forwarded)) + except ValueError: + return peer def _session_from_principal( @@ -73,13 +111,12 @@ def _set_session_cookie( token: str, max_age: int, ) -> None: - forwarded_proto = request.headers.get("x-forwarded-proto", "").split(",", 1)[0].strip().lower() response.set_cookie( key=COOKIE_NAME, value=token, max_age=max_age, httponly=True, - secure=forwarded_proto == "https" or request.url.scheme == "https", + secure=_request_is_https(request), samesite="strict", path="/", ) @@ -99,7 +136,13 @@ def login(payload: AuthLoginRequest, request: Request, response: Response) -> Au message="Operator authentication is not enabled on this runtime", status_code=status.HTTP_409_CONFLICT, ) - client_host = request.client.host if request.client else "unknown" + if settings.auth_require_https and not _request_is_https(request): + raise AppError( + code="AUTH_HTTPS_REQUIRED", + message="Operator authentication requires HTTPS on this runtime", + status_code=status.HTTP_426_UPGRADE_REQUIRED, + ) + client_host = _client_host(request) throttle_key = f"{client_host}:{payload.username.casefold()}" retry_after = AuthService.retry_after_seconds(throttle_key) if retry_after: diff --git a/backend/app/core/config.py b/backend/app/core/config.py index ebcbddee..79394ecb 100644 --- a/backend/app/core/config.py +++ b/backend/app/core/config.py @@ -21,6 +21,7 @@ class Settings(BaseSettings): build_time: str | None = Field(default=None, validation_alias="GEOINTEL_BUILD_TIME") api_prefix: str = Field(default="/api/v1", validation_alias="GEOINTEL_API_PREFIX") auth_enabled: bool = Field(default=False, validation_alias="GEOINTEL_AUTH_ENABLED") + auth_require_https: bool = Field(default=False, validation_alias="GEOINTEL_AUTH_REQUIRE_HTTPS") auth_username: str | None = Field(default=None, validation_alias="GEOINTEL_AUTH_USERNAME") auth_password_hash: str | None = Field(default=None, validation_alias="GEOINTEL_AUTH_PASSWORD_HASH") auth_session_secret: str | None = Field(default=None, validation_alias="GEOINTEL_AUTH_SESSION_SECRET") @@ -39,7 +40,7 @@ class Settings(BaseSettings): validation_alias="GEOINTEL_AUTH_SESSION_TTL_SECONDS", ) guest_access_enabled: bool = Field( - default=True, + default=False, validation_alias="GEOINTEL_GUEST_ACCESS_ENABLED", ) guest_display_name: str = Field( diff --git a/backend/tests/test_auth.py b/backend/tests/test_auth.py index 68aaa657..a0d41d7a 100644 --- a/backend/tests/test_auth.py +++ b/backend/tests/test_auth.py @@ -20,23 +20,30 @@ from app.services.segmentation_service import SegmentationService from app.services.job_service import JobService -def auth_client(monkeypatch, *, guest_access: bool = False) -> TestClient: +def auth_client( + monkeypatch, + *, + guest_access: bool = False, + require_https: bool = False, + base_url: str = "http://testserver", +) -> TestClient: password_hash = AuthService.hash_password( "correct horse battery staple", salt=b"geointel-test-salt", iterations=100_000, ) monkeypatch.setenv("GEOINTEL_AUTH_ENABLED", "true") + monkeypatch.setenv("GEOINTEL_AUTH_REQUIRE_HTTPS", "true" if require_https else "false") monkeypatch.setenv("GEOINTEL_AUTH_USERNAME", "operator") monkeypatch.setenv("GEOINTEL_AUTH_PASSWORD_HASH", password_hash) monkeypatch.setenv("GEOINTEL_AUTH_SESSION_SECRET", "test-session-secret-that-is-long-enough") monkeypatch.setenv("GEOINTEL_GUEST_ACCESS_ENABLED", "true" if guest_access else "false") monkeypatch.setenv("GEOINTEL_GUEST_DISPLAY_NAME", "Gast") monkeypatch.setenv("GEOINTEL_GUEST_SESSION_TTL_SECONDS", "7200") - return TestClient(create_app()) + return TestClient(create_app(), base_url=base_url) -def test_guest_access_defaults_on_when_operator_authentication_is_enabled(monkeypatch) -> None: +def test_guest_access_defaults_off_when_operator_authentication_is_enabled(monkeypatch) -> None: password_hash = AuthService.hash_password( "correct horse battery staple", salt=b"geointel-test-salt", @@ -53,7 +60,7 @@ def test_guest_access_defaults_on_when_operator_authentication_is_enabled(monkey assert session.status_code == 200 assert session.json()["data"]["authentication_required"] is True - assert session.json()["data"]["guest_access_enabled"] is True + assert session.json()["data"]["guest_access_enabled"] is False def test_guest_default_is_inactive_but_valid_when_operator_authentication_is_disabled(monkeypatch) -> None: @@ -135,6 +142,35 @@ def test_login_uses_http_only_session_cookie_and_logout_revokes_browser_access(m assert protected_after_logout.status_code == 401 +def test_operator_login_can_require_https(monkeypatch) -> None: + insecure_client = auth_client(monkeypatch, require_https=True) + rejected = insecure_client.post( + "/api/v1/auth/login", + json={"username": "operator", "password": "correct horse battery staple"}, + ) + spoofed = insecure_client.post( + "/api/v1/auth/login", + headers={"x-forwarded-proto": "https", "x-real-ip": "203.0.113.9"}, + json={"username": "operator", "password": "correct horse battery staple"}, + ) + + secure_client = auth_client( + monkeypatch, + require_https=True, + base_url="https://testserver", + ) + accepted = secure_client.post( + "/api/v1/auth/login", + json={"username": "operator", "password": "correct horse battery staple"}, + ) + + assert rejected.status_code == 426 + assert rejected.json()["error"] == "AUTH_HTTPS_REQUIRED" + assert spoofed.status_code == 426 + assert accepted.status_code == 200 + assert "secure" in accepted.headers["set-cookie"].lower() + + def test_guest_login_exposes_models_but_rejects_management_and_cross_project_requests(monkeypatch) -> None: project_id = UUID("00000000-0000-0000-0000-000000000123") demo = DemoWorkflowResponse( @@ -460,6 +496,10 @@ def test_unraid_runtime_carries_only_hashed_operator_credentials() -> None: assert "GEOINTEL_AUTH_PASSWORD_HASH=" in example assert "GEOINTEL_AUTHENTIK_CLIENT_SECRET=" in example assert "GEOINTEL_AUTH_PASSWORD=" not in runner - assert "GEOINTEL_GUEST_ACCESS_ENABLED=true" in example - assert 'GEOINTEL_GUEST_ACCESS_ENABLED="${GEOINTEL_GUEST_ACCESS_ENABLED:-true}"' in runner + assert "GEOINTEL_AUTH_ENABLED=true" in example + assert "GEOINTEL_AUTH_REQUIRE_HTTPS=true" in example + assert "GEOINTEL_GUEST_ACCESS_ENABLED=false" in example + assert 'GEOINTEL_AUTH_ENABLED="${GEOINTEL_AUTH_ENABLED:-true}"' in runner + assert 'GEOINTEL_AUTH_REQUIRE_HTTPS="${GEOINTEL_AUTH_REQUIRE_HTTPS:-true}"' in runner + assert 'GEOINTEL_GUEST_ACCESS_ENABLED="${GEOINTEL_GUEST_ACCESS_ENABLED:-false}"' in runner assert "/api/v1/auth/session" in browser_smoke diff --git a/backend/tests/test_docker_runtime_config.py b/backend/tests/test_docker_runtime_config.py index 463dd909..ffa9479f 100644 --- a/backend/tests/test_docker_runtime_config.py +++ b/backend/tests/test_docker_runtime_config.py @@ -128,8 +128,8 @@ def test_compose_exposes_frontend_on_configurable_host_port_with_cors_origin() - compose = (ROOT / "docker-compose.yml").read_text(encoding="utf-8") env_example = (ROOT / ".env.example").read_text(encoding="utf-8") - assert '"${GEOINTEL_FRONTEND_PORT:-1202}:80"' in compose - assert '"${GEOINTEL_BACKEND_PORT:-8000}:8000"' in compose + assert '"${GEOINTEL_BIND_ADDRESS:-127.0.0.1}:${GEOINTEL_FRONTEND_PORT:-1202}:80"' in compose + assert '"${GEOINTEL_BIND_ADDRESS:-127.0.0.1}:${GEOINTEL_BACKEND_PORT:-8000}:8000"' in compose assert "CORS_ORIGINS: ${GEOINTEL_CORS_ORIGINS:-http://localhost:1202,http://127.0.0.1:1202}" in compose assert "GEOINTEL_FRONTEND_PORT=1202" in env_example assert "GEOINTEL_BACKEND_PORT=8000" in env_example @@ -137,6 +137,18 @@ def test_compose_exposes_frontend_on_configurable_host_port_with_cors_origin() - assert "http://127.0.0.1:1202" in env_example +def test_packaged_runtime_uses_fail_closed_authentication_defaults() -> None: + compose = (ROOT / "docker-compose.unraid.yml").read_text(encoding="utf-8") + env_example = (ROOT / "deploy" / "unraid" / "geointel.env.example").read_text(encoding="utf-8") + + assert "GEOINTEL_AUTH_ENABLED: ${GEOINTEL_AUTH_ENABLED:-true}" in compose + assert "GEOINTEL_AUTH_REQUIRE_HTTPS: ${GEOINTEL_AUTH_REQUIRE_HTTPS:-true}" in compose + assert "GEOINTEL_GUEST_ACCESS_ENABLED: ${GEOINTEL_GUEST_ACCESS_ENABLED:-false}" in compose + assert "GEOINTEL_AUTH_ENABLED=true" in env_example + assert "GEOINTEL_AUTH_REQUIRE_HTTPS=true" in env_example + assert "GEOINTEL_GUEST_ACCESS_ENABLED=false" in env_example + + def test_env_example_uses_runtime_env_names_read_by_backend_and_frontend() -> None: env_example = (ROOT / ".env.example").read_text(encoding="utf-8") diff --git a/backend/tests/test_outbound_request_guard.py b/backend/tests/test_outbound_request_guard.py index f866cd5f..8227c780 100644 --- a/backend/tests/test_outbound_request_guard.py +++ b/backend/tests/test_outbound_request_guard.py @@ -41,7 +41,7 @@ class TestUrlShape: "http://127.0.0.1:8000/internal", "http://localhost/internal", "http://10.1.2.3/internal", - "http://192.168.10.150/internal", + "http://192.168.123.45/internal", "http://172.16.0.9/internal", "http://169.254.169.254/latest/meta-data/", "http://[::1]/internal", @@ -185,7 +185,7 @@ class TestTheGuardIsWiredIntoAcquisition: from app.services.orthophoto_acquisition_service import OrthophotoAcquisitionService with pytest.raises(AppError) as exc_info: - OrthophotoAcquisitionService._fetch("http://192.168.10.150/wms", self._settings()) + OrthophotoAcquisitionService._fetch("http://192.168.123.45/wms", self._settings()) assert exc_info.value.code == "OUTBOUND_URL_NOT_ALLOWED" diff --git a/backend/tests/test_public_repository_hygiene.py b/backend/tests/test_public_repository_hygiene.py new file mode 100644 index 00000000..a3464567 --- /dev/null +++ b/backend/tests/test_public_repository_hygiene.py @@ -0,0 +1,29 @@ +from __future__ import annotations + +import subprocess +import sys +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[2] + + +def test_publication_hygiene_gate_passes_for_tracked_tree() -> None: + result = subprocess.run( + [sys.executable, str(ROOT / "scripts" / "check_repository_hygiene.py")], + cwd=ROOT, + check=False, + capture_output=True, + text=True, + ) + + assert result.returncode == 0, result.stderr + + +def test_checkpoint_inspector_uses_weights_only_deserialization() -> None: + inspector = (ROOT / "scripts" / "inspect_torch_checkpoint.py").read_text( + encoding="utf-8" + ) + + assert "weights_only=True" in inspector + assert "weights_only=False" not in inspector diff --git a/backend/tests/test_sprint137_browser_calibration_summary_evidence_script.py b/backend/tests/test_sprint137_browser_calibration_summary_evidence_script.py index 2854f66a..1233eae6 100644 --- a/backend/tests/test_sprint137_browser_calibration_summary_evidence_script.py +++ b/backend/tests/test_sprint137_browser_calibration_summary_evidence_script.py @@ -21,5 +21,5 @@ def test_evidence_bundle_script_accepts_browser_calibration_summary_export() -> assert "root_project_id = summary.get(\"project_id\")" in script assert "quality_check_ids" in script assert "Browser Detection Lab calibration summary" in readme - assert "bash scripts/export_detection_calibration_evidence.sh http://192.168.10.150:1202 ./detection-calibration-summary.json" in readme + assert "bash scripts/export_detection_calibration_evidence.sh http://192.168.123.45:1202 ./detection-calibration-summary.json" in readme assert "[x] Allow the evidence bundle script to consume Detection Lab calibration summary exports" in todo diff --git a/backend/tests/test_sprint229_alz_release_management.py b/backend/tests/test_sprint229_alz_release_management.py index edaf1657..cdd776ed 100644 --- a/backend/tests/test_sprint229_alz_release_management.py +++ b/backend/tests/test_sprint229_alz_release_management.py @@ -279,7 +279,7 @@ def test_stage_and_apply_commands_are_separate_and_local_only(tmp_path: Path) -> assert "--force" not in apply and "--fetch-only" not in apply assert stage[stage.index("--archive-url") + 1] == release.archive_url with pytest.raises(RuntimeError, match="inside GeoIntel"): - MANAGER.internal_base_url("http://192.168.10.150:1202/api/v1") + MANAGER.internal_base_url("http://192.168.123.45:1202/api/v1") def test_staged_plan_binds_source_schema_codelist_scope_and_baseline(tmp_path: Path) -> None: diff --git a/backend/tests/test_sprint231_orthophoto_release_management.py b/backend/tests/test_sprint231_orthophoto_release_management.py index 989cfa41..cb1033a7 100644 --- a/backend/tests/test_sprint231_orthophoto_release_management.py +++ b/backend/tests/test_sprint231_orthophoto_release_management.py @@ -388,7 +388,7 @@ def test_approved_upload_uses_canonical_dataset_route_and_complete_provenance( def test_apply_target_must_be_loopback_api() -> None: assert MANAGER.internal_api_url("http://127.0.0.1:8000/api/v1").endswith("/api/v1") with pytest.raises(RuntimeError, match="local /api/v1"): - MANAGER.internal_api_url("http://192.168.10.150:1202/api/v1") + MANAGER.internal_api_url("http://192.168.123.45:1202/api/v1") with pytest.raises(RuntimeError, match="local /api/v1"): MANAGER.internal_api_url("http://127.0.0.1:8000/not-api") diff --git a/backend/tests/test_sprint31_unraid_template.py b/backend/tests/test_sprint31_unraid_template.py index 77ac2838..931da386 100644 --- a/backend/tests/test_sprint31_unraid_template.py +++ b/backend/tests/test_sprint31_unraid_template.py @@ -14,7 +14,7 @@ def test_unraid_template_documents_editable_runtime_settings() -> None: assert "Belgium and Belgian North Sea workbench" in template assert "geointel-all-in-one:latest" in template assert "http://[IP]:[PORT:80]/" in template - assert "http://192.168.10.150:1202/geointel-icon.png" in template + assert "gitea.example.com/owner/geointel/raw/branch/main" in template assert "--add-host=host.docker.internal:host-gateway" in template assert 'Target="80"' in template assert 'Target="/app/storage"' in template @@ -36,6 +36,9 @@ def test_unraid_env_template_matches_single_container_compose_variables() -> Non "GEOINTEL_POSTGRES_PASSWORD", "GEOINTEL_CORS_ORIGINS", "GEOINTEL_MAX_UPLOAD_MB", + "GEOINTEL_AUTH_ENABLED", + "GEOINTEL_AUTH_REQUIRE_HTTPS", + "GEOINTEL_GUEST_ACCESS_ENABLED", ): assert key in compose assert f"{key}=" in env_template diff --git a/data/browser-verify.db b/data/browser-verify.db deleted file mode 100644 index 4a3492ca..00000000 Binary files a/data/browser-verify.db and /dev/null differ diff --git a/data/browser-verify.db-shm b/data/browser-verify.db-shm deleted file mode 100644 index d3c97c97..00000000 Binary files a/data/browser-verify.db-shm and /dev/null differ diff --git a/data/browser-verify.db-wal b/data/browser-verify.db-wal deleted file mode 100644 index ad06616f..00000000 Binary files a/data/browser-verify.db-wal and /dev/null differ diff --git a/data/codex-sidebar-qa.db b/data/codex-sidebar-qa.db deleted file mode 100644 index 4a3492ca..00000000 Binary files a/data/codex-sidebar-qa.db and /dev/null differ diff --git a/data/codex-sidebar-qa.db-shm b/data/codex-sidebar-qa.db-shm deleted file mode 100644 index 09eeded3..00000000 Binary files a/data/codex-sidebar-qa.db-shm and /dev/null differ diff --git a/data/codex-sidebar-qa.db-wal b/data/codex-sidebar-qa.db-wal deleted file mode 100644 index 50c6915c..00000000 Binary files a/data/codex-sidebar-qa.db-wal and /dev/null differ diff --git a/data/dockdeck.db b/data/dockdeck.db deleted file mode 100644 index 4a3492ca..00000000 Binary files a/data/dockdeck.db and /dev/null differ diff --git a/data/dockdeck.db-shm b/data/dockdeck.db-shm deleted file mode 100644 index b086b6e5..00000000 Binary files a/data/dockdeck.db-shm and /dev/null differ diff --git a/data/dockdeck.db-wal b/data/dockdeck.db-wal deleted file mode 100644 index b64887bb..00000000 Binary files a/data/dockdeck.db-wal and /dev/null differ diff --git a/data/e2e-canon-v1.db b/data/e2e-canon-v1.db deleted file mode 100644 index 6b3775a1..00000000 Binary files a/data/e2e-canon-v1.db and /dev/null differ diff --git a/data/e2e-canon-v1.db-shm b/data/e2e-canon-v1.db-shm deleted file mode 100644 index cd7a7a81..00000000 Binary files a/data/e2e-canon-v1.db-shm and /dev/null differ diff --git a/data/e2e-canon-v1.db-wal b/data/e2e-canon-v1.db-wal deleted file mode 100644 index e6fce0c8..00000000 Binary files a/data/e2e-canon-v1.db-wal and /dev/null differ diff --git a/data/e2e.db b/data/e2e.db deleted file mode 100644 index 4a3492ca..00000000 Binary files a/data/e2e.db and /dev/null differ diff --git a/data/e2e.db-shm b/data/e2e.db-shm deleted file mode 100644 index 24619a77..00000000 Binary files a/data/e2e.db-shm and /dev/null differ diff --git a/data/e2e.db-wal b/data/e2e.db-wal deleted file mode 100644 index 54a9b64e..00000000 Binary files a/data/e2e.db-wal and /dev/null differ diff --git a/data/visual-audit.db b/data/visual-audit.db deleted file mode 100644 index 4a3492ca..00000000 Binary files a/data/visual-audit.db and /dev/null differ diff --git a/data/visual-audit.db-shm b/data/visual-audit.db-shm deleted file mode 100644 index a2cf28fa..00000000 Binary files a/data/visual-audit.db-shm and /dev/null differ diff --git a/data/visual-audit.db-wal b/data/visual-audit.db-wal deleted file mode 100644 index 6b1baa61..00000000 Binary files a/data/visual-audit.db-wal and /dev/null differ diff --git a/data/visual-followup.db b/data/visual-followup.db deleted file mode 100644 index 4a3492ca..00000000 Binary files a/data/visual-followup.db and /dev/null differ diff --git a/data/visual-followup.db-shm b/data/visual-followup.db-shm deleted file mode 100644 index 0f7098b3..00000000 Binary files a/data/visual-followup.db-shm and /dev/null differ diff --git a/data/visual-followup.db-wal b/data/visual-followup.db-wal deleted file mode 100644 index b46ad0b6..00000000 Binary files a/data/visual-followup.db-wal and /dev/null differ diff --git a/data/visual-stitch-direct.db b/data/visual-stitch-direct.db deleted file mode 100644 index 4a3492ca..00000000 Binary files a/data/visual-stitch-direct.db and /dev/null differ diff --git a/data/visual-stitch-direct.db-shm b/data/visual-stitch-direct.db-shm deleted file mode 100644 index 02be3f5f..00000000 Binary files a/data/visual-stitch-direct.db-shm and /dev/null differ diff --git a/data/visual-stitch-direct.db-wal b/data/visual-stitch-direct.db-wal deleted file mode 100644 index 693f159b..00000000 Binary files a/data/visual-stitch-direct.db-wal and /dev/null differ diff --git a/data/wallpaper-editor-audit.db b/data/wallpaper-editor-audit.db deleted file mode 100644 index 4a3492ca..00000000 Binary files a/data/wallpaper-editor-audit.db and /dev/null differ diff --git a/data/wallpaper-editor-audit.db-shm b/data/wallpaper-editor-audit.db-shm deleted file mode 100644 index ebd7f95f..00000000 Binary files a/data/wallpaper-editor-audit.db-shm and /dev/null differ diff --git a/data/wallpaper-editor-audit.db-wal b/data/wallpaper-editor-audit.db-wal deleted file mode 100644 index 73031318..00000000 Binary files a/data/wallpaper-editor-audit.db-wal and /dev/null differ diff --git a/deploy/unraid/MANUAL_DEPLOY.md b/deploy/unraid/MANUAL_DEPLOY.md index 678834a1..b6231a4c 100644 --- a/deploy/unraid/MANUAL_DEPLOY.md +++ b/deploy/unraid/MANUAL_DEPLOY.md @@ -2,7 +2,7 @@ Voor als de bestaande deploy stuk is en je de code met de hand kopieert (zip/scp/SMB) in plaats van via `git clone`. Eindresultaat: **ƩƩn** container -met de naam `geointel`, bereikbaar op `http://192.168.10.150:1202`. +met de naam `geointel`, bereikbaar op `http://192.0.2.10:1202`. --- @@ -21,7 +21,7 @@ die staat niet in je Windows-map. Kopieer dus overschrijvend, niet met een ```powershell # Vanaf Windows, veilig: kopieert en overschrijft, verwijdert niets aan de doelkant. -robocopy C:\Projects\geointel \\192.168.10.150\appdata\geointel /E +robocopy C:\Projects\geointel \\192.0.2.10\appdata\geointel /E ``` --- @@ -62,10 +62,10 @@ GEOINTEL_STORAGE_PATH=/mnt/user/appdata/geointel/storage GEOINTEL_POSTGIS_DATA_PATH=/mnt/user/appdata/geointel/postgres-data GEOINTEL_MODELS_PATH=/mnt/user/appdata/geointel/models GEOINTEL_BACKUPS_PATH=/mnt/user/appdata/geointel/backups -GEOINTEL_CORS_ORIGINS=https://geointel.itworx.tech,http://geointel.itworx.tech,http://localhost:1202,http://127.0.0.1:1202,http://192.168.10.150:1202 +GEOINTEL_CORS_ORIGINS=https://geointel.example.com,http://geointel.example.com,http://localhost:1202,http://127.0.0.1:1202,http://192.0.2.10:1202 ``` -Staat Nginx Proxy Manager voor poort 1202 op `geointel.itworx.tech`, dan moet +Staat Nginx Proxy Manager voor poort 1202 op `geointel.example.com`, dan moet die hostname in `GEOINTEL_CORS_ORIGINS` staan — anders blokkeert de browser de API-calls vanaf het publieke adres. De backend doet geen host-validatie, dus verder is er niets nodig aan applicatiekant. @@ -164,7 +164,7 @@ curl -fsS http://127.0.0.1:1202/health/ready curl -fsS http://127.0.0.1:1202/api/v1/system/capabilities ``` -Browser: `http://192.168.10.150:1202` +Browser: `http://192.0.2.10:1202` Bij problemen: diff --git a/deploy/unraid/README.md b/deploy/unraid/README.md index 8382084f..8b6fbd69 100644 --- a/deploy/unraid/README.md +++ b/deploy/unraid/README.md @@ -78,7 +78,7 @@ bash deploy/unraid/deploy-release.sh Set `GEOINTEL_POSTGRES_PASSWORD` to a unique value before that first start. -For a browser login, set `GEOINTEL_AUTH_ENABLED=true`, configure one exact +Browser login is enabled by default for the packaged runtime. Configure one exact `GEOINTEL_AUTH_USERNAME`, a `pbkdf2_sha256` password hash and an independent random `GEOINTEL_AUTH_SESSION_SECRET` of at least 32 characters. The plaintext password is never stored in the repository or container configuration. Browser @@ -87,7 +87,11 @@ the backend remain available to trusted in-container operator scripts. Production startup fails before replacing the active container when the password is empty or one of the documented defaults. -Guest access is enabled by default when the operator login gate is active: +`GEOINTEL_AUTH_REQUIRE_HTTPS=true` is also the packaged default. Configure +`GEOINTEL_PUBLIC_BASE_URL` with the external HTTPS origin and terminate TLS at +the trusted reverse proxy; plaintext operator login is rejected. + +Guest access is an explicit opt-in for dedicated public demo installations: ```env GEOINTEL_GUEST_ACCESS_ENABLED=true @@ -95,9 +99,8 @@ GEOINTEL_GUEST_DISPLAY_NAME=Gast GEOINTEL_GUEST_SESSION_TTL_SECONDS=7200 ``` -No extra guest setting is required for a new authenticated deployment. Set -`GEOINTEL_GUEST_ACCESS_ENABLED=false` to disable the button and guest endpoint. -This adds **Als gast verkennen** to the landing page. The generated guest cookie +The packaged default is `false`. Setting it to `true` adds **Als gast +verkennen** to the landing page. The generated guest cookie is short-lived, project-scoped and limited to the canonical demo workflow. Operator mutations and access to another project are rejected by the backend, and the frontend hides management and task-starting controls. The mechanism is @@ -171,12 +174,12 @@ inference; it only updates the env file for the mounted local model. Validate liveness, dependency readiness and the canonical API: ```bash -curl -fsS "http://192.168.10.150:${GEOINTEL_FRONTEND_PORT:-1202}/health/live" -curl -fsS "http://192.168.10.150:${GEOINTEL_FRONTEND_PORT:-1202}/health/ready" -curl -fsS "http://192.168.10.150:${GEOINTEL_FRONTEND_PORT:-1202}/api/v1/system/capabilities" -curl -fsS "http://192.168.10.150:${GEOINTEL_FRONTEND_PORT:-1202}/api/v1/projects" -curl -I "http://192.168.10.150:${GEOINTEL_FRONTEND_PORT:-1202}/geointel-icon.svg" -curl -I "http://192.168.10.150:${GEOINTEL_FRONTEND_PORT:-1202}/geointel-icon.png" +curl -fsS "http://192.0.2.10:${GEOINTEL_FRONTEND_PORT:-1202}/health/live" +curl -fsS "http://192.0.2.10:${GEOINTEL_FRONTEND_PORT:-1202}/health/ready" +curl -fsS "http://192.0.2.10:${GEOINTEL_FRONTEND_PORT:-1202}/api/v1/system/capabilities" +curl -fsS "http://192.0.2.10:${GEOINTEL_FRONTEND_PORT:-1202}/api/v1/projects" +curl -I "http://192.0.2.10:${GEOINTEL_FRONTEND_PORT:-1202}/geointel-icon.svg" +curl -I "http://192.0.2.10:${GEOINTEL_FRONTEND_PORT:-1202}/geointel-icon.png" ``` The live migration smoke also checks PostgreSQL database collation metadata. @@ -201,7 +204,7 @@ Edit `.env`: ```env GEOINTEL_FRONTEND_PORT=1203 -GEOINTEL_CORS_ORIGINS=http://localhost:1203,http://127.0.0.1:1203,http://192.168.10.150:1203 +GEOINTEL_CORS_ORIGINS=http://localhost:1203,http://127.0.0.1:1203,http://192.0.2.10:1203 ``` Apply: diff --git a/deploy/unraid/geointel-unraid-template.xml b/deploy/unraid/geointel-unraid-template.xml index 611d8420..c40d090e 100644 --- a/deploy/unraid/geointel-unraid-template.xml +++ b/deploy/unraid/geointel-unraid-template.xml @@ -2,17 +2,17 @@ geointel geointel-all-in-one:latest - gitea-widefrog:NuklearRabbit/geointel.git + https://gitea.example.com/owner/geointel bridge bash false - http://192.168.10.150:1202 + https://gitea.example.com/owner/geointel/issues GeoIntel Belgium and North Sea GeoIntel all-in-one runs the Belgium and Belgian North Sea workbench in one Docker container: embedded PostGIS, FastAPI backend, nginx frontend and MapLibre UI. Use docker-compose.unraid.yml or this template so the web port, storage path and database path can be edited from Unraid. Productivity: Tools: GIS: http://[IP]:[PORT:80]/ deploy/unraid/geointel-unraid-template.xml - http://192.168.10.150:1202/geointel-icon.png + https://gitea.example.com/owner/geointel/raw/branch/main/frontend/public/geointel-icon.png --add-host=host.docker.internal:host-gateway @@ -30,20 +30,21 @@ geointel geointel change-me-before-shared-use - http://localhost:1202,http://127.0.0.1:1202,http://192.168.10.150:1202 + https://geointel.example.com,http://localhost:1202,http://127.0.0.1:1202 500 64 - false + true + true 43200 - http://localhost:1202 + https://geointel.example.com - true + false Gast 7200 true diff --git a/deploy/unraid/geointel.env.example b/deploy/unraid/geointel.env.example index 1592d24b..097869d3 100644 --- a/deploy/unraid/geointel.env.example +++ b/deploy/unraid/geointel.env.example @@ -6,7 +6,7 @@ # development stack in docker-compose.yml. COMPOSE_FILE=docker-compose.unraid.yml -# Browser URL: http://: +# Browser URL: configure the HTTPS reverse-proxy origin below. GEOINTEL_FRONTEND_PORT=1202 # Persisted application artifacts: uploads, tiles, masks, reports and exports. @@ -30,7 +30,7 @@ GEOINTEL_POSTGRES_PASSWORD=change-me-before-shared-use # Browser origins allowed when directly calling the backend API. # Neem hier ook de publieke hostname op zodra Nginx Proxy Manager ervoor staat. -GEOINTEL_CORS_ORIGINS=https://geointel.itworx.tech,http://geointel.itworx.tech,http://localhost:1202,http://127.0.0.1:1202,http://192.168.10.150:1202 +GEOINTEL_CORS_ORIGINS=https://geointel.example.com,http://localhost:1202,http://127.0.0.1:1202 # Upload guard in MiB. The same 1-2048 limit is applied by nginx and FastAPI. GEOINTEL_MAX_UPLOAD_MB=500 @@ -42,7 +42,8 @@ GEOINTEL_AOI_WORKER_POLL_SECONDS=2 # Optional single-operator access gate. Never store a plaintext password here. # Generate the password hash with AuthService.hash_password and use a unique, # random session secret of at least 32 characters. -GEOINTEL_AUTH_ENABLED=false +GEOINTEL_AUTH_ENABLED=true +GEOINTEL_AUTH_REQUIRE_HTTPS=true GEOINTEL_AUTH_USERNAME= GEOINTEL_AUTH_PASSWORD_HASH= GEOINTEL_AUTH_SESSION_SECRET= @@ -50,18 +51,17 @@ GEOINTEL_AUTH_SESSION_TTL_SECONDS=43200 # Optional additive Authentik OIDC login. Configure all fields together. The # local operator credentials above remain the recovery login. -GEOINTEL_PUBLIC_BASE_URL=http://localhost:1202 +GEOINTEL_PUBLIC_BASE_URL=https://geointel.example.com GEOINTEL_AUTHENTIK_ISSUER= GEOINTEL_AUTHENTIK_CLIENT_ID= GEOINTEL_AUTHENTIK_CLIENT_SECRET= GEOINTEL_AUTHENTIK_ALLOWED_EMAIL= -# Guest access is enabled by default whenever operator authentication is active. -# It opens the seeded GeoIntel demo in a temporary, API-enforced restricted -# session. Set this to false on installations containing private project data. +# Guest access is opt-in. It opens the seeded GeoIntel demo in a temporary, +# API-enforced restricted session and belongs only on a dedicated demo install. # LET OP: scripts/configure_operator_login.sh zet dit op false tenzij je # expliciet --guest-access true meegeeft. -GEOINTEL_GUEST_ACCESS_ENABLED=true +GEOINTEL_GUEST_ACCESS_ENABLED=false GEOINTEL_GUEST_DISPLAY_NAME=Gast GEOINTEL_GUEST_SESSION_TTL_SECONDS=7200 diff --git a/deploy/unraid/run-dockerman-container.sh b/deploy/unraid/run-dockerman-container.sh index dbe287ec..6482a7a1 100644 --- a/deploy/unraid/run-dockerman-container.sh +++ b/deploy/unraid/run-dockerman-container.sh @@ -31,22 +31,23 @@ GEOINTEL_POSTGIS_DATA_PATH="${GEOINTEL_POSTGIS_DATA_PATH:-/mnt/user/appdata/geoi GEOINTEL_POSTGRES_DB="${GEOINTEL_POSTGRES_DB:-geointel}" GEOINTEL_POSTGRES_USER="${GEOINTEL_POSTGRES_USER:-geointel}" GEOINTEL_POSTGRES_PASSWORD="${GEOINTEL_POSTGRES_PASSWORD:-}" -GEOINTEL_CORS_ORIGINS="${GEOINTEL_CORS_ORIGINS:-http://localhost:${GEOINTEL_FRONTEND_PORT},http://127.0.0.1:${GEOINTEL_FRONTEND_PORT},http://192.168.10.150:${GEOINTEL_FRONTEND_PORT}}" +GEOINTEL_CORS_ORIGINS="${GEOINTEL_CORS_ORIGINS:-http://localhost:${GEOINTEL_FRONTEND_PORT},http://127.0.0.1:${GEOINTEL_FRONTEND_PORT}}" GEOINTEL_MAX_UPLOAD_MB="${GEOINTEL_MAX_UPLOAD_MB:-500}" GEOINTEL_MAX_IN_MEMORY_VECTOR_MB="${GEOINTEL_MAX_IN_MEMORY_VECTOR_MB:-64}" GEOINTEL_AOI_WORKER_ENABLED="${GEOINTEL_AOI_WORKER_ENABLED:-true}" GEOINTEL_AOI_WORKER_POLL_SECONDS="${GEOINTEL_AOI_WORKER_POLL_SECONDS:-2}" -GEOINTEL_AUTH_ENABLED="${GEOINTEL_AUTH_ENABLED:-false}" +GEOINTEL_AUTH_ENABLED="${GEOINTEL_AUTH_ENABLED:-true}" +GEOINTEL_AUTH_REQUIRE_HTTPS="${GEOINTEL_AUTH_REQUIRE_HTTPS:-true}" GEOINTEL_AUTH_USERNAME="${GEOINTEL_AUTH_USERNAME:-}" GEOINTEL_AUTH_PASSWORD_HASH="${GEOINTEL_AUTH_PASSWORD_HASH:-}" GEOINTEL_AUTH_SESSION_SECRET="${GEOINTEL_AUTH_SESSION_SECRET:-}" GEOINTEL_AUTH_SESSION_TTL_SECONDS="${GEOINTEL_AUTH_SESSION_TTL_SECONDS:-43200}" -GEOINTEL_PUBLIC_BASE_URL="${GEOINTEL_PUBLIC_BASE_URL:-http://localhost:${GEOINTEL_FRONTEND_PORT}}" +GEOINTEL_PUBLIC_BASE_URL="${GEOINTEL_PUBLIC_BASE_URL:-https://geointel.example.com}" GEOINTEL_AUTHENTIK_ISSUER="${GEOINTEL_AUTHENTIK_ISSUER:-}" GEOINTEL_AUTHENTIK_CLIENT_ID="${GEOINTEL_AUTHENTIK_CLIENT_ID:-}" GEOINTEL_AUTHENTIK_CLIENT_SECRET="${GEOINTEL_AUTHENTIK_CLIENT_SECRET:-}" GEOINTEL_AUTHENTIK_ALLOWED_EMAIL="${GEOINTEL_AUTHENTIK_ALLOWED_EMAIL:-}" -GEOINTEL_GUEST_ACCESS_ENABLED="${GEOINTEL_GUEST_ACCESS_ENABLED:-true}" +GEOINTEL_GUEST_ACCESS_ENABLED="${GEOINTEL_GUEST_ACCESS_ENABLED:-false}" GEOINTEL_GUEST_DISPLAY_NAME="${GEOINTEL_GUEST_DISPLAY_NAME:-Gast}" GEOINTEL_GUEST_SESSION_TTL_SECONDS="${GEOINTEL_GUEST_SESSION_TTL_SECONDS:-7200}" ORTHOPHOTO_ENABLED="${ORTHOPHOTO_ENABLED:-true}" @@ -213,6 +214,14 @@ validate_runtime_config() { return 2 ;; esac + + case "$GEOINTEL_AUTH_REQUIRE_HTTPS" in + true|false) ;; + *) + echo "GEOINTEL_AUTH_REQUIRE_HTTPS must be true or false." >&2 + return 2 + ;; + esac if [ "$GEOINTEL_AUTH_ENABLED" = "true" ]; then if [ -z "$GEOINTEL_AUTH_USERNAME" ] \ || [ -z "$GEOINTEL_AUTH_PASSWORD_HASH" ] \ @@ -227,6 +236,15 @@ validate_runtime_config() { return 2 ;; esac + if [ "$GEOINTEL_AUTH_REQUIRE_HTTPS" = "true" ]; then + case "$GEOINTEL_PUBLIC_BASE_URL" in + https://*) ;; + *) + echo "GEOINTEL_PUBLIC_BASE_URL must use HTTPS when operator login requires HTTPS." >&2 + return 2 + ;; + esac + fi fi local authentik_count=0 @@ -365,6 +383,7 @@ docker run -d \ -e GEOINTEL_AOI_WORKER_ENABLED="$GEOINTEL_AOI_WORKER_ENABLED" \ -e GEOINTEL_AOI_WORKER_POLL_SECONDS="$GEOINTEL_AOI_WORKER_POLL_SECONDS" \ -e GEOINTEL_AUTH_ENABLED="$GEOINTEL_AUTH_ENABLED" \ + -e GEOINTEL_AUTH_REQUIRE_HTTPS="$GEOINTEL_AUTH_REQUIRE_HTTPS" \ -e GEOINTEL_AUTH_USERNAME="$GEOINTEL_AUTH_USERNAME" \ -e GEOINTEL_AUTH_PASSWORD_HASH="$GEOINTEL_AUTH_PASSWORD_HASH" \ -e GEOINTEL_AUTH_SESSION_SECRET="$GEOINTEL_AUTH_SESSION_SECRET" \ diff --git a/docker-compose.unraid.yml b/docker-compose.unraid.yml index 55331271..7dec641f 100644 --- a/docker-compose.unraid.yml +++ b/docker-compose.unraid.yml @@ -22,17 +22,18 @@ services: GEOINTEL_CORS_ORIGINS: ${GEOINTEL_CORS_ORIGINS:-http://localhost:1202,http://127.0.0.1:1202} GEOINTEL_MAX_UPLOAD_MB: ${GEOINTEL_MAX_UPLOAD_MB:-500} GEOINTEL_MAX_IN_MEMORY_VECTOR_MB: ${GEOINTEL_MAX_IN_MEMORY_VECTOR_MB:-64} - GEOINTEL_AUTH_ENABLED: ${GEOINTEL_AUTH_ENABLED:-false} + GEOINTEL_AUTH_ENABLED: ${GEOINTEL_AUTH_ENABLED:-true} + GEOINTEL_AUTH_REQUIRE_HTTPS: ${GEOINTEL_AUTH_REQUIRE_HTTPS:-true} GEOINTEL_AUTH_USERNAME: ${GEOINTEL_AUTH_USERNAME:-} GEOINTEL_AUTH_PASSWORD_HASH: ${GEOINTEL_AUTH_PASSWORD_HASH:-} GEOINTEL_AUTH_SESSION_SECRET: ${GEOINTEL_AUTH_SESSION_SECRET:-} GEOINTEL_AUTH_SESSION_TTL_SECONDS: ${GEOINTEL_AUTH_SESSION_TTL_SECONDS:-43200} - GEOINTEL_PUBLIC_BASE_URL: ${GEOINTEL_PUBLIC_BASE_URL:-http://localhost:1202} + GEOINTEL_PUBLIC_BASE_URL: ${GEOINTEL_PUBLIC_BASE_URL:-https://geointel.example.com} GEOINTEL_AUTHENTIK_ISSUER: ${GEOINTEL_AUTHENTIK_ISSUER:-} GEOINTEL_AUTHENTIK_CLIENT_ID: ${GEOINTEL_AUTHENTIK_CLIENT_ID:-} GEOINTEL_AUTHENTIK_CLIENT_SECRET: ${GEOINTEL_AUTHENTIK_CLIENT_SECRET:-} GEOINTEL_AUTHENTIK_ALLOWED_EMAIL: ${GEOINTEL_AUTHENTIK_ALLOWED_EMAIL:-} - GEOINTEL_GUEST_ACCESS_ENABLED: ${GEOINTEL_GUEST_ACCESS_ENABLED:-true} + GEOINTEL_GUEST_ACCESS_ENABLED: ${GEOINTEL_GUEST_ACCESS_ENABLED:-false} GEOINTEL_GUEST_DISPLAY_NAME: ${GEOINTEL_GUEST_DISPLAY_NAME:-Gast} GEOINTEL_GUEST_SESSION_TTL_SECONDS: ${GEOINTEL_GUEST_SESSION_TTL_SECONDS:-7200} ORTHOPHOTO_ENABLED: ${ORTHOPHOTO_ENABLED:-true} diff --git a/docker-compose.yml b/docker-compose.yml index 941f277e..6b623b21 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -25,6 +25,7 @@ services: MAX_UPLOAD_MB: ${GEOINTEL_MAX_UPLOAD_MB:-500} GEOINTEL_MAX_IN_MEMORY_VECTOR_MB: ${GEOINTEL_MAX_IN_MEMORY_VECTOR_MB:-64} GEOINTEL_AUTH_ENABLED: ${GEOINTEL_AUTH_ENABLED:-false} + GEOINTEL_AUTH_REQUIRE_HTTPS: ${GEOINTEL_AUTH_REQUIRE_HTTPS:-false} GEOINTEL_AUTH_USERNAME: ${GEOINTEL_AUTH_USERNAME:-} GEOINTEL_AUTH_PASSWORD_HASH: ${GEOINTEL_AUTH_PASSWORD_HASH:-} GEOINTEL_AUTH_SESSION_SECRET: ${GEOINTEL_AUTH_SESSION_SECRET:-} @@ -34,7 +35,7 @@ services: GEOINTEL_AUTHENTIK_CLIENT_ID: ${GEOINTEL_AUTHENTIK_CLIENT_ID:-} GEOINTEL_AUTHENTIK_CLIENT_SECRET: ${GEOINTEL_AUTHENTIK_CLIENT_SECRET:-} GEOINTEL_AUTHENTIK_ALLOWED_EMAIL: ${GEOINTEL_AUTHENTIK_ALLOWED_EMAIL:-} - GEOINTEL_GUEST_ACCESS_ENABLED: ${GEOINTEL_GUEST_ACCESS_ENABLED:-true} + GEOINTEL_GUEST_ACCESS_ENABLED: ${GEOINTEL_GUEST_ACCESS_ENABLED:-false} GEOINTEL_GUEST_DISPLAY_NAME: ${GEOINTEL_GUEST_DISPLAY_NAME:-Gast} GEOINTEL_GUEST_SESSION_TTL_SECONDS: ${GEOINTEL_GUEST_SESSION_TTL_SECONDS:-7200} ORTHOPHOTO_ENABLED: ${ORTHOPHOTO_ENABLED:-true} @@ -165,7 +166,7 @@ services: OLLAMA_MAX_OUTPUT_TOKENS: ${OLLAMA_MAX_OUTPUT_TOKENS:-1200} OLLAMA_CONTEXT_TOKENS: ${OLLAMA_CONTEXT_TOKENS:-16384} ports: - - "${GEOINTEL_BACKEND_PORT:-8000}:8000" + - "${GEOINTEL_BIND_ADDRESS:-127.0.0.1}:${GEOINTEL_BACKEND_PORT:-8000}:8000" volumes: - ${GEOINTEL_STORAGE_PATH:-./storage}:/app/storage - ${GEOINTEL_MODELS_PATH:-./models}:/app/models @@ -188,7 +189,7 @@ services: build: context: ./frontend ports: - - "${GEOINTEL_FRONTEND_PORT:-1202}:80" + - "${GEOINTEL_BIND_ADDRESS:-127.0.0.1}:${GEOINTEL_FRONTEND_PORT:-1202}:80" depends_on: backend: condition: service_healthy diff --git a/docs/AI_PIPELINES.md b/docs/AI_PIPELINES.md index 1aac8f68..7ab88889 100644 --- a/docs/AI_PIPELINES.md +++ b/docs/AI_PIPELINES.md @@ -234,7 +234,7 @@ does not download weights or accept arbitrary model paths from the browser. Operational runtime validation can be run against Docker/Tower with: ```bash -bash scripts/verify_model_asset_detection_workflow.sh http://192.168.10.150:1202 +bash scripts/verify_model_asset_detection_workflow.sh http://192.0.2.10:1202 ``` The smoke seeds the explicit offline demo raster, creates a tile manifest, @@ -267,7 +267,7 @@ demo fixtures: ```bash REAL_RASTER_PATH=/mnt/user/appdata/geointel/data/orthophoto.tif \ REAL_REFERENCE_VECTOR_PATH=/mnt/user/appdata/geointel/data/reference-buildings.geojson \ -bash scripts/verify_real_data_detection_qa_workflow.sh http://192.168.10.150:1202 +bash scripts/verify_real_data_detection_qa_workflow.sh http://192.0.2.10:1202 ``` The script verifies the full persisted chain: @@ -333,7 +333,7 @@ For confidence-threshold calibration, use the sweep wrapper: REAL_RASTER_PATH=/mnt/user/appdata/geointel/storage/operator-data/geel_orthophoto_wms_512.tif \ REAL_REFERENCE_VECTOR_PATH=/mnt/user/appdata/geointel/storage/operator-data/geel_grb_gbg_buildings.geojson \ CALIBRATION_THRESHOLDS="0.50 0.35 0.25 0.15" \ -bash scripts/run_detection_calibration_sweep.sh http://192.168.10.150:1202 +bash scripts/run_detection_calibration_sweep.sh http://192.0.2.10:1202 ``` The sweep runs the real-data workflow once per threshold and then reads the @@ -354,7 +354,7 @@ QUALITY_MODEL_ASSET_IDS="yolov8n-building-segmentation-pt yolov8n-pt" \ QUALITY_TILE_SIZES="512 640" \ QUALITY_TILE_OVERLAPS="64" \ QUALITY_THRESHOLDS="0.50 0.15" \ -bash scripts/run_detection_quality_matrix.sh http://192.168.10.150:1202 +bash scripts/run_detection_quality_matrix.sh http://192.0.2.10:1202 ``` The matrix repeats the same persisted real-data workflow for every combination @@ -374,7 +374,7 @@ QUALITY_TILE_SIZES="512" \ QUALITY_TILE_OVERLAPS="64" \ QUALITY_THRESHOLDS="0.35 0.15" \ BACKGROUND_SPLIT_OUTPUT_DIR=artifacts/detection-hard-negatives/aoi1024bg512r3e50-split \ -bash scripts/run_background_corpus_split_matrix.sh http://192.168.10.150:1202 +bash scripts/run_background_corpus_split_matrix.sh http://192.0.2.10:1202 ``` The split runner writes `background_corpus_split_summary.json` and Markdown @@ -410,7 +410,7 @@ QUALITY_TILE_OVERLAPS="64" \ QUALITY_THRESHOLDS="0.35 0.15" \ BACKGROUND_SPLIT_OUTPUT_DIR=artifacts/detection-hard-negatives/aoi1024bg512r3e50-split \ PROMOTION_OUTPUT_DIR=artifacts/detection-model-promotion/aoi1024bg512r3e50-split-aware \ -bash scripts/run_split_background_promotion_workflow.sh http://192.168.10.150:1202 +bash scripts/run_split_background_promotion_workflow.sh http://192.0.2.10:1202 ``` The wrapper keeps the same safety boundary: existing dataset upload, configured @@ -430,7 +430,7 @@ samples with persisted reference features, matching the matrix runner. ```bash PROMOTION_POSITIVE_PORTFOLIO_PATH=artifacts/detection-quality-matrix/multi-sample/aoi1024bg512r3e50-positive/multi_sample_quality_summary.json \ OPERATOR_SAMPLE_MANIFEST_PATH=storage/operator-data/operator_samples_manifest.json \ -bash scripts/run_split_background_promotion_workflow.sh --preflight-only http://192.168.10.150:1202 +bash scripts/run_split_background_promotion_workflow.sh --preflight-only http://192.0.2.10:1202 ``` The underlying single-category matrix remains available: @@ -443,7 +443,7 @@ QUALITY_MODEL_ASSET_IDS="geointel-building-yolov8n-expanded160e50-pt geointel-bu QUALITY_TILE_SIZES="640" \ QUALITY_TILE_OVERLAPS="64" \ QUALITY_THRESHOLDS="0.25 0.15 0.05" \ -bash scripts/run_operator_hard_negative_detection_matrix.sh http://192.168.10.150:1202 +bash scripts/run_operator_hard_negative_detection_matrix.sh http://192.0.2.10:1202 ``` The hard-negative matrix uploads only background rasters and counts detections @@ -546,7 +546,7 @@ QUALITY_MODEL_ASSET_IDS="yolov8n-building-segmentation-pt yolov8n-pt" \ QUALITY_TILE_SIZES="512 640" \ QUALITY_TILE_OVERLAPS="64" \ QUALITY_THRESHOLDS="0.50 0.15" \ -bash scripts/run_multi_sample_detection_quality_matrix.sh http://192.168.10.150:1202 +bash scripts/run_multi_sample_detection_quality_matrix.sh http://192.0.2.10:1202 ``` The multi-sample summary exposes `best_overall_by_score`, @@ -622,7 +622,7 @@ summary: ```bash CALIBRATION_SUMMARY_PATH=/mnt/user/appdata/geointel/artifacts/detection-calibration/20260707T002103Z/calibration_summary.json \ -bash scripts/export_detection_calibration_evidence.sh http://192.168.10.150:1202 +bash scripts/export_detection_calibration_evidence.sh http://192.0.2.10:1202 ``` The evidence bundle calls diff --git a/docs/API_CONTRACTS.md b/docs/API_CONTRACTS.md index 40860b1a..58939470 100644 --- a/docs/API_CONTRACTS.md +++ b/docs/API_CONTRACTS.md @@ -47,9 +47,11 @@ Any valid GeoJSON geometry object. V1 primarily expects `Polygon` and `MultiPoly ## Operator authentication and guest demo -Authentication remains an optional single-operator access gate, not multi-user -account management or tenant isolation. When `GEOINTEL_AUTH_ENABLED=true`, -every `/api/v1/*` request except the four authentication endpoints below +Authentication remains an optional single-operator access gate for local +development and is enabled by default in the packaged Unraid runtime; it is not +multi-user account management or tenant isolation. When +`GEOINTEL_AUTH_ENABLED=true`, every `/api/v1/*` request except the six +authentication routes below requires a valid signed `geointel_session` cookie. Missing, expired or modified sessions return HTTP 401 with `AUTHENTICATION_REQUIRED`. Direct loopback calls to the backend without proxy headers remain available to trusted in-container @@ -57,9 +59,12 @@ operator tools; the backend is bound to loopback in the all-in-one runtime. The runtime stores only a PBKDF2-SHA256 operator password hash and an independent session-signing secret. The browser receives an HttpOnly, -SameSite=Strict, time-limited cookie. Five failed operator-login attempts for -one client/username combination within five minutes temporarily return HTTP -429 `LOGIN_RATE_LIMITED`. +SameSite=Strict, time-limited cookie. Packaged deployments also set +`GEOINTEL_AUTH_REQUIRE_HTTPS=true`; plaintext password login then returns HTTP +426 `AUTH_HTTPS_REQUIRED`. Five failed operator-login attempts for one resolved +client/username combination within five minutes temporarily return HTTP 429 +`LOGIN_RATE_LIMITED`. Forwarded client addresses are accepted only from the +loopback or container-proxy networks used by the shipped nginx topology. Optional guest access is a configuration-gated demonstration mode. It creates a shorter signed session with role `guest`, scopes that session to the @@ -72,6 +77,7 @@ management, uploads, source/runtime configuration, evidence review and other administrative mutations remain unavailable. This is deliberately **not** a substitute for user accounts, authorization or tenant isolation; expose it only on a dedicated demo installation without private or operational data. +Guest access defaults off and must be enabled explicitly. The functional demo boundary includes bounded, project-path-scoped official source acquisition, persisted bbox selections, temporal comparisons and change @@ -131,7 +137,8 @@ return `role: "guest"` and the UUID of their bound demo project in Successful login sets the session cookie and returns the authenticated session shape. Invalid credentials return HTTP 401 `INVALID_CREDENTIALS`; username -existence is not disclosed. +existence is not disclosed. When HTTPS is required, a plaintext request returns +HTTP 426 `AUTH_HTTPS_REQUIRED` before credentials are evaluated. ### GET `/api/v1/auth/authentik/start` diff --git a/docs/BUILD_STATUS.md b/docs/BUILD_STATUS.md index 81711c6e..a4d0005b 100644 --- a/docs/BUILD_STATUS.md +++ b/docs/BUILD_STATUS.md @@ -70,5 +70,5 @@ Live release evidence: python scripts/capture_release_evidence.py \ --output storage/release-evidence/rc-current/baseline.json \ --release-id rc-belgium-north-sea \ - --live-base-url http://192.168.10.150:1202 + --live-base-url http://192.0.2.10:1202 ``` diff --git a/docs/CODEX_EXECUTION_LOG.md b/docs/CODEX_EXECUTION_LOG.md index 6c1edcd6..ecc256da 100644 --- a/docs/CODEX_EXECUTION_LOG.md +++ b/docs/CODEX_EXECUTION_LOG.md @@ -1,3 +1,42 @@ +## 2026-08-31 - Voorbereiding publieke repository + +### Opgeleverd + +- De actuele `origin/main` is fast-forward geĆÆntegreerd met de volledige + `chatgpt/release-hygiene-20260830`-reeks op + `codex/public-release-readiness`; de private Tower-handoffcommit en de + ongerelateerde DockDeck/Stitch-geschiedenis zijn niet gemerged. +- Alle resterende getrackte `.codex-input`, root-`data` SQLite/WAL/SHM, + `.playwright-mcp` en lokale `.mcp.json`-artefacten zijn uit de publicatieboom + verwijderd en blijvend genegeerd. +- Operator-specifieke IP-, domein- en SSH-sleutelvoorbeelden zijn vervangen + door documentatievoorbeelden; een nieuwe repositoryhygiĆ«necheck blokkeert + regressies in de releasegate. +- De Unraid-verpakking schakelt operatorauthenticatie en HTTPS-login fail-closed + in, gasttoegang staat standaard uit, developmentpoorten binden standaard aan + loopback en login-throttling herkent alleen forwarding van vertrouwde + containerproxies. +- De checkpoint-inspector gebruikt PyTorch `weights_only=True` en deserialiseert + geen willekeurige legacy objecten meer. + +### Verificatie + +- De volledige Git-geschiedenis is met Gitleaks onderzocht: 22 generieke + sleutelnaam-matches waren domeinidentificatoren en geen credentials. +- `pip-audit` en `npm audit` vonden geen bekende dependencykwetsbaarheden. +- De gerichte auth-, runtimeconfig-, Unraid-template- en + repositoryhygiĆ«nesuite slaagt met 58 tests; Ruff, Python-compilatie, + repositoryhygiĆ«ne, beide Compose-configuraties, gewijzigde shellsyntax en + `git diff --check` slagen eveneens. + +### Open publicatiegrenzen + +- Verwijderde private artefacten bestaan nog in bereikbare oude Git-objecten en + remote branches. Publicatie vereist daarom expliciete keuze voor een + gecontroleerde history rewrite/force-push of een nieuwe schone repository. +- De repository heeft nog geen rootlicentie; de eigenaar moet de gewenste + licentie kiezen voordat hergebruik juridisch is toegestaan. + ## 2026-08-29 - Gitea release-gateherstel ### Opgeleverd @@ -792,7 +831,7 @@ Validation evidence: five product keys, with zero missing metadata/storage paths and zero duplicate Area/product pairs. All 145 TIFF files are non-empty and occupy 56 MB. - A second complete-region operator run reused all five existing Datasets. -- Browser validation on `http://192.168.10.150:1202` showed every regional +- Browser validation on `http://192.0.2.10:1202` showed every regional thematic source as available, rendered the MapLibre overlay and calculated the complete Kempen result without browser warnings or errors. - The full readiness gate passed 733 backend tests, compilation, fixture and @@ -1052,7 +1091,7 @@ Runtime evidence: - Strict pure-empty background evidence was clean at thresholds `0.15`, `0.25` and `0.35`; threshold `0.05` produced one Postel-bos detection. - Split-aware promotion report recommended `none`: every threshold failed the positive mean-F1 gate, and `0.05` also failed background false-positive pressure. - The existing active `geointel-building-yolov8s-aoi1024bg512r3e50-pt` remains materially stronger at its promoted `0.35` profile with mean F1 `0.320866`; no model default or `.env` value was changed. -- Pushed implementation commit `8daaa07` and redeployed the AI-enabled Tower all-in-one container on `http://192.168.10.150:1202`. +- Pushed implementation commit `8daaa07` and redeployed the AI-enabled Tower all-in-one container on `http://192.0.2.10:1202`. - Post-deploy live migration smoke passed with PostGIS `3.6`, required schema objects and Alembic head `202606120900`. - In-app browser verification found no console warnings/errors, confirmed matching full-value context tooltips and a two-line readiness value, and showed both the inactive low-variance candidate and the unchanged active `aoi1024bg512r3e50` asset in Detection Lab. @@ -1111,7 +1150,7 @@ Tested: - Red step: `python -m pytest backend\tests\test_sprint127_operator_sample_quality_matrix.py backend\tests\test_sprint131_operator_sample_expansion.py -q` failed because sample prep lacked larger-AOI options. - `python -m pytest backend\tests\test_sprint127_operator_sample_quality_matrix.py backend\tests\test_sprint131_operator_sample_expansion.py -q` (`8 passed`) - Full readiness: `bash scripts/run_readiness_check.sh` (`427 passed`, frontend typecheck/build passed). -- Tower deploy: first AI rebuild failed with Docker storage full; after Docker build cache cleanup `/var/lib/docker` had 98G free and redeploy passed live migration smoke and browser runtime verification on `http://192.168.10.150:1202`. +- Tower deploy: first AI rebuild failed with Docker storage full; after Docker build cache cleanup `/var/lib/docker` had 98G free and redeploy passed live migration smoke and browser runtime verification on `http://192.0.2.10:1202`. - Tower dataset audit: exported `/app/storage/operator-data/yolo-building-aoi512-visible025` with `min_label_visible_ratio=0.25`; audit returned `needs_attention` because the current 512x512 source rasters still produce only 16 tiles and median normalized box area remains below gate. Next: @@ -1988,7 +2027,7 @@ Tested: - Live model asset catalog reported `yolov8s-building-segmentation-pt`, `size_bytes=23814274`, `will_download_models=false`, SHA256 `a27af31654c6a4edbdc85581c33d93c13986b5919de7de410f8d85d801b3bb34`. - Live preflight passed with `model_asset_id=yolov8s-building-segmentation-pt`, `check_model_load=true`, `model_file_exists=true`, `model_load_ok=true`, `will_download_models=false` and `will_run_inference=false`. - Tower 36-run matrix passed: - - command: `OPERATOR_SAMPLE_MANIFEST_PATH=storage/operator-data/operator_samples_manifest.json QUALITY_MODEL_ASSET_IDS="yolov8n-building-segmentation-pt yolov8s-building-segmentation-pt" QUALITY_TILE_SIZES="512 640" QUALITY_TILE_OVERLAPS="64" QUALITY_THRESHOLDS="0.50 0.25 0.15" bash scripts/run_multi_sample_detection_quality_matrix.sh http://192.168.10.150:1202` + - command: `OPERATOR_SAMPLE_MANIFEST_PATH=storage/operator-data/operator_samples_manifest.json QUALITY_MODEL_ASSET_IDS="yolov8n-building-segmentation-pt yolov8s-building-segmentation-pt" QUALITY_TILE_SIZES="512 640" QUALITY_TILE_OVERLAPS="64" QUALITY_THRESHOLDS="0.50 0.25 0.15" bash scripts/run_multi_sample_detection_quality_matrix.sh http://192.0.2.10:1202` - output: `/mnt/user/appdata/geointel/artifacts/detection-quality-matrix/multi-sample/20260707T025932Z/multi_sample_quality_summary.json` - best overall score: Mol, `yolov8s-building-segmentation-pt`, tile `640`, threshold `0.15`, 55 detections, 9 matches, 46 false positives, 365 false negatives, precision `0.16363636363636364`, recall `0.02406417112299465`, F1 `0.04195804195804196`. - best overall recall: Mol, `yolov8s-building-segmentation-pt`, tile `512`, threshold `0.15`, 77 detections, 9 matches, 68 false positives, 365 false negatives, precision `0.11688311688311688`, recall `0.02406417112299465`, F1 `0.03991130820399113`. @@ -2041,7 +2080,7 @@ Tested: - Turnhout was newly prepared: 773 GRB GBG reference features. - Manifest: `/mnt/user/appdata/geointel/storage/operator-data/operator_samples_manifest.json`. - Tower multi-sample quality matrix passed: - - command: `OPERATOR_SAMPLE_MANIFEST_PATH=storage/operator-data/operator_samples_manifest.json QUALITY_MODEL_ASSET_IDS="yolov8n-building-segmentation-pt yolov8n-pt" QUALITY_TILE_SIZES="512 640" QUALITY_TILE_OVERLAPS="64" QUALITY_THRESHOLDS="0.50 0.15" bash scripts/run_multi_sample_detection_quality_matrix.sh http://192.168.10.150:1202` + - command: `OPERATOR_SAMPLE_MANIFEST_PATH=storage/operator-data/operator_samples_manifest.json QUALITY_MODEL_ASSET_IDS="yolov8n-building-segmentation-pt yolov8n-pt" QUALITY_TILE_SIZES="512 640" QUALITY_TILE_OVERLAPS="64" QUALITY_THRESHOLDS="0.50 0.15" bash scripts/run_multi_sample_detection_quality_matrix.sh http://192.0.2.10:1202` - output: `/mnt/user/appdata/geointel/artifacts/detection-quality-matrix/multi-sample/20260707T025303Z/multi_sample_quality_summary.json` - run count: 24 real persisted workflows across 3 samples. - best overall score/recall: Turnhout, `yolov8n-building-segmentation-pt`, tile `512`, overlap `64`, threshold `0.15`, 142 detections, 18 matches, 124 false positives, 755 false negatives, precision `0.1267605633802817`, recall `0.02328589909443726`, F1 `0.03934426229508197`. @@ -2088,7 +2127,7 @@ Tested: - `bash scripts/run_readiness_check.sh` passed: 390 backend tests, frontend typecheck/build, Alembic head `202606120900`, live smoke syntax checks and the new matrix syntax check. - Pushed commit `e728f70` to Gitea and fast-forwarded Tower `/mnt/user/appdata/geointel` to the same commit. - Tower live matrix passed against the Geel operator sample: - - command: `QUALITY_MODEL_ASSET_IDS="yolov8n-building-segmentation-pt yolov8n-pt" QUALITY_TILE_SIZES="512 640" QUALITY_TILE_OVERLAPS="64" QUALITY_THRESHOLDS="0.50 0.15" bash scripts/run_detection_quality_matrix.sh http://192.168.10.150:1202` + - command: `QUALITY_MODEL_ASSET_IDS="yolov8n-building-segmentation-pt yolov8n-pt" QUALITY_TILE_SIZES="512 640" QUALITY_TILE_OVERLAPS="64" QUALITY_THRESHOLDS="0.50 0.15" bash scripts/run_detection_quality_matrix.sh http://192.0.2.10:1202` - output: `/mnt/user/appdata/geointel/artifacts/detection-quality-matrix/20260707T023000Z/quality_matrix_summary.json` - run count: 8 - best by score and recall: `yolov8n-building-segmentation-pt`, tile `512`, overlap `64`, threshold `0.15`, 80 detections, 6 matches, 74 false positives, 611 false negatives, precision `0.075`, recall `0.009724473257698542`, F1 `0.017216642754662843`. @@ -2216,7 +2255,7 @@ Validation: - `bash scripts/run_readiness_check.sh` passed: 387 backend tests, Alembic head check, frontend typecheck/build and shell syntax checks. - Tower deploy from commit `71c2cd9` passed with `GEOINTEL_INSTALL_AI=true`. - Deploy-time live migration smoke passed; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. -- Deploy-time browser runtime verification passed for `http://192.168.10.150:1202`. +- Deploy-time browser runtime verification passed for `http://192.0.2.10:1202`. - Real-data smoke after the class-normalization deploy passed and persisted 4 detections: - project: `cb80638d-dbef-48ac-b19c-cec7c3efc96e` - raster dataset: `ae0ff76d-70c0-404f-b777-54d14517179a` @@ -2227,7 +2266,7 @@ Validation: - persisted detections used canonical `class_name=building` and preserved `model_class_name=Building`. - Tower deploy from commit `bc87681` passed with `GEOINTEL_INSTALL_AI=true`. - Deploy-time live migration smoke passed; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. -- Deploy-time browser runtime verification passed for `http://192.168.10.150:1202`. +- Deploy-time browser runtime verification passed for `http://192.0.2.10:1202`. - Real-data smoke after the tile-CRS deploy passed and persisted 4 detections: - project: `6ced26f3-4486-451e-a05e-26a8f859e361` - raster dataset: `d54c3420-03d4-45a2-9501-bf1cce165a89` @@ -2266,9 +2305,9 @@ Validation: - `bash scripts/run_readiness_check.sh` passed: 386 backend tests, Alembic head check, frontend typecheck/build and shell syntax checks. - Tower deploy from commit `2468945` passed with `GEOINTEL_INSTALL_AI=true`. - Deploy-time live migration smoke passed; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. -- Deploy-time browser runtime verification passed for `http://192.168.10.150:1202`. +- Deploy-time browser runtime verification passed for `http://192.0.2.10:1202`. - Real-data smoke passed: - - command: `REAL_RASTER_PATH=/mnt/user/appdata/geointel/storage/operator-data/geel_orthophoto_wms_512.tif REAL_REFERENCE_VECTOR_PATH=/mnt/user/appdata/geointel/storage/operator-data/geel_grb_gbg_buildings.geojson bash scripts/verify_real_data_detection_qa_workflow.sh http://192.168.10.150:1202` + - command: `REAL_RASTER_PATH=/mnt/user/appdata/geointel/storage/operator-data/geel_orthophoto_wms_512.tif REAL_REFERENCE_VECTOR_PATH=/mnt/user/appdata/geointel/storage/operator-data/geel_grb_gbg_buildings.geojson bash scripts/verify_real_data_detection_qa_workflow.sh http://192.0.2.10:1202` - project: `e1ec201b-bd83-4c95-be5a-f7225902d3c5` - raster dataset: `fca14d23-bc0c-4b1f-8bfa-ba968f2e05d0` - reference dataset: `5bb4a9b4-2a4e-4680-a729-777a75ecd51f` @@ -2311,7 +2350,7 @@ Limitations: - The script enforces real inputs and never seeds demo data, enables fixture detections, fetches live GRB/OSM/Sentinel data or downloads model weights. Next recommended pass: -- Place a target orthophoto/GeoTIFF and matching reference-building GeoJSON under the Tower appdata path and run `REAL_RASTER_PATH=... REAL_REFERENCE_VECTOR_PATH=... bash scripts/verify_real_data_detection_qa_workflow.sh http://192.168.10.150:1202`. +- Place a target orthophoto/GeoTIFF and matching reference-building GeoJSON under the Tower appdata path and run `REAL_RASTER_PATH=... REAL_REFERENCE_VECTOR_PATH=... bash scripts/verify_real_data_detection_qa_workflow.sh http://192.0.2.10:1202`. ## Sprint 120 Model asset detection workflow smoke (2026-07-06) @@ -2325,7 +2364,7 @@ Validation: - RED: `python -m pytest backend/tests/test_sprint120_model_asset_detection_workflow_smoke.py -q` failed because `scripts/verify_model_asset_detection_workflow.sh` did not exist yet. - `python -m pytest backend/tests/test_sprint120_model_asset_detection_workflow_smoke.py -q` passed: 1 test. - `bash -n scripts/verify_model_asset_detection_workflow.sh` passed. -- Live Tower smoke passed: `bash scripts/verify_model_asset_detection_workflow.sh http://192.168.10.150:1202`. +- Live Tower smoke passed: `bash scripts/verify_model_asset_detection_workflow.sh http://192.0.2.10:1202`. - Live smoke selected `model_asset_id=yolov8n-building-segmentation-pt`, generated manifest `/app/storage/tiles/c0b00f1f-80bf-4992-be94-f5e5e6f6bf63/f9160f51-ee78-43b3-9353-d5390576fa1d/e9acd488-c376-45ed-b259-0dd79886f21e/manifest.json`, persisted analysis run `7f9e7ecb-c43d-4ed3-9f98-424bc0317805` and returned `detection_count=0`. - `python -m compileall backend/app` passed. - `cd backend && python -m pytest -q` passed: 384 tests with the existing Pydantic `model_*` namespace warnings. @@ -2334,19 +2373,19 @@ Validation: - `cd backend && python -m alembic heads` passed: `202606120900 (head)`. - `cd backend && python -m alembic upgrade head --sql` passed. - `bash scripts/run_readiness_check.sh` passed: 384 backend tests, frontend typecheck/build, API contract audit, Alembic head and shell syntax checks. -- Live browser/API smoke passed: `bash scripts/verify_browser_runtime.sh http://192.168.10.150:1202`. -- Live GIS capability smoke passed: `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202`. -- Live raster workflow smoke passed: `bash scripts/verify_demo_raster_workflow.sh http://192.168.10.150:1202`. -- Live workbench default-state smoke passed: `bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202`. -- Live workbench backing-state smoke passed: `bash scripts/verify_workbench_interactions.sh http://192.168.10.150:1202`. -- Live demo/export workflow smoke passed: `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202`. -- `bash scripts/verify_ai_handoff_interactions.sh http://192.168.10.150:1202` could not run in this local Codex shell because Node cannot import Playwright; the script remains syntax-checked in readiness and the internal browser was used for live visual verification instead. -- Internal browser validation passed on `http://192.168.10.150:1202`: AI Labs rendered Detection Lab and Segmentation Lab, selecting `yolo-configured` showed the Local model assets selector with `yolov8n-building-segmentation (active)` and `yolov8n`, no-download copy was visible and no console errors were emitted. +- Live browser/API smoke passed: `bash scripts/verify_browser_runtime.sh http://192.0.2.10:1202`. +- Live GIS capability smoke passed: `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202`. +- Live raster workflow smoke passed: `bash scripts/verify_demo_raster_workflow.sh http://192.0.2.10:1202`. +- Live workbench default-state smoke passed: `bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202`. +- Live workbench backing-state smoke passed: `bash scripts/verify_workbench_interactions.sh http://192.0.2.10:1202`. +- Live demo/export workflow smoke passed: `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202`. +- `bash scripts/verify_ai_handoff_interactions.sh http://192.0.2.10:1202` could not run in this local Codex shell because Node cannot import Playwright; the script remains syntax-checked in readiness and the internal browser was used for live visual verification instead. +- Internal browser validation passed on `http://192.0.2.10:1202`: AI Labs rendered Detection Lab and Segmentation Lab, selecting `yolo-configured` showed the Local model assets selector with `yolov8n-building-segmentation (active)` and `yolov8n`, no-download copy was visible and no console errors were emitted. - `git push origin main` pushed commit `b2fe7fa`. - Tower deploy from commit `b2fe7fa` completed with `GEOINTEL_INSTALL_AI=true`; the all-in-one container is published on `0.0.0.0:1202->80/tcp`. - Deploy-time live migration smoke passed after the database became ready on attempt 3; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. -- Deploy-time browser runtime verification passed for `http://192.168.10.150:1202`, API proxy and icon. -- Post-deploy live model asset detection workflow smoke passed: `bash scripts/verify_model_asset_detection_workflow.sh http://192.168.10.150:1202` selected `yolov8n-building-segmentation-pt`, persisted analysis run `f758c992-4fb8-4dca-ab29-5c216cb14078` and returned `detection_count=0`. +- Deploy-time browser runtime verification passed for `http://192.0.2.10:1202`, API proxy and icon. +- Post-deploy live model asset detection workflow smoke passed: `bash scripts/verify_model_asset_detection_workflow.sh http://192.0.2.10:1202` selected `yolov8n-building-segmentation-pt`, persisted analysis run `f758c992-4fb8-4dca-ab29-5c216cb14078` and returned `detection_count=0`. Limitations: - The smoke proves the configured-YOLO runtime path, provenance and persistence. It does not prove production model quality because it runs against the synthetic demo raster. @@ -2386,11 +2425,11 @@ Validation: - `git push origin main` passed and pushed commits through `6e2a8cb`. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` with `GEOINTEL_INSTALL_AI=true` passed and redeployed Tower from commit `6e2a8cb`. - Deploy-time live migration smoke passed on Tower; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. -- Deploy-time browser runtime verification passed for `http://192.168.10.150:1202`, API proxy and icon. -- Live `GET http://192.168.10.150:1202/api/v1/detection/model-assets` returned two cataloged local assets: `yolov8n-building-segmentation-pt` active with SHA-256 `152d6a9c5c76c9f2fd2fd5cc167efaed7c8c02e31002b15415899710f1d71f98`, and `yolov8n-pt`. +- Deploy-time browser runtime verification passed for `http://192.0.2.10:1202`, API proxy and icon. +- Live `GET http://192.0.2.10:1202/api/v1/detection/model-assets` returned two cataloged local assets: `yolov8n-building-segmentation-pt` active with SHA-256 `152d6a9c5c76c9f2fd2fd5cc167efaed7c8c02e31002b15415899710f1d71f98`, and `yolov8n-pt`. - Live `GET /api/v1/detection/yolo/preflight?model_asset_id=yolov8n-pt` resolved `/app/models/yolov8n.pt`, reported dependencies available, no downloads and no inference. - Live `GET /api/v1/detection/yolo/preflight?model_asset_id=yolov8n-building-segmentation-pt&check_model_load=true` passed model load smoke with `model_load_ok=true`, `torch_version=2.12.1`, `ultralytics_version=8.4.89`, no downloads and no inference. -- Internal browser validation passed on `http://192.168.10.150:1202`: Detection Lab showed `Local model assets`, listed `yolov8n-building-segmentation (active)` and `yolov8n`, auto-selected the active asset, showed no-download copy, and emitted no console errors. +- Internal browser validation passed on `http://192.0.2.10:1202`: Detection Lab showed `Local model assets`, listed `yolov8n-building-segmentation (active)` and `yolov8n`, auto-selected the active asset, showed no-download copy, and emitted no console errors. - Internal browser validation passed for System/Provider Capabilities: `Official reference sources`, GRB, OSM and `not AI model choices` copy were visible with no console errors. Limitations: @@ -2437,10 +2476,10 @@ Validation: - Local Codex host could not run `docker compose config` because Docker is not installed in this Windows environment; Tower Docker validation is required after push/deploy. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` with `GEOINTEL_INSTALL_AI=true` passed after the AI runtime hardening and redeployed Tower from commit `9cad8d4`. - Deploy-time live migration smoke passed on Tower; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. -- Deploy-time browser runtime verification passed for `http://192.168.10.150:1202`, API proxy and icon. +- Deploy-time browser runtime verification passed for `http://192.0.2.10:1202`, API proxy and icon. - Tower container check passed: `torch` imported as `2.12.1+cu130`, `torch.cuda.is_available()` returned `False`, `ultralytics` imported as `8.4.87`, and `scripts/yolo_preflight.py --enabled --json` returned `dependencies_available=true`, `status=not_configured`, `will_download_models=false`, `will_run_inference=false` because no local model path is configured yet. - Tower runtime `YOLO_CONFIG_DIR` is `/app/storage/ultralytics`; the directory exists, is writable and Ultralytics writes settings there instead of root config. -- Internal browser validation passed against `http://192.168.10.150:1202`: the live shell and Map workspace rendered without console errors, with database layer selection, Operational GIS controls, and both full-run modes visible. +- Internal browser validation passed against `http://192.0.2.10:1202`: the live shell and Map workspace rendered without console errors, with database layer selection, Operational GIS controls, and both full-run modes visible. - RED: `python -m pytest backend\tests\test_sprint13_yolo_preflight.py -q` failed before runtime diagnostics were implemented because `runtime` was absent from preflight output. - `python -m pytest backend\tests\test_sprint13_yolo_preflight.py -q` passed: 8 tests. - `python -m pytest backend\tests\test_sprint13_yolo_preflight.py backend\tests\test_sprint8b_yolo_foundation.py backend\tests\test_docker_runtime_config.py -q` passed: 39 tests. @@ -2455,7 +2494,7 @@ Validation: - Local Codex host still cannot run `docker compose config` because Docker is not installed in this Windows environment; Tower Docker validation is required after push/deploy. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` with `GEOINTEL_INSTALL_AI=true` passed and redeployed Tower from commit `7a29e78`. - Deploy-time live migration smoke passed on Tower; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. -- Deploy-time browser runtime verification passed for `http://192.168.10.150:1202`, API proxy and icon. +- Deploy-time browser runtime verification passed for `http://192.0.2.10:1202`, API proxy and icon. - Tower container check passed: remote checkout is `7a29e78`, `geointel` is healthy on `0.0.0.0:1202->80/tcp`, and `scripts/yolo_preflight.py --enabled --json` reports `dependencies_available=true`, `torch_version=2.12.1`, `ultralytics_version=8.4.88`, `cuda_available=false`, `yolo_config_dir=/app/storage/ultralytics`, `status=not_configured`, `will_download_models=false` and `will_run_inference=false`. - RED: `python -m pytest backend\tests\test_sprint13_yolo_preflight.py::test_yolo_preflight_api_returns_canonical_envelope backend\tests\test_sprint118_yolo_preflight_ui.py -q` failed before implementation because `/api/v1/detection/yolo/preflight` returned 404 and the Detection Lab did not surface a YOLO runtime preflight panel. - `python -m pytest backend\tests\test_sprint13_yolo_preflight.py::test_yolo_preflight_api_returns_canonical_envelope backend\tests\test_sprint118_yolo_preflight_ui.py -q` passed: 2 tests. @@ -2471,8 +2510,8 @@ Validation: - `git push` passed after Tower/Gitea became reachable again and pushed commit `7aa9382`. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` with `GEOINTEL_INSTALL_AI=true` passed and redeployed Tower from commit `7aa9382`. - Deploy-time live migration smoke passed on Tower; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. -- Deploy-time browser runtime verification passed for `http://192.168.10.150:1202`, API proxy and icon. -- Live API check passed for `GET http://192.168.10.150:1202/api/v1/detection/yolo/preflight`: it returned the canonical `data` envelope, `status=not_configured`, `YOLO_ENABLED=false`, `torch_version=2.12.1`, `ultralytics_version=8.4.89`, `yolo_config_dir=/app/storage/ultralytics`, `will_download_models=false` and `will_run_inference=false`. +- Deploy-time browser runtime verification passed for `http://192.0.2.10:1202`, API proxy and icon. +- Live API check passed for `GET http://192.0.2.10:1202/api/v1/detection/yolo/preflight`: it returned the canonical `data` envelope, `status=not_configured`, `YOLO_ENABLED=false`, `torch_version=2.12.1`, `ultralytics_version=8.4.89`, `yolo_config_dir=/app/storage/ultralytics`, `will_download_models=false` and `will_run_inference=false`. - Tower container check passed with explicit CLI `--enabled`: `dependencies_available=true`, `torch_version=2.12.1`, `ultralytics_version=8.4.89`, `cuda_available=false`, `status=not_configured`, `will_download_models=false` and `will_run_inference=false` because no local model path is configured yet. Limitations: @@ -2509,20 +2548,20 @@ Validation: - `cd backend && python -m alembic heads` passed: `202606120900 (head)`. - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.168.10.150:1202` from commit `350d50a`. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.0.2.10:1202` from commit `350d50a`. - Deploy-time live migration smoke passed after the database became ready on attempt 3; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- Internal Codex browser validation passed against `http://192.168.10.150:1202`: the Map workspace rendered a nonblank road basemap, persisted vector layer selector, operational GIS run panel and bbox query action with no console errors. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed again after the guided workflow update; rebuilt and redeployed the all-in-one container on `http://192.168.10.150:1202` from commit `14b66e6`. +- Internal Codex browser validation passed against `http://192.0.2.10:1202`: the Map workspace rendered a nonblank road basemap, persisted vector layer selector, operational GIS run panel and bbox query action with no console errors. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed again after the guided workflow update; rebuilt and redeployed the all-in-one container on `http://192.0.2.10:1202` from commit `14b66e6`. - Deploy-time live migration smoke passed after the database became ready on attempt 2; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. - Internal Codex browser validation passed: the Map workspace showed the basemap policy notice, database layer selector, guided operational GIS steps/actions and nonblank map canvas with no console errors. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed after aligning `.env.example`; rebuilt and redeployed the all-in-one container on `http://192.168.10.150:1202` from commit `fc88ceb`. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed after aligning `.env.example`; rebuilt and redeployed the all-in-one container on `http://192.0.2.10:1202` from commit `fc88ceb`. - Deploy-time live migration smoke passed after the database became ready on attempt 2; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. - Tower runtime check passed after the one-click GIS workflow update: remote checkout is commit `5331358`, the `geointel` all-in-one container is healthy and published on `0.0.0.0:1202->80/tcp`. - `LIVE_SMOKE_CONTAINER=geointel bash scripts/live_migration_smoke.sh` passed on Tower; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1`, required runtime schema objects were present and Alembic head was `202606120900`. -- `bash scripts/verify_browser_runtime.sh http://192.168.10.150:1202` passed on Tower for frontend, API proxy and icon. -- Internal Codex browser validation passed against `http://192.168.10.150:1202`: the Map workspace rendered without console warnings/errors or horizontal overflow, the `Run full GIS workflow` action was present, and a live run produced the persisted query/save/export status `Dataset/export complete. Select a reference dataset to add QA/QC.` +- `bash scripts/verify_browser_runtime.sh http://192.0.2.10:1202` passed on Tower for frontend, API proxy and icon. +- Internal Codex browser validation passed against `http://192.0.2.10:1202`: the Map workspace rendered without console warnings/errors or horizontal overflow, the `Run full GIS workflow` action was present, and a live run produced the persisted query/save/export status `Dataset/export complete. Select a reference dataset to add QA/QC.` Limitations: - The default OpenStreetMap tile service is appropriate for local V1 testing and demos, but production or heavier deployments should set `VITE_MAP_STYLE_URL` to a managed tile/style provider. @@ -2550,13 +2589,13 @@ Validation: - `python -m compileall backend/app` passed. - `cd backend && python -m pytest -q` passed: 362 tests. - `bash scripts/run_readiness_check.sh` passed: 362 backend tests plus frontend typecheck/build. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.168.10.150:1202` from commit `915b34c`. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.0.2.10:1202` from commit `915b34c`. - Deploy-time live migration smoke passed after the database became ready on attempt 2; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. Limitations: - This pass is visual/layout only; it does not change API contracts, persistence, export generation, QA metrics or map behavior. -- Live Tower redeploy has been run; the QA/QC and Exports usability layout pass is available at `http://192.168.10.150:1202`. +- Live Tower redeploy has been run; the QA/QC and Exports usability layout pass is available at `http://192.0.2.10:1202`. Next recommended pass: - Run a live visual audit after redeploy, then refine AI Labs/System or address any remaining visual rough edges found in the browser. @@ -2578,13 +2617,13 @@ Validation: - `python -m compileall backend/app` passed. - `cd backend && python -m pytest -q` passed: 360 tests. - `bash scripts/run_readiness_check.sh` passed: 360 backend tests plus frontend typecheck/build. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.168.10.150:1202` from commit `9721937`. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.0.2.10:1202` from commit `9721937`. - Deploy-time live migration smoke passed after the database became ready on attempt 2; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. Limitations: - This pass is visual/layout only; it does not change API contracts, persistence, map query behavior, exports or QA logic. -- Live Tower redeploy has been run; the Data and Map usability layout pass is available at `http://192.168.10.150:1202`. +- Live Tower redeploy has been run; the Data and Map usability layout pass is available at `http://192.0.2.10:1202`. Next recommended pass: - Run a live visual audit after redeploy and then refine QA/QC and Exports in the same quieter style. @@ -2607,13 +2646,13 @@ Validation: - `python -m compileall backend/app` passed. - `cd backend && python -m pytest -q` passed: 358 tests. - `bash scripts/run_readiness_check.sh` passed: 358 backend tests plus frontend typecheck/build. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.168.10.150:1202` from commit `0355a3d`. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.0.2.10:1202` from commit `0355a3d`. - Deploy-time live migration smoke passed after the database became ready on attempt 3; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. Limitations: - This pass improves visual density and hierarchy only; no API, persistence, workflow or map behavior changed. -- Live Tower redeploy has been run; the calmer layout is available at `http://192.168.10.150:1202`. +- Live Tower redeploy has been run; the calmer layout is available at `http://192.0.2.10:1202`. Next recommended pass: - Do a live visual audit after redeploy and then tune individual workspaces, starting with Data and Map, based on actual screenshots. @@ -2645,11 +2684,11 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `bash scripts/run_readiness_check.sh` passed: 356 backend tests plus frontend typecheck/build. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.168.10.150:1202` from commit `b9674a0`. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.0.2.10:1202` from commit `b9674a0`. - Deploy-time live migration smoke passed against the container database after the database became ready on attempt 3; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. - Live QA evidence API smoke passed: `GET /api/v1/projects/c0b00f1f-80bf-4992-be94-f5e5e6f6bf63/quality-checks/2a291f88-5ed1-4110-ba6b-d200ec722098/evidence/geojson` returned a GeoJSON FeatureCollection with 4 persisted evidence features and 0 warnings. -- Internal Codex browser validation passed against `http://192.168.10.150:1202`: the QA/QC evidence drilldown rendered, `Show evidence overlay` opened the Map workspace, MapLibre canvas was present, the QA/QC evidence overlay reported 4 rendered features, and the mobile viewport had no horizontal overflow. +- Internal Codex browser validation passed against `http://192.0.2.10:1202`: the QA/QC evidence drilldown rendered, `Show evidence overlay` opened the Map workspace, MapLibre canvas was present, the QA/QC evidence overlay reported 4 rendered features, and the mobile viewport had no horizontal overflow. Limitations: - The overlay is generated read-only from existing persisted evidence and geometries; no new evidence table or migration was introduced. @@ -2684,7 +2723,7 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `bash scripts/run_readiness_check.sh` passed. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.168.10.150:1202`. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.0.2.10:1202`. - Deploy-time live migration smoke passed against the container database, including PostGIS/version/schema checks. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. - Live QA API smoke passed: `POST /api/v1/qa/detections-vs-reference` returned `match_evidence`, `false_positive_evidence` and `false_negative_evidence`. @@ -2720,10 +2759,10 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `bash scripts/run_readiness_check.sh` passed. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.168.10.150:1202`. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.0.2.10:1202`. - Deploy-time live migration smoke passed against the container database, including PostGIS/version/schema checks. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- Live API proxy smoke passed: `GET http://192.168.10.150:1202/api/v1/projects` returned the demo project envelope. +- Live API proxy smoke passed: `GET http://192.0.2.10:1202/api/v1/projects` returned the demo project envelope. Limitations: - The Map evidence handoff opens the existing QA/QC workspace; selecting a specific historical check inside that workspace remains governed by the QA/QC panel's own latest-check behavior. @@ -2755,7 +2794,7 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `bash scripts/run_readiness_check.sh` passed. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.168.10.150:1202`. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.0.2.10:1202`. - Deploy-time live migration smoke passed against the container database, including PostGIS/version/schema checks. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. - Live API QA smoke passed: `POST /api/v1/qa/detections-vs-reference` compared derived map selection dataset `266aa1de-908e-4bc4-987e-996374ad747b` against reference dataset `21dd968a-2ba4-4798-89d4-f3af91f9d24c`, returned `precision=0.5`, `recall=0.5`, `f1_score=0.5`, `mean_iou=0.8339768339652592` and persisted quality check `1730c270-6dee-4000-8813-12aa91df6b33`. @@ -2791,7 +2830,7 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `bash scripts/run_readiness_check.sh` passed. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.168.10.150:1202`. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.0.2.10:1202`. - Deploy-time live migration smoke passed against the container database, including PostGIS/version/schema checks. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. - Live API smoke passed: `POST /api/v1/projects/c0b00f1f-80bf-4992-be94-f5e5e6f6bf63/datasets/6e5a3926-1a15-4136-b54f-ba5de9ec0e84/vector/select/derive` created derived dataset `266aa1de-908e-4bc4-987e-996374ad747b` with `dataset_role="derived"`, `source_name="map_selection"` and 2 features. @@ -2828,7 +2867,7 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `bash scripts/run_readiness_check.sh` passed. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.168.10.150:1202`. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed; rebuilt and redeployed the all-in-one container on `http://192.0.2.10:1202`. - Deploy-time live migration smoke passed against the container database, including PostGIS/version/schema checks. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. - Live API smoke passed: `POST /api/v1/exports/geojson` with `export_kind="vector_selection"` created export `1d16c78b-7e8c-4081-8edc-5be38811b50e` with `export_type="vector_selection_geojson"`, `feature_count=2` and `source_table="vector_features"`. @@ -2868,9 +2907,9 @@ Validation: - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed and redeployed commit `851d722` to Tower on port 1202. - Deploy-time live migration smoke passed after database readiness attempt 3; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1`, required runtime schema objects were present and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- `bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202` passed with demo project, AOI, 3/3 ready datasets and seeded QA/QC. +- `bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202` passed with demo project, AOI, 3/3 ready datasets and seeded QA/QC. - Live API smoke passed against `POST /api/v1/projects/{project_id}/datasets/{dataset_id}/vector/select`: demo vector dataset returned 2 persisted features as a GeoJSON FeatureCollection. -- Internal browser validation passed against `http://192.168.10.150:1202`: Map workspace rendered `Area selection`, `Start map bbox` and `Run area extract`; `Use layer bbox` filled EPSG:4326 bbox values; `Run area extract` returned 2 features, showed `vector_features` source plus `Download area GeoJSON` and `Copy area GeoJSON`; console warnings/errors were empty. +- Internal browser validation passed against `http://192.0.2.10:1202`: Map workspace rendered `Area selection`, `Start map bbox` and `Run area extract`; `Use layer bbox` filled EPSG:4326 bbox values; `Run area extract` returned 2 features, showed `vector_features` source plus `Download area GeoJSON` and `Copy area GeoJSON`; console warnings/errors were empty. Limitations: - Selection shape is bbox-only in EPSG:4326. Polygon/lasso selection remains future work. @@ -2906,7 +2945,7 @@ Validation: - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed and redeployed commit `561304c` to Tower on port 1202. - Deploy-time live migration smoke passed after database readiness attempt 3; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1`, required runtime schema objects were present and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- Internal browser live check confirmed the Map workspace renders the `Selection & extract` panel and empty selection guidance at `http://192.168.10.150:1202`. +- Internal browser live check confirmed the Map workspace renders the `Selection & extract` panel and empty selection guidance at `http://192.0.2.10:1202`. - Live frontend bundle check confirmed `Selection & extract`, `selected-feature` and `Download selected GeoJSON` markers in `/assets/index-DVYT-JPu.js`. Limitations: @@ -2944,9 +2983,9 @@ Validation: - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed and redeployed `140314a` to Tower on port 1202. - Deploy-time live migration smoke passed after the database became ready on attempt 3; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1`, required runtime schema objects were present and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- `bash scripts/verify_demo_raster_workflow.sh http://192.168.10.150:1202` passed: inspect, preview, stats and `raster.tile`. -- `bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202` passed with `3/3 ready` datasets. -- `bash scripts/verify_workbench_interactions.sh http://192.168.10.150:1202` passed. +- `bash scripts/verify_demo_raster_workflow.sh http://192.0.2.10:1202` passed: inspect, preview, stats and `raster.tile`. +- `bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202` passed with `3/3 ready` datasets. +- `bash scripts/verify_workbench_interactions.sh http://192.0.2.10:1202` passed. - Live frontend bundle check confirmed `Latest tile manifest`, `Use in Detection Lab`, `Use in Segmentation Lab` and `Raster tile manifest path` markers in `/assets/index-DygxAZpB.js`. Limitations: @@ -2980,9 +3019,9 @@ Validation: - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed and redeployed `aa41dfa` to Tower on port 1202. - Deploy-time live migration smoke passed after the database became ready on attempt 2; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1`, required runtime schema objects were present and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- `bash scripts/verify_demo_raster_workflow.sh http://192.168.10.150:1202` passed: inspect, preview, stats and `raster.tile`. -- `bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202` passed with `3/3 ready` datasets. -- `bash scripts/verify_workbench_interactions.sh http://192.168.10.150:1202` passed. +- `bash scripts/verify_demo_raster_workflow.sh http://192.0.2.10:1202` passed: inspect, preview, stats and `raster.tile`. +- `bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202` passed with `3/3 ready` datasets. +- `bash scripts/verify_workbench_interactions.sh http://192.0.2.10:1202` passed. - Live frontend bundle check confirmed `Latest tile manifest` and `Use in Detection Lab` markers in `/assets/index-gJWV1CAi.js`. Limitations: @@ -3006,7 +3045,7 @@ Validation: - RED: `python -m pytest backend\tests\test_sprint98_raster_workflow_smoke.py -q` failed before implementation because `scripts/verify_demo_raster_workflow.sh` did not exist. - `python -m pytest backend\tests\test_sprint98_raster_workflow_smoke.py backend\tests\test_readiness_gate.py -q` passed: 14 tests. - `bash -n scripts/verify_demo_raster_workflow.sh` passed. -- Live diagnostic run of `bash scripts/verify_demo_raster_workflow.sh http://192.168.10.150:1202` showed inspect, preview and stats passed, then raster tile failed with HTTP 500. +- Live diagnostic run of `bash scripts/verify_demo_raster_workflow.sh http://192.0.2.10:1202` showed inspect, preview and stats passed, then raster tile failed with HTTP 500. - Tower backend logs identified the root cause: `rasterio.windows.bounds(...)` returned a tuple, while tile manifest generation expected `.left/.bottom/.right/.top` attributes. - RED: `python -m pytest backend\tests\test_raster_operations_service.py::test_raster_tile_returns_manifest_payload -q` reproduced the live `AttributeError` after updating the fixture to tuple bounds. - `python -m pytest backend\tests\test_raster_operations_service.py::test_raster_tile_returns_manifest_payload backend\tests\test_sprint98_raster_workflow_smoke.py -q` passed: 2 tests. @@ -3019,11 +3058,11 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed and redeployed `7b093c0` to Tower on port 1202. -- `bash scripts/verify_demo_raster_workflow.sh http://192.168.10.150:1202` initially proved the tile fix but exposed the existing job terminal status convention as `success` rather than `completed`; the smoke now accepts `success` and `completed`. -- `bash scripts/verify_demo_raster_workflow.sh http://192.168.10.150:1202` passed after the smoke status fix: inspect, preview, stats and raster tile manifest all succeeded. -- `bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202` passed after redeploy. -- `bash scripts/verify_workbench_interactions.sh http://192.168.10.150:1202` passed after redeploy. -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` passed after redeploy. +- `bash scripts/verify_demo_raster_workflow.sh http://192.0.2.10:1202` initially proved the tile fix but exposed the existing job terminal status convention as `success` rather than `completed`; the smoke now accepts `success` and `completed`. +- `bash scripts/verify_demo_raster_workflow.sh http://192.0.2.10:1202` passed after the smoke status fix: inspect, preview, stats and raster tile manifest all succeeded. +- `bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202` passed after redeploy. +- `bash scripts/verify_workbench_interactions.sh http://192.0.2.10:1202` passed after redeploy. +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` passed after redeploy. - `bash scripts/run_readiness_check.sh` passed again after the smoke status update. Limitations: @@ -3031,7 +3070,7 @@ Limitations: - The smoke intentionally does not run AI inference or external imagery/provider fetching. Next recommended pass: -- Run full readiness, redeploy, then verify the raster smoke live against `http://192.168.10.150:1202`. +- Run full readiness, redeploy, then verify the raster smoke live against `http://192.0.2.10:1202`. ## Sprint 97 demo raster fixture workflow (2026-06-23) @@ -3058,13 +3097,13 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed and redeployed `ca730ed` to Tower on port 1202. -- `bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202` passed and reported `Datasets: 3/3 ready`. -- `bash scripts/verify_workbench_interactions.sh http://192.168.10.150:1202` passed and verified candidate, reference and raster fixture datasets. -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` passed. -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` passed. -- `bash scripts/verify_browser_runtime.sh http://192.168.10.150:1202` passed. +- `bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202` passed and reported `Datasets: 3/3 ready`. +- `bash scripts/verify_workbench_interactions.sh http://192.0.2.10:1202` passed and verified candidate, reference and raster fixture datasets. +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` passed. +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` passed. +- `bash scripts/verify_browser_runtime.sh http://192.0.2.10:1202` passed. - Live API check confirmed `demo_context_raster.tif` as `raster`/`fixture`/`ready` with `EPSG:4326`. -- Chrome headless screenshot of `http://192.168.10.150:1202` showed the populated Overview workspace, selected demo context and no obvious desktop horizontal overflow. +- Chrome headless screenshot of `http://192.0.2.10:1202` showed the populated Overview workspace, selected demo context and no obvious desktop horizontal overflow. Limitations: - The raster fixture is a tiny generated local GeoTIFF for V1 workflow validation only. It does not represent external imagery and does not enable real AI inference. @@ -3102,9 +3141,9 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed and redeployed the all-in-one container to Tower on port 1202. -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` passed after redeploy. -- `bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202` passed after redeploy. -- `bash scripts/verify_workbench_interactions.sh http://192.168.10.150:1202` passed after redeploy. +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` passed after redeploy. +- `bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202` passed after redeploy. +- `bash scripts/verify_workbench_interactions.sh http://192.0.2.10:1202` passed after redeploy. Limitations: - This pass audits route documentation presence, implemented/stale route drift and explicit non-envelope exceptions. It does not yet exercise every error path response body at runtime. @@ -3127,7 +3166,7 @@ Validation: - `cd backend && python -m pytest tests/test_sprint47_workbench_interaction_smoke.py -q` passed: 3 tests. - `cd frontend && npm run typecheck` passed. - `bash -n scripts/verify_workbench_interactions.sh` passed. -- `bash scripts/verify_workbench_interactions.sh http://192.168.10.150:1202` passed against the pre-deploy runtime API surface. +- `bash scripts/verify_workbench_interactions.sh http://192.0.2.10:1202` passed against the pre-deploy runtime API surface. - `python -m compileall backend/app` passed. - `cd backend && python -m pytest -W error::DeprecationWarning` passed: 198 tests. - `bash scripts/run_readiness_check.sh` passed. @@ -3136,10 +3175,10 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed and redeployed the all-in-one container to Tower on port 1202. -- `bash scripts/verify_workbench_interactions.sh http://192.168.10.150:1202` passed after redeploy. -- `bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202` passed after redeploy. -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` passed after redeploy. -- Live browser check against `http://192.168.10.150:1202` passed using the new anchors: project, map, dataset, QA/QC and export panels were present; QA refresh and export metadata actions worked; latest export updated; no horizontal overflow was detected. +- `bash scripts/verify_workbench_interactions.sh http://192.0.2.10:1202` passed after redeploy. +- `bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202` passed after redeploy. +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` passed after redeploy. +- Live browser check against `http://192.0.2.10:1202` passed using the new anchors: project, map, dataset, QA/QC and export panels were present; QA refresh and export metadata actions worked; latest export updated; no horizontal overflow was detected. Limitations: - The shell smoke validates the state behind the controls but does not click rendered controls by itself. The added `data-testid` anchors are intended for Codex/browser click checks and future browser artifact automation. @@ -3161,7 +3200,7 @@ Validation: - RED: `cd backend && python -m pytest tests/test_readiness_gate.py -q` failed before implementation because `verify_workbench_default_state.sh` was missing and readiness did not reference it. - `cd backend && python -m pytest tests/test_readiness_gate.py -q` passed: 9 tests. - `bash -n scripts/verify_workbench_default_state.sh` passed. -- `bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202` passed. +- `bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202` passed. - `python -m compileall backend/app` passed. - `cd backend && python -m pytest -W error::DeprecationWarning` passed: 195 tests. - `bash scripts/run_readiness_check.sh` passed. @@ -3171,10 +3210,10 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed and redeployed the all-in-one container to Tower on port 1202. -- `bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202` passed after redeploy. -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` passed after redeploy. -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` passed after redeploy. -- Live browser check against `http://192.168.10.150:1202` passed at 1280x720: selected project `GeoIntel Demo - Building QA`, status showed `1 area`, `2/2 ready` datasets and `2 checks`, map workspace rendered and no horizontal overflow was detected. +- `bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202` passed after redeploy. +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` passed after redeploy. +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` passed after redeploy. +- Live browser check against `http://192.0.2.10:1202` passed at 1280x720: selected project `GeoIntel Demo - Building QA`, status showed `1 area`, `2/2 ready` datasets and `2 checks`, map workspace rendered and no horizontal overflow was detected. Limitations: - The committed smoke validates the connected default workbench state through HTTP/API contracts, not pixel layout. Browser screenshot and overflow validation remain a Codex/browser verification step. @@ -3203,9 +3242,9 @@ Validation: - `bash -n scripts/live_migration_smoke.sh` passed. - Browser check against local Vite preview with live backend passed after async settle: selected project `GeoIntel Demo - Building QA`, status showed `1 area`, `2/2 ready` datasets and `2 checks`. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed and redeployed the all-in-one container to Tower on port 1202. -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` passed. -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` passed. -- Live browser check against `http://192.168.10.150:1202` passed after async settle: selected project `GeoIntel Demo - Building QA`, status showed `1 area`, `2/2 ready` datasets and `2 checks`, with no horizontal overflow. +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` passed. +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` passed. +- Live browser check against `http://192.0.2.10:1202` passed after async settle: selected project `GeoIntel Demo - Building QA`, status showed `1 area`, `2/2 ready` datasets and `2 checks`, with no horizontal overflow. Limitations: - No API contracts, migrations, provider fetching, AI behavior or product capabilities changed. @@ -3235,9 +3274,9 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed and redeployed `geointel-all-in-one:latest` to Tower on port 1202. -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` passed. -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` passed. -- Live browser check against `http://192.168.10.150:1202` passed: map-first layout rendered, scroll height roughly 3.2k px and no desktop horizontal overflow detected. +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` passed. +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` passed. +- Live browser check against `http://192.0.2.10:1202` passed: map-first layout rendered, scroll height roughly 3.2k px and no desktop horizontal overflow detected. Limitations: - No API contracts, migrations, provider fetching, AI behavior or product capabilities changed. @@ -3266,8 +3305,8 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed and redeployed `geointel-all-in-one:latest` to Tower on port 1202. -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` passed. -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` passed. +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` passed. +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` passed. - `App.tsx` size audit after extraction: 621 lines; `useWorkbenchBootstrap.ts`: 81 lines. Limitations: @@ -3296,8 +3335,8 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed and redeployed `geointel-all-in-one:latest` to Tower on port 1202. -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` passed. -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` passed. +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` passed. +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` passed. Limitations: - No UX behavior, API contracts, migrations, provider fetching or AI behavior changed. @@ -3325,8 +3364,8 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` passed and redeployed `geointel-all-in-one:latest` to Tower on port 1202. -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` passed. -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` passed. +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` passed. +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` passed. Limitations: - No UX behavior, API contracts, migrations, provider fetching or AI behavior changed. @@ -3354,11 +3393,11 @@ Validation: - `bash scripts/run_readiness_check.sh` passed. - `cd backend && python -m alembic heads && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the all-in-one Tower container at `http://192.168.10.150:1202`. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the all-in-one Tower container at `http://192.0.2.10:1202`. - Tower live migration smoke passed and reported `Database collation version: ok`. - Tower browser runtime verification passed. -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` passed. -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` passed. +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` passed. +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` passed. Open: - None for this pass. @@ -3389,11 +3428,11 @@ Validation: - `bash scripts/run_readiness_check.sh` passed. - `cd backend && python -m alembic heads && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the all-in-one Tower container at `http://192.168.10.150:1202`. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the all-in-one Tower container at `http://192.0.2.10:1202`. - Tower live migration smoke passed and reported `Database collation version: ok`. - Tower browser runtime verification passed. -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` passed. -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` passed. +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` passed. +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` passed. Open: - None for this pass. @@ -3421,10 +3460,10 @@ Validation: - `cd frontend && npm run build` passed. - `bash scripts/run_readiness_check.sh` passed. - `cd backend && python -m alembic heads && python -m alembic upgrade head --sql` passed. -- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the all-in-one Tower container at `http://192.168.10.150:1202`. +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the all-in-one Tower container at `http://192.0.2.10:1202`. - Tower live migration smoke passed and reported `Database collation version: ok`. -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` passed. -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` passed. +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` passed. +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` passed. Open: - None for this pass. @@ -3445,9 +3484,9 @@ Changed: Validation: - `LIVE_SMOKE_CONTAINER=geointel bash scripts/live_migration_smoke.sh` passed on Tower and reported `Database collation version: ok`. -- `bash scripts/verify_browser_runtime.sh http://192.168.10.150:1202` passed. -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` passed. -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` passed. +- `bash scripts/verify_browser_runtime.sh http://192.0.2.10:1202` passed. +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` passed. +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` passed. Notes: - An initial SSH script attempt was interrupted by PowerShell BOM/stdin handling before reindex or refresh executed; the subsequent base64-delivered script ran without `docker exec -i` stdin interference. @@ -3510,7 +3549,7 @@ Validation: - Tower deploy via `scripts/deploy_tower.ps1` passed after commit `3a8b82f`. - Tower Docker Compose config/build/up passed with the env-default compose file. - Tower live migration smoke passed with PostGIS 3.4 and Alembic head `202606120900`. -- Tower browser runtime verification passed on `http://192.168.10.150:1202`. +- Tower browser runtime verification passed on `http://192.0.2.10:1202`. - Additional HTTP smoke passed for frontend HTML, `GET /api/v1/projects`, `/geointel-icon.svg` and `/geointel-icon.png`. Notes: @@ -3539,7 +3578,7 @@ Validation: - `bash -n scripts/live_migration_smoke.sh` passed. - Tower deploy via `scripts/deploy_tower.ps1` passed after commit `acf9590`. - Tower live migration smoke passed with PostGIS 3.4 and Alembic head `202606120900`. -- Tower browser runtime verification passed on `http://192.168.10.150:1202`. +- Tower browser runtime verification passed on `http://192.0.2.10:1202`. - Additional HTTP smoke passed for frontend HTML and `GET /api/v1/projects` through the frontend proxy. Notes: @@ -3567,7 +3606,7 @@ Validation: - `bash -n scripts/live_migration_smoke.sh` passed. - Tower deploy via `scripts/deploy_tower.ps1` passed after commit `1cbb356`. - Tower live migration smoke passed with PostGIS 3.4 and Alembic head `202606120900`. -- Tower browser runtime verification passed on `http://192.168.10.150:1202`. +- Tower browser runtime verification passed on `http://192.0.2.10:1202`. - Additional HTTP smoke passed for frontend HTML and `GET /api/v1/projects` through the frontend proxy. Notes: @@ -3596,7 +3635,7 @@ Validation: - Tower Docker storage recovered from `/var/lib/docker` 94% used to 58% used after cleanup and rebuild. - Tower deploy via `scripts/deploy_tower.ps1` passed after commit `361776c`. - Tower live migration smoke passed with PostGIS 3.4 and Alembic head `202606120900`. -- Tower browser runtime verification passed on `http://192.168.10.150:1202`. +- Tower browser runtime verification passed on `http://192.0.2.10:1202`. - Additional HTTP smoke passed for frontend HTML and `GET /api/v1/projects` through the frontend proxy. Notes: @@ -3623,7 +3662,7 @@ Validation: - `bash -n scripts/live_migration_smoke.sh` passed. - Tower deploy via `scripts/deploy_tower.ps1` passed after commit `fd0000f`. - Tower live migration smoke passed with PostGIS 3.4 and Alembic head `202606120900`. -- Tower browser runtime verification passed on `http://192.168.10.150:1202`. +- Tower browser runtime verification passed on `http://192.0.2.10:1202`. - Additional HTTP smoke passed for frontend HTML and `GET /api/v1/projects` through the frontend proxy. Notes: @@ -3649,7 +3688,7 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - Tower deploy/live migration/browser runtime passed after commit `6c32f29`. -- In-app browser check passed on `http://192.168.10.150:1202`: workbench, status strip, Detection Lab, Segmentation Lab and Export Center visible with no console error logs. +- In-app browser check passed on `http://192.0.2.10:1202`: workbench, status strip, Detection Lab, Segmentation Lab and Export Center visible with no console error logs. Notes: - No API contracts, backend behavior, migrations, product features, provider fetching, AI behavior or UI redesign changed. @@ -3671,7 +3710,7 @@ Validation: - `cd backend && python -m alembic upgrade head --sql` passed. - `bash -n scripts/live_migration_smoke.sh` passed. - Tower deploy/live migration/browser runtime passed after commit `6c32f29`. -- In-app browser check passed on `http://192.168.10.150:1202`: workbench, status strip, Detection Lab, Segmentation Lab and Export Center visible with no console error logs. +- In-app browser check passed on `http://192.0.2.10:1202`: workbench, status strip, Detection Lab, Segmentation Lab and Export Center visible with no console error logs. - Tower deploy/live migration/browser runtime passed after commit `382dcad`. - Backend-container YOLO preflight sanity passed: default status `not_configured`, `will_download_models=false`, `will_run_inference=false`. - Backend-container CLI guard passed: `--check-model-load` with `--assume-dependencies` is rejected. @@ -4849,10 +4888,10 @@ Additional Sprint 7A validation completed after migration index cleanup: ## Pass 37 - Frontend same-origin API proxy for Docker LAN access (2026-06-16) ### Completed -- Audited the running app at `http://192.168.10.150:1202` from Codex: frontend HTML and backend `/health` were reachable, but `/api/v1/projects` on the frontend origin returned the frontend HTML fallback. +- Audited the running app at `http://192.0.2.10:1202` from Codex: frontend HTML and backend `/health` were reachable, but `/api/v1/projects` on the frontend origin returned the frontend HTML fallback. - Changed the frontend API client default from `http://localhost:8000` to same-origin requests. - Added Vite proxy routes for `/api` and `/health`. -- Added Docker Compose `VITE_API_PROXY_TARGET=http://backend:8000` so LAN browsers use `http://192.168.10.150:1202` only and the frontend container proxies API calls internally. +- Added Docker Compose `VITE_API_PROXY_TARGET=http://backend:8000` so LAN browsers use `http://192.0.2.10:1202` only and the frontend container proxies API calls internally. - Added regression tests for same-origin API/proxy behavior. ### Files changed @@ -4886,7 +4925,7 @@ Additional Sprint 7A validation completed after migration index cleanup: - `docs/CODEX_EXECUTION_LOG.md` ### Known limitations -- The currently running Tower deployment at `http://192.168.10.150:1202` still returns frontend HTML for `/api/v1/projects` until the frontend image is rebuilt and restarted. +- The currently running Tower deployment at `http://192.0.2.10:1202` still returns frontend HTML for `/api/v1/projects` until the frontend image is rebuilt and restarted. ## Pass 39 - Environment contract cleanup (2026-06-16) @@ -5011,7 +5050,7 @@ Limitations: - Download endpoint is intentionally a raw file response, not a canonical JSON envelope, because it is a browser/file artifact path. Next recommended pass: -- Rebuild Docker and verify Export Center create/preview/download against `http://192.168.10.150:1202`. +- Rebuild Docker and verify Export Center create/preview/download against `http://192.0.2.10:1202`. ## Sprint 17 lightweight report artifact export (2026-06-16) @@ -5065,7 +5104,7 @@ Limitations: - The smoke script intentionally uses explicit fixture demo data and does not fetch live GRB/OSM or run AI inference. Next recommended pass: -- Rebuild Docker on the Tower host and run `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202`. +- Rebuild Docker on the Tower host and run `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202`. ## Sprint 32 Unraid all-in-one runtime verification (2026-06-17) @@ -5083,14 +5122,14 @@ Tested: - `bash -n scripts/verify_browser_runtime.sh` - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` - `docker compose -f docker-compose.unraid.yml ps` on Tower -- `bash scripts/verify_browser_runtime.sh http://192.168.10.150:1202` +- `bash scripts/verify_browser_runtime.sh http://192.0.2.10:1202` Verified runtime: - Tower runs one GeoIntel app container: `geointel`. - Published browser port is `0.0.0.0:1202->80/tcp`. - Container health is `healthy`. - Live migration smoke passed with PostGIS available and one Alembic head. -- Frontend, API proxy and icon are reachable at `http://192.168.10.150:1202`. +- Frontend, API proxy and icon are reachable at `http://192.0.2.10:1202`. Open: - Existing reused PostgreSQL volume logs a collation version mismatch because the old database was created on Debian glibc 2.31 and the all-in-one runtime uses glibc 2.36. Runtime and migrations pass; a future maintenance pass can rebuild/refresh collation metadata if needed. @@ -5100,7 +5139,7 @@ Open: Changed: - Added a PNG icon for Unraid/DockerMan because DockerMan may not reliably render app-served SVG icons. - Changed the Unraid template `` to `geointel` so it matches the running all-in-one container name. -- Changed the template icon URL to the absolute PNG URL `http://192.168.10.150:1202/geointel-icon.png`. +- Changed the template icon URL to the absolute PNG URL `http://192.0.2.10:1202/geointel-icon.png`. - Added DockerMan labels to `docker-compose.unraid.yml` so the running Compose container exposes Unraid managed/webui/icon metadata. - Updated Tower deploy scripts to copy the editable template to `/boot/config/plugins/dockerMan/templates-user/my-geointel.xml`. - Updated Tower deploy scripts to copy the PNG icon to `/boot/config/plugins/dockerMan/images/geointel-icon.png`. @@ -5172,9 +5211,9 @@ Tested: - `cd frontend && npm run build` - `bash scripts/run_readiness_check.sh` - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` -- `bash scripts/verify_browser_runtime.sh http://192.168.10.150:1202` -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` +- `bash scripts/verify_browser_runtime.sh http://192.0.2.10:1202` +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` Open: - Docker build still emits a warning about `GEOINTEL_POSTGRES_PASSWORD` being present as an image `ENV`; runtime behavior is green, but a future secret-hygiene pass should move that default out of the Dockerfile. @@ -5204,9 +5243,9 @@ Tested: - `bash scripts/run_readiness_check.sh` - `cd backend && python -m alembic heads && python -m alembic upgrade head --sql` - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` -- `bash scripts/verify_browser_runtime.sh http://192.168.10.150:1202` -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` +- `bash scripts/verify_browser_runtime.sh http://192.0.2.10:1202` +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` Open: - Local Windows shell has no `docker` command in PATH, so Docker build/config verification must run on Tower during deploy. @@ -5236,9 +5275,9 @@ Tested: - `cd frontend && npm run build` - `bash scripts/run_readiness_check.sh` - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` -- `bash scripts/verify_browser_runtime.sh http://192.168.10.150:1202` -- `bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202` -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` +- `bash scripts/verify_browser_runtime.sh http://192.0.2.10:1202` +- `bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202` +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` Open: - Tower live smoke reports `COLLATION_VERSION_MISMATCH: database=geointel stored=2.31 actual=2.36`. @@ -5267,7 +5306,7 @@ Tested: Open: - Local Vite visual audit shows `Request failed (404)` when no local backend/proxy target is available. Docker/nginx same-origin proxy behavior remains the production path. -- The next pass should run full release readiness and deploy to Tower for browser-facing verification on `http://192.168.10.150:1202`. +- The next pass should run full release readiness and deploy to Tower for browser-facing verification on `http://192.0.2.10:1202`. Limitations: - This pass intentionally changes UI structure only. It does not add product capabilities, alter API contracts, change migrations, fetch live providers or enable new AI models. @@ -5297,7 +5336,7 @@ Limitations: - This pass remains frontend-only. It does not add features, change API contracts, alter migrations, fetch live providers or enable new AI models. Next recommended pass: -- Deploy to Tower and verify the Data, Map and AI Labs workspaces on `http://192.168.10.150:1202`. +- Deploy to Tower and verify the Data, Map and AI Labs workspaces on `http://192.0.2.10:1202`. ## Sprint 51 QA/QC and export workspace polish (2026-06-17) @@ -5315,7 +5354,7 @@ Tested: - `bash scripts/run_readiness_check.sh` (`207 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` - Tower live migration smoke passed. -- Tower browser runtime verification passed on `http://192.168.10.150:1202`. +- Tower browser runtime verification passed on `http://192.0.2.10:1202`. Open: - Manual visual review of populated QA/QC and Exports states with real project artifacts remains useful after the next demo workflow run. @@ -5344,7 +5383,7 @@ Tested: - `bash scripts/run_readiness_check.sh` (`210 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` - Tower live migration smoke passed. -- Tower browser runtime verification passed on `http://192.168.10.150:1202`. +- Tower browser runtime verification passed on `http://192.0.2.10:1202`. Open: - Manual click-through of each inspector tab with populated demo data remains useful for visual fine-tuning. @@ -5372,7 +5411,7 @@ Tested: - `bash scripts/run_readiness_check.sh` (`213 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` - Tower live migration smoke passed. -- Tower browser runtime verification passed on `http://192.168.10.150:1202`. +- Tower browser runtime verification passed on `http://192.0.2.10:1202`. Open: - Manual demo-data click-through can still tune copy/density after real populated cards are visible. @@ -5395,7 +5434,7 @@ Changed: - Added regression coverage for the populated Data layout and Exports populated-state behavior. Tested: -- `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202` +- `bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202` - Local Vite visual audit using the live Tower API proxy on `http://127.0.0.1:5176` - `cd frontend && npm run typecheck` - `cd backend && python -m pytest tests/test_sprint51_quality_export_polish.py tests/test_sprint53_selection_ergonomics.py -q` @@ -5403,8 +5442,8 @@ Tested: - `bash scripts/run_readiness_check.sh` (`214 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` - Tower live migration smoke passed. -- Tower browser runtime verification passed on `http://192.168.10.150:1202`. -- Direct HTTP check passed for `http://192.168.10.150:1202` and `http://192.168.10.150:1202/api/v1/projects`. +- Tower browser runtime verification passed on `http://192.0.2.10:1202`. +- Direct HTTP check passed for `http://192.0.2.10:1202` and `http://192.0.2.10:1202/api/v1/projects`. Open: - Continue monitoring export history growth during repeated demo workflow runs. @@ -5418,7 +5457,7 @@ Next recommended pass: ## Sprint 55 live visual shell polish (2026-06-17) Changed: -- Performed a Browser-based visual audit of the live Tower workbench at `http://192.168.10.150:1202`. +- Performed a Browser-based visual audit of the live Tower workbench at `http://192.0.2.10:1202`. - Confirmed the main visual defect was the cramped three-column desktop shell: left navigation, central workspace and inspector competed for width at 1280px. - Compacted the sticky top context bar and left navigation. - Changed the standard desktop breakpoint so the inspector moves below the workspace up to 1360px, while remaining a side panel on wider displays. @@ -5436,8 +5475,8 @@ Tested: - `bash scripts/run_readiness_check.sh` (`215 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` - Tower live migration smoke passed. -- Tower browser runtime verification passed on `http://192.168.10.150:1202`. -- Live Browser visual verification passed for Overview and Map on `http://192.168.10.150:1202`. +- Tower browser runtime verification passed on `http://192.0.2.10:1202`. +- Live Browser visual verification passed for Overview and Map on `http://192.0.2.10:1202`. Open: - Export history still grows during repeated demo runs and should get filtering or retention controls. @@ -5467,7 +5506,7 @@ Tested: - Browser console error/warning check returned no entries. Open: -- Run full readiness, deploy Tower and verify the live Exports filters on `http://192.168.10.150:1202`. +- Run full readiness, deploy Tower and verify the live Exports filters on `http://192.0.2.10:1202`. Limitations: - This pass remains frontend UI hardening only. It does not add backend filtering, retention deletion, API changes, migrations, live provider fetching or AI model behavior. @@ -5519,7 +5558,7 @@ Tested: - `bash scripts/run_readiness_check.sh` (`219 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` - Tower live migration smoke passed. -- Tower browser runtime verification passed on `http://192.168.10.150:1202`. +- Tower browser runtime verification passed on `http://192.0.2.10:1202`. - Tower cleanup dry-run smoke passed with `matched=51`, `type_filtered=17`, `selected=7`, `deleted=0`. Open: @@ -5546,7 +5585,7 @@ Tested: - `cd backend && python -m pytest tests/test_readiness_gate.py -q` (`13 passed`) - `bash scripts/run_readiness_check.sh` (`221 passed`) - Local script execution without Playwright fails cleanly with setup instructions instead of producing partial artifacts. -- Browser-plugin visual capture against `http://192.168.10.150:1202` created viewport screenshots for all seven workspaces with no console errors or warnings. +- Browser-plugin visual capture against `http://192.0.2.10:1202` created viewport screenshots for all seven workspaces with no console errors or warnings. Open: - Commit, deploy Tower and keep the visual artifact script available for future Playwright-enabled runners. @@ -5579,7 +5618,7 @@ Tested: - `bash scripts/run_readiness_check.sh` (`226 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` - Tower live migration smoke passed. -- Tower browser runtime verification passed on `http://192.168.10.150:1202`. +- Tower browser runtime verification passed on `http://192.0.2.10:1202`. - Live `GET /api/v1/external/providers/unknown` returned `{"error":"PROVIDER_NOT_FOUND","message":"Provider not found","details":{},"request_id":null}`. - Live `GET /api/v1/projects/not-a-uuid` returned top-level `VALIDATION_ERROR`. @@ -5686,7 +5725,7 @@ Tested: - Local Chrome/Playwright check against `http://127.0.0.1:5175` with live API proxy: Exports workspace opened, handoff summary/actions present, no console warnings/errors, no horizontal page overflow on desktop or mobile. - `bash scripts/run_readiness_check.sh` (`233 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the all-in-one container on Tower, with live migration smoke and browser runtime verification passing. -- Live Chrome/Playwright check against `http://192.168.10.150:1202`: Exports workspace opened, 6 handoff action cards present, no console warnings/errors, no horizontal page overflow on desktop or mobile. +- Live Chrome/Playwright check against `http://192.0.2.10:1202`: Exports workspace opened, 6 handoff action cards present, no console warnings/errors, no horizontal page overflow on desktop or mobile. Open: - None for this pass. @@ -5715,7 +5754,7 @@ Tested: - `cd frontend && npm run build` - `bash scripts/run_readiness_check.sh` (`235 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container, with live migration smoke and browser runtime verification passing. -- Live report smoke through `http://192.168.10.150:1202`: seeded explicit demo workflow, created `project_report_html`, downloaded the HTML artifact and verified it in Chrome with 5 scorecards, 5 report sections, no console warnings/errors and no horizontal overflow on desktop or mobile. +- Live report smoke through `http://192.0.2.10:1202`: seeded explicit demo workflow, created `project_report_html`, downloaded the HTML artifact and verified it in Chrome with 5 scorecards, 5 report sections, no console warnings/errors and no horizontal overflow on desktop or mobile. Open: - None for this pass. @@ -5729,7 +5768,7 @@ Next recommended pass: ## Sprint 66 Live workspace smoke polish (2026-06-19) Changed: -- Ran a live browser smoke against `http://192.168.10.150:1202` across Overview, Data, Map, QA/QC, AI Labs, Exports and System. +- Ran a live browser smoke against `http://192.0.2.10:1202` across Overview, Data, Map, QA/QC, AI Labs, Exports and System. - Captured desktop and mobile screenshots under `artifacts/sprint66-live-workspace-smoke/`. - Confirmed all primary workspaces load with no console warnings/errors and no page-level horizontal overflow. - Tightened Export Center handoff card CSS so action cards and readiness cells wrap by available width instead of forcing cramped three/four-column layouts in the populated Exports workspace. @@ -5742,7 +5781,7 @@ Tested: - Local post-fix browser check against `http://127.0.0.1:5175` with live API proxy: Exports handoff action cards wrap to 2 desktop columns and 1 mobile column, no console warnings/errors and no horizontal page overflow. - `bash scripts/run_readiness_check.sh` (`237 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container, with live migration smoke and browser runtime verification passing. -- Live post-deploy Exports check on `http://192.168.10.150:1202`: handoff action cards render as 2 usable columns at desktop width, no console warnings/errors and no horizontal overflow. +- Live post-deploy Exports check on `http://192.0.2.10:1202`: handoff action cards render as 2 usable columns at desktop width, no console warnings/errors and no horizontal overflow. Open: - None for this pass. @@ -5770,7 +5809,7 @@ Tested: - Local Chrome/Playwright check against `http://127.0.0.1:5175` with live API proxy: Map empty state showed 2 ready dataset actions, clicking the first loaded `demo_predicted_buildings.geojson` as a 2-feature active layer, no console warnings/errors and no horizontal overflow. - `bash scripts/run_readiness_check.sh` (`240 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container, with live migration smoke and browser runtime verification passing. -- Live post-deploy Map quick-action check on `http://192.168.10.150:1202`: Map empty state showed 2 ready dataset actions, clicking the first loaded `demo_predicted_buildings.geojson` as a 2-feature active layer, no console warnings/errors and no horizontal overflow. +- Live post-deploy Map quick-action check on `http://192.0.2.10:1202`: Map empty state showed 2 ready dataset actions, clicking the first loaded `demo_predicted_buildings.geojson` as a 2-feature active layer, no console warnings/errors and no horizontal overflow. Open: - None for this pass. @@ -5800,7 +5839,7 @@ Tested: - Screenshots captured under `artifacts/sprint68-dataset-catalog-density/`. - `bash scripts/run_readiness_check.sh` (`243 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container, with live migration smoke and browser runtime verification passing. -- Live post-deploy Data catalog check on `http://192.168.10.150:1202`: Data workspace showed Selected, Reference, Candidate and Source summary cards, candidate/reference badges rendered, no console warnings/errors and no horizontal overflow on desktop or mobile. +- Live post-deploy Data catalog check on `http://192.0.2.10:1202`: Data workspace showed Selected, Reference, Candidate and Source summary cards, candidate/reference badges rendered, no console warnings/errors and no horizontal overflow on desktop or mobile. Open: - None for this pass. @@ -5831,7 +5870,7 @@ Tested: - Screenshots captured under `artifacts/sprint69-dataset-action-polish/`. - `bash scripts/run_readiness_check.sh` (`246 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container, with live migration smoke and browser runtime verification passing. -- Live post-deploy Data action check on `http://192.168.10.150:1202`: Data workspace rendered 2 role-aware hints and 8 compact dataset actions across the demo candidate/reference datasets, no console warnings/errors and no horizontal overflow on desktop or mobile. +- Live post-deploy Data action check on `http://192.0.2.10:1202`: Data workspace rendered 2 role-aware hints and 8 compact dataset actions across the demo candidate/reference datasets, no console warnings/errors and no horizontal overflow on desktop or mobile. Open: - None for this pass. @@ -5863,7 +5902,7 @@ Tested: - Screenshots captured under `artifacts/sprint70-quality-handoff-polish/`. - `bash scripts/run_readiness_check.sh` (`250 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container, with live migration smoke and browser runtime verification passing. -- Live post-deploy QA/QC handoff check on `http://192.168.10.150:1202`: QA/QC workspace showed 1 candidate layer, 1 reference layer, latest comparison names and named dataset links inside persisted quality-check cards, with no console warnings/errors and no horizontal overflow on desktop or mobile. +- Live post-deploy QA/QC handoff check on `http://192.0.2.10:1202`: QA/QC workspace showed 1 candidate layer, 1 reference layer, latest comparison names and named dataset links inside persisted quality-check cards, with no console warnings/errors and no horizontal overflow on desktop or mobile. Open: - None for this pass. @@ -5893,7 +5932,7 @@ Tested: - Screenshots captured under `artifacts/sprint71-quality-metric-polish/`. - `bash scripts/run_readiness_check.sh` (`253 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container, with live migration smoke and browser runtime verification passing. -- Live post-deploy QA/QC metric check on `http://192.168.10.150:1202`: QA/QC workspace rendered 12 promoted metric cards across 2 persisted quality checks, retained 2 raw metric sections, no console warnings/errors and no body-level horizontal overflow on desktop or mobile. +- Live post-deploy QA/QC metric check on `http://192.0.2.10:1202`: QA/QC workspace rendered 12 promoted metric cards across 2 persisted quality checks, retained 2 raw metric sections, no console warnings/errors and no body-level horizontal overflow on desktop or mobile. - Live mobile screenshot captured at `artifacts/sprint71-quality-metric-polish/live-qa-metrics-mobile.png`. Open: @@ -5925,7 +5964,7 @@ Tested: - Screenshot captured under `artifacts/sprint72-mobile-overflow-hardening/`. - `bash scripts/run_readiness_check.sh` (`255 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container, with live migration smoke and browser runtime verification passing. -- Live post-deploy mobile check on `http://192.168.10.150:1202` at a 390px viewport: QA/QC workspace rendered 2 quality cards and 12 metric cards; body, shell, inspector, inspector panel and inspector tabs stayed within viewport width; sidebar/workspace nav retained contained horizontal scrolling; no console warnings/errors. +- Live post-deploy mobile check on `http://192.0.2.10:1202` at a 390px viewport: QA/QC workspace rendered 2 quality cards and 12 metric cards; body, shell, inspector, inspector panel and inspector tabs stayed within viewport width; sidebar/workspace nav retained contained horizontal scrolling; no console warnings/errors. - Live screenshot captured at `artifacts/sprint72-mobile-overflow-hardening/live-mobile-qa.png`. Open: @@ -5958,7 +5997,7 @@ Tested: - Screenshots captured under `artifacts/sprint73-quality-result-filtering/`. - `bash scripts/run_readiness_check.sh` (`257 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container, with live migration smoke and browser runtime verification passing. -- Live post-deploy QA/QC filtering check on `http://192.168.10.150:1202`: search/status conflict showed the no-match state; reset restored 2 checks and 12 metric cards; no console warnings/errors and no body-level overflow. +- Live post-deploy QA/QC filtering check on `http://192.0.2.10:1202`: search/status conflict showed the no-match state; reset restored 2 checks and 12 metric cards; no console warnings/errors and no body-level overflow. - Live mobile check at a 390px viewport: QA/QC filter controls stayed within viewport width, with 2 checks and 12 metric cards visible. - Live screenshots captured at `artifacts/sprint73-quality-result-filtering/live-qa-filtering.png` and `artifacts/sprint73-quality-result-filtering/live-qa-filtering-mobile.png`. @@ -5990,7 +6029,7 @@ Tested: - Screenshots captured under `artifacts/sprint74-data-map-mobile-polish/`. - `bash scripts/run_readiness_check.sh` (`259 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container on port 1202, with live migration smoke and browser runtime verification passing. -- Live post-deploy browser check on `http://192.168.10.150:1202` at a 390px viewport: Data upload form, file input and 8 dataset action buttons stayed within the viewport; Map toolbar, 2 layer controls, range sliders and empty-map quick actions stayed within the viewport; no body-level horizontal overflow was detected. +- Live post-deploy browser check on `http://192.0.2.10:1202` at a 390px viewport: Data upload form, file input and 8 dataset action buttons stayed within the viewport; Map toolbar, 2 layer controls, range sliders and empty-map quick actions stayed within the viewport; no body-level horizontal overflow was detected. - Live screenshots captured at `artifacts/sprint74-data-map-mobile-polish/live-data-mobile.png` and `artifacts/sprint74-data-map-mobile-polish/live-map-mobile.png`. Open: @@ -6020,7 +6059,7 @@ Tested: - Screenshot captured under `artifacts/sprint75-ai-labs-mobile-polish/`. - `bash scripts/run_readiness_check.sh` (`261 passed`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container on port 1202, with live migration smoke and browser runtime verification passing. -- Live post-deploy browser check on `http://192.168.10.150:1202` at a 390px viewport: AI Labs rendered 2 panels, 7 model cards, 6 lab blocks and 4 lab forms with no body-level horizontal overflow. +- Live post-deploy browser check on `http://192.0.2.10:1202` at a 390px viewport: AI Labs rendered 2 panels, 7 model cards, 6 lab blocks and 4 lab forms with no body-level horizontal overflow. - Live screenshot captured at `artifacts/sprint75-ai-labs-mobile-polish/live-ai-labs-mobile.png`. Open: @@ -6202,7 +6241,7 @@ Changed: - Updated `frontend/README.md`, `docs/TODO.md` and `CHANGELOG.md`. Tested: -- Live browser pre-check against `http://192.168.10.150:1202` showed no console errors, no horizontal document overflow and a too-tall narrow viewport topbar/context stack. +- Live browser pre-check against `http://192.0.2.10:1202` showed no console errors, no horizontal document overflow and a too-tall narrow viewport topbar/context stack. - Red step: `python -m pytest backend/tests/test_sprint82_shell_density_polish.py -q` failed on missing skip-link, main focus target and compact mobile shell CSS contracts. - `python -m pytest backend/tests/test_sprint82_shell_density_polish.py -q` (`3 passed`) - `python -m pytest backend/tests/test_sprint82_shell_density_polish.py backend/tests/test_sprint79_accessibility_focus_polish.py backend/tests/test_sprint72_mobile_overflow_hardening.py backend/tests/test_sprint49_workbench_shell_refactor.py backend/tests/test_sprint47_workbench_interaction_smoke.py -q` (`13 passed`) @@ -6212,7 +6251,7 @@ Tested: - Live post-deploy browser check found a narrow-screen cascade override that made `.context-bar` one-column again; tightened the regression test and kept the context rail scrollable through the smallest breakpoint. - Re-ran `python -m pytest backend/tests/test_sprint82_shell_density_polish.py -q`, `cd frontend && npm run typecheck`, `cd frontend && npm run build` and `bash scripts/run_readiness_check.sh` (`279 passed`) after that fix. - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container on port 1202, then passed live migration smoke and browser runtime verification. -- Final live browser check against `http://192.168.10.150:1202` passed on desktop and mobile viewports: no console warnings/errors, no horizontal document overflow, skip link/main target present, `Primary workspaces` nav label present and mobile context bar stayed compact at 64px tall. +- Final live browser check against `http://192.0.2.10:1202` passed on desktop and mobile viewports: no console warnings/errors, no horizontal document overflow, skip link/main target present, `Primary workspaces` nav label present and mobile context bar stayed compact at 64px tall. Open: - None for this pass. @@ -6233,7 +6272,7 @@ Changed: - Updated `frontend/README.md`, `docs/TODO.md` and `CHANGELOG.md`. Tested: -- Live browser pre-check against `http://192.168.10.150:1202` showed no console errors or horizontal overflow, but the first workspace viewport still had several equally weighted white cards. +- Live browser pre-check against `http://192.0.2.10:1202` showed no console errors or horizontal overflow, but the first workspace viewport still had several equally weighted white cards. - Red step: `python -m pytest backend/tests/test_sprint83_workspace_panel_hierarchy.py -q` failed on missing Overview hierarchy regions and compact section-surface CSS contracts. - `python -m pytest backend/tests/test_sprint83_workspace_panel_hierarchy.py -q` (`3 passed`) - `python -m pytest backend/tests/test_sprint83_workspace_panel_hierarchy.py backend/tests/test_sprint82_shell_density_polish.py backend/tests/test_sprint62_frontend_visual_polish.py backend/tests/test_sprint50_workspace_usability_polish.py backend/tests/test_sprint22_workbench_status_strip.py backend/tests/test_sprint47_workbench_interaction_smoke.py -q` (`15 passed`) @@ -6241,7 +6280,7 @@ Tested: - `cd frontend && npm run build` - `bash scripts/run_readiness_check.sh` (`282 passed`; frontend typecheck/build passed; Alembic single head `202606120900`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container on port 1202, then passed live migration smoke and browser runtime verification. -- Final live browser check against `http://192.168.10.150:1202` passed on desktop and mobile viewports: no console warnings/errors, no horizontal document overflow, Overview hierarchy regions present and four recommended-action buttons rendered. +- Final live browser check against `http://192.0.2.10:1202` passed on desktop and mobile viewports: no console warnings/errors, no horizontal document overflow, Overview hierarchy regions present and four recommended-action buttons rendered. Open: - None for this pass. @@ -6263,7 +6302,7 @@ Changed: - Updated `frontend/README.md`, `docs/TODO.md` and `CHANGELOG.md`. Tested: -- Live browser pre-check against `http://192.168.10.150:1202` showed Data workspace had no console errors or horizontal overflow, but the first Data viewport was still form-first and visually heavy. +- Live browser pre-check against `http://192.0.2.10:1202` showed Data workspace had no console errors or horizontal overflow, but the first Data viewport was still form-first and visually heavy. - Red step: `python -m pytest backend/tests/test_sprint84_data_workspace_density.py -q` failed on missing selected-summary and named form/list/catalog regions. - `python -m pytest backend/tests/test_sprint84_data_workspace_density.py -q` (`3 passed`) - `python -m pytest backend/tests/test_sprint84_data_workspace_density.py backend/tests/test_sprint83_workspace_panel_hierarchy.py backend/tests/test_sprint50_workspace_usability_polish.py backend/tests/test_sprint29_dataset_components.py backend/tests/test_sprint68_dataset_catalog_density.py backend/tests/test_sprint69_dataset_action_polish.py backend/tests/test_sprint47_workbench_interaction_smoke.py -q` (`20 passed`) @@ -6271,7 +6310,7 @@ Tested: - `cd frontend && npm run build` - `bash scripts/run_readiness_check.sh` (`285 passed`; frontend typecheck/build passed; Alembic single head `202606120900`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container on port 1202, then passed live migration smoke and browser runtime verification. -- Final live browser DOM/console check against `http://192.168.10.150:1202` passed on desktop and mobile viewports: Data workspace active, no console warnings/errors, no horizontal document overflow, three selected-summary regions, three form blocks and three list/catalog blocks rendered. +- Final live browser DOM/console check against `http://192.0.2.10:1202` passed on desktop and mobile viewports: Data workspace active, no console warnings/errors, no horizontal document overflow, three selected-summary regions, three form blocks and three list/catalog blocks rendered. Open: - None for this pass. @@ -6292,7 +6331,7 @@ Changed: - Updated `frontend/README.md`, `docs/TODO.md` and `CHANGELOG.md`. Tested: -- Live browser pre-check against `http://192.168.10.150:1202` showed Map workspace had no console errors or horizontal overflow, but controls, provenance, map frame and inspector still read as a loose vertical stack. +- Live browser pre-check against `http://192.0.2.10:1202` showed Map workspace had no console errors or horizontal overflow, but controls, provenance, map frame and inspector still read as a loose vertical stack. - Red step: `python -m pytest backend/tests/test_sprint85_map_workspace_density.py -q` failed on missing Map workspace surface and context-summary contracts. - `python -m pytest backend/tests/test_sprint85_map_workspace_density.py -q` (`3 passed`) - `python -m pytest backend/tests/test_sprint85_map_workspace_density.py backend/tests/test_sprint63_map_overlay_ergonomics.py backend/tests/test_sprint67_map_empty_state_quick_actions.py backend/tests/test_sprint74_data_map_mobile_polish.py backend/tests/test_sprint47_workbench_interaction_smoke.py -q` (`13 passed`) @@ -6305,7 +6344,7 @@ Tested: - `cd frontend && npm run build` - `bash scripts/run_readiness_check.sh` (`289 passed`; frontend typecheck/build passed; Alembic single head `202606120900`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container on port 1202, then passed live migration smoke and browser runtime verification. -- Final live browser check against `http://192.168.10.150:1202` passed on desktop and mobile viewports: no console warnings/errors, no horizontal document overflow, three Map context summary cards, two layer control cards, separated control/map/inspector surfaces and mobile control preamble reduced after the compact breakpoint correction. +- Final live browser check against `http://192.0.2.10:1202` passed on desktop and mobile viewports: no console warnings/errors, no horizontal document overflow, three Map context summary cards, two layer control cards, separated control/map/inspector surfaces and mobile control preamble reduced after the compact breakpoint correction. Open: - None for this pass. @@ -6328,7 +6367,7 @@ Changed: - Updated `frontend/README.md`, `docs/TODO.md` and `CHANGELOG.md`. Tested: -- Live browser pre-check against `http://192.168.10.150:1202` showed QA/QC workspace had no console errors or horizontal overflow, but summary, handoff, filters and history were still visually stacked at equal weight. Mobile measured summary at 210px, handoff at 295px and filters at 278px before the result history. +- Live browser pre-check against `http://192.0.2.10:1202` showed QA/QC workspace had no console errors or horizontal overflow, but summary, handoff, filters and history were still visually stacked at equal weight. Mobile measured summary at 210px, handoff at 295px and filters at 278px before the result history. - Red step: `python -m pytest backend/tests/test_sprint86_quality_workspace_density.py -q` failed on missing QA/QC surface and density CSS contracts. - `python -m pytest backend/tests/test_sprint86_quality_workspace_density.py -q` (`3 passed`) - `python -m pytest backend/tests/test_sprint86_quality_workspace_density.py backend/tests/test_sprint70_quality_handoff_polish.py backend/tests/test_sprint71_quality_metric_polish.py backend/tests/test_sprint73_quality_result_filtering.py backend/tests/test_sprint81_result_state_polish.py backend/tests/test_sprint47_workbench_interaction_smoke.py -q` (`18 passed`) @@ -6340,7 +6379,7 @@ Tested: - `cd frontend && npm run build` - `bash scripts/run_readiness_check.sh` (`292 passed`; frontend typecheck/build passed; Alembic single head `202606120900`) - `powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_tower.ps1` rebuilt and redeployed the Tower all-in-one container on port 1202, then passed live migration smoke and browser runtime verification. -- Final live browser check against `http://192.168.10.150:1202` passed on desktop and mobile viewports: no console warnings/errors, no horizontal document overflow, QA/QC shell/surfaces present and two persisted quality check cards rendered. +- Final live browser check against `http://192.0.2.10:1202` passed on desktop and mobile viewports: no console warnings/errors, no horizontal document overflow, QA/QC shell/surfaces present and two persisted quality check cards rendered. Open: - None for this pass. @@ -6363,13 +6402,13 @@ Changed: - Updated `frontend/README.md`, `docs/TODO.md` and `CHANGELOG.md`. Tested: -- Live browser pre-check attempt against `http://192.168.10.150:1202` hit a transient browser automation click timeout on the QA/QC workspace nav; source review showed Change Detection was still the older header/form/summary stack. +- Live browser pre-check attempt against `http://192.0.2.10:1202` hit a transient browser automation click timeout on the QA/QC workspace nav; source review showed Change Detection was still the older header/form/summary stack. - Red step: `python -m pytest backend/tests/test_sprint87_change_detection_density.py -q` failed on missing Change Detection surface and density CSS contracts. - `python -m pytest backend/tests/test_sprint87_change_detection_density.py backend/tests/test_sprint18_change_detection.py backend/tests/test_sprint39_frontend_orchestration_hooks.py backend/tests/test_sprint86_quality_workspace_density.py backend/tests/test_sprint47_workbench_interaction_smoke.py -q` (`20 passed`) - `cd frontend && npm run typecheck` - `cd frontend && npm run build` - `bash scripts/run_readiness_check.sh` (`295 passed`; frontend typecheck/build passed; Alembic head `202606120900`; live smoke syntax passed) -- Tower deploy via `scripts/deploy_tower.ps1` rebuilt and restarted the all-in-one container on `http://192.168.10.150:1202`. +- Tower deploy via `scripts/deploy_tower.ps1` rebuilt and restarted the all-in-one container on `http://192.0.2.10:1202`. - Tower deploy live migration smoke passed with PostGIS `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and required runtime schema objects present. - Browser runtime verification passed for frontend, proxied API and icon. - Direct Chrome live UI check passed on desktop `1440x1000` and mobile `390x844`: Change Detection shell/input surface rendered, no horizontal overflow and no console warnings/errors. @@ -6404,10 +6443,10 @@ Tested: - First full readiness run caught legacy AI Lab static contract expectations for exact `lab-block` and `result-summary-card` class names. Kept those compatibility anchors while preserving the new AI Lab surfaces. - `python -m pytest backend/tests/test_sprint50_workspace_usability_polish.py backend/tests/test_sprint75_ai_labs_mobile_polish.py backend/tests/test_sprint88_ai_lab_density.py -q` (`8 passed`) - `bash scripts/run_readiness_check.sh` (`299 passed`; frontend typecheck/build passed; Alembic head `202606120900`; live smoke syntax passed) -- Tower deploy via `scripts/deploy_tower.ps1` rebuilt and restarted the all-in-one container on `http://192.168.10.150:1202`. +- Tower deploy via `scripts/deploy_tower.ps1` rebuilt and restarted the all-in-one container on `http://192.0.2.10:1202`. - Tower deploy live migration smoke passed with PostGIS `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and required runtime schema objects present. - Browser runtime verification passed for frontend, proxied API and icon. -- Live browser AI Labs check against `http://192.168.10.150:1202` passed on desktop and mobile: Detection/Segmentation shells and model/run/result/QA surfaces rendered, no horizontal overflow and no console warnings/errors. +- Live browser AI Labs check against `http://192.0.2.10:1202` passed on desktop and mobile: Detection/Segmentation shells and model/run/result/QA surfaces rendered, no horizontal overflow and no console warnings/errors. Open: - None known after full readiness, Tower deploy and live browser validation. @@ -6439,10 +6478,10 @@ Tested: - In-app browser fallback note: the Browser click path timed out on the local workspace navigation CDP command, so rendered validation used local Chrome via Playwright. - Local Chrome UI check against `http://127.0.0.1:5174` passed on desktop and mobile: Export/System shells and surfaces rendered with no horizontal overflow. Local console showed expected Vite proxy 500s because only the frontend server was running. - `bash scripts/run_readiness_check.sh` (`303 passed`; frontend typecheck/build passed; Alembic head `202606120900`; live smoke syntax passed) -- Tower deploy via `scripts/deploy_tower.ps1` rebuilt and restarted the all-in-one container on `http://192.168.10.150:1202`. +- Tower deploy via `scripts/deploy_tower.ps1` rebuilt and restarted the all-in-one container on `http://192.0.2.10:1202`. - Tower deploy live migration smoke passed with PostGIS `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and required runtime schema objects present. - Browser runtime verification passed for frontend, proxied API and icon. -- Live Chrome UI check against `http://192.168.10.150:1202` passed on desktop and mobile: Export/System shells and surfaces rendered, four provider cards and eight provider provenance cards were visible, no horizontal overflow and no console warnings/errors. +- Live Chrome UI check against `http://192.0.2.10:1202` passed on desktop and mobile: Export/System shells and surfaces rendered, four provider cards and eight provider provenance cards were visible, no horizontal overflow and no console warnings/errors. Open: - None known after full readiness, Tower deploy and live browser validation. @@ -6470,10 +6509,10 @@ Tested: - `cd frontend && npm run build` - `bash scripts/run_readiness_check.sh` (`306 passed`; frontend typecheck/build passed; Alembic head `202606120900`; live smoke syntax passed) - Local browser UI check against `http://127.0.0.1:5174` passed on desktop and mobile: workflow guidance panel rendered with five steps and no horizontal overflow. Local console showed expected Vite proxy 500s because only the frontend server was running. -- Tower deploy via `scripts/deploy_tower.ps1` rebuilt and restarted the all-in-one container on `http://192.168.10.150:1202` from commit `2a0e7e7`. +- Tower deploy via `scripts/deploy_tower.ps1` rebuilt and restarted the all-in-one container on `http://192.0.2.10:1202` from commit `2a0e7e7`. - Tower deploy live migration smoke passed with PostGIS `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and required runtime schema objects present. - Browser runtime verification passed for frontend, proxied API and icon. -- Live browser UI check against `http://192.168.10.150:1202` passed on desktop and mobile: workflow guidance panel rendered with five steps, no horizontal overflow and no console warnings/errors. +- Live browser UI check against `http://192.0.2.10:1202` passed on desktop and mobile: workflow guidance panel rendered with five steps, no horizontal overflow and no console warnings/errors. Open: - None known after full readiness, Tower deploy and live browser validation. @@ -6487,7 +6526,7 @@ Next recommended pass: ## Sprint 91 populated workflow audit polish (2026-06-21) Changed: -- Audited the live populated demo state on `http://192.168.10.150:1202` across Overview, Data, Map, QA/QC, AI Labs and Exports. +- Audited the live populated demo state on `http://192.0.2.10:1202` across Overview, Data, Map, QA/QC, AI Labs and Exports. - Changed the Overview workflow guidance badge to show `Ready for handoff` when project, dataset, map, QA/AI and export state are all present. - Clarified the Map workflow step so it reports layer feature count separately from AOI context and shows `AOI loaded` for AOI-only map context. - Extended `backend/tests/test_sprint90_workflow_guidance.py` with complete-state and Map-copy regression coverage. @@ -6503,7 +6542,7 @@ Tested: - `cd frontend && npm run build` - Local browser UI check against `http://127.0.0.1:5174` passed for the Overview guidance panel with no horizontal overflow. Local console showed expected Vite proxy 500s because only the frontend server was running. - `bash scripts/run_readiness_check.sh` (`307 passed`; frontend typecheck/build passed; Alembic head `202606120900`; live smoke syntax passed) -- Tower deploy via `scripts/deploy_tower.ps1` rebuilt and restarted the all-in-one container on `http://192.168.10.150:1202` from commit `97b943d`. +- Tower deploy via `scripts/deploy_tower.ps1` rebuilt and restarted the all-in-one container on `http://192.0.2.10:1202` from commit `97b943d`. - Tower deploy live migration smoke passed with PostGIS `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1` and required runtime schema objects present. - Browser runtime verification passed for frontend, proxied API and icon. - Live post-change browser check passed: AOI-only Overview state showed `Map AOI loaded`; after opening `demo_predicted_buildings.geojson` on the map, Overview showed `Map 2 layer features + AOI`; both states showed `Ready for handoff`, no horizontal overflow and no console warnings/errors. @@ -6520,7 +6559,7 @@ Next recommended pass: ## Sprint 92 workflow rail interaction polish (2026-06-21) Changed: -- Audited the live Overview workflow rail click path on `http://192.168.10.150:1202`. +- Audited the live Overview workflow rail click path on `http://192.0.2.10:1202`. - Added `openWorkflowGuidanceStep` so Map and Export rail clicks can reuse existing dataset context flows. - Map rail click now opens the first ready vector/GeoJSON dataset through `openDatasetInMap` when no layer is active. - Export rail click now opens the first ready vector/GeoJSON dataset through `openDatasetExport` when no dataset is selected. @@ -6538,8 +6577,8 @@ Tested: - Tower deploy from commit `1872c60` completed; all-in-one container published on `0.0.0.0:1202->80/tcp`. - Deploy-time live migration smoke passed after the database became ready on attempt 3; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1`, required runtime schema objects were present and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- Live targeted browser validation against `http://192.168.10.150:1202` passed for `Open Map step`: `demo_predicted_buildings.geojson` became active, `2 features` rendered, no horizontal overflow and no console/page errors. -- Live targeted browser validation against `http://192.168.10.150:1202` passed for `Open Export step`: `demo_predicted_buildings.geojson` became the selected export dataset, no horizontal overflow and no console/page errors. +- Live targeted browser validation against `http://192.0.2.10:1202` passed for `Open Map step`: `demo_predicted_buildings.geojson` became active, `2 features` rendered, no horizontal overflow and no console/page errors. +- Live targeted browser validation against `http://192.0.2.10:1202` passed for `Open Export step`: `demo_predicted_buildings.geojson` became the selected export dataset, no horizontal overflow and no console/page errors. Open: - None for this pass. @@ -6570,7 +6609,7 @@ Tested: - Tower deploy from commit `0a9054c` completed; all-in-one container published on `0.0.0.0:1202->80/tcp`. - Deploy-time live migration smoke passed after the database became ready on attempt 2; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1`, required runtime schema objects were present and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- Live browser validation against `http://192.168.10.150:1202` passed for `Open Export step`: selected dataset stayed `demo_predicted_buildings.geojson`, `Latest handoff artifacts` rendered, project report/project metadata/dataset GeoJSON cards were present, detection/segmentation cards showed `No artifact yet`, preview opened from the latest artifact card, no horizontal overflow and no console/page errors. +- Live browser validation against `http://192.0.2.10:1202` passed for `Open Export step`: selected dataset stayed `demo_predicted_buildings.geojson`, `Latest handoff artifacts` rendered, project report/project metadata/dataset GeoJSON cards were present, detection/segmentation cards showed `No artifact yet`, preview opened from the latest artifact card, no horizontal overflow and no console/page errors. Open: - None for this pass. @@ -6602,7 +6641,7 @@ Tested: - Tower deploy from commit `f3ad9c3` completed; all-in-one container published on `0.0.0.0:1202->80/tcp`. - Deploy-time live migration smoke passed after the database became ready on attempt 2; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1`, required runtime schema objects were present and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- Live browser validation against `http://192.168.10.150:1202` passed for `Open QA / AI step`: QA/QC evidence drilldown rendered, candidate/reference names resolved, false-positive/negative evidence rendered, parameters/findings JSON rendered, per-result `Inspect check` controls were available, no horizontal overflow and no console/page errors. +- Live browser validation against `http://192.0.2.10:1202` passed for `Open QA / AI step`: QA/QC evidence drilldown rendered, candidate/reference names resolved, false-positive/negative evidence rendered, parameters/findings JSON rendered, per-result `Inspect check` controls were available, no horizontal overflow and no console/page errors. Open: - None for this pass. @@ -6639,7 +6678,7 @@ Tested: - Tower deploy from commit `330b677` completed; all-in-one container published on `0.0.0.0:1202->80/tcp`. - Deploy-time live migration smoke passed after the database became ready on attempt 2; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1`, required runtime schema objects were present and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- Live browser validation against `http://192.168.10.150:1202` passed for the workbench shell: Overview/Data/Map/QA/QC/AI Labs/Exports markers were present, no horizontal overflow and no console/page errors. +- Live browser validation against `http://192.0.2.10:1202` passed for the workbench shell: Overview/Data/Map/QA/QC/AI Labs/Exports markers were present, no horizontal overflow and no console/page errors. - Live dataset API validation confirmed the default demo currently contains vector fixtures only, so the raster-specific panel is not visible in the default live state without a raster upload. Open: @@ -6678,7 +6717,7 @@ Tested: - Tower deploy from commit `aaf1299` completed; all-in-one container published on `0.0.0.0:1202->80/tcp`. - Deploy-time live migration smoke passed after the database became ready on attempt 3; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1`, required runtime schema objects were present and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- Live browser validation against `http://192.168.10.150:1202` passed: Data auto-selected `demo_predicted_buildings.geojson`, Map rendered `2 features`, Exports showed the same selected dataset, AI Labs showed no-raster guidance for detection and segmentation, desktop/mobile had no horizontal overflow and no console/page errors. +- Live browser validation against `http://192.0.2.10:1202` passed: Data auto-selected `demo_predicted_buildings.geojson`, Map rendered `2 features`, Exports showed the same selected dataset, AI Labs showed no-raster guidance for detection and segmentation, desktop/mobile had no horizontal overflow and no console/page errors. Open: - None for this pass. @@ -6715,11 +6754,11 @@ Tested: - Tower deploy from commit `aab51ed` completed; all-in-one container published on `0.0.0.0:1202->80/tcp`. - Deploy-time live migration smoke passed after the database became ready on attempt 3; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1`, required runtime schema objects were present and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- Live smoke passed: `bash scripts/verify_demo_raster_workflow.sh http://192.168.10.150:1202`. -- Live smoke passed: `bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202`. -- Live smoke passed: `bash scripts/verify_workbench_interactions.sh http://192.168.10.150:1202`. -- Live smoke passed: `bash scripts/verify_browser_runtime.sh http://192.168.10.150:1202`. -- Live browser-click validation with Codex Playwright plus installed Chrome passed against `http://192.168.10.150:1202`: the smoke seeded the demo workflow, generated a raster tile manifest, selected the raster in Data, opened the Dataset inspector tab, clicked `Use in Detection Lab`, selected `yolo-configured`, verified Detection Lab dataset and manifest values, clicked `Use in Segmentation Lab`, verified Segmentation Lab dataset and manifest values, and observed no console/page errors. +- Live smoke passed: `bash scripts/verify_demo_raster_workflow.sh http://192.0.2.10:1202`. +- Live smoke passed: `bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202`. +- Live smoke passed: `bash scripts/verify_workbench_interactions.sh http://192.0.2.10:1202`. +- Live smoke passed: `bash scripts/verify_browser_runtime.sh http://192.0.2.10:1202`. +- Live browser-click validation with Codex Playwright plus installed Chrome passed against `http://192.0.2.10:1202`: the smoke seeded the demo workflow, generated a raster tile manifest, selected the raster in Data, opened the Dataset inspector tab, clicked `Use in Detection Lab`, selected `yolo-configured`, verified Detection Lab dataset and manifest values, clicked `Use in Segmentation Lab`, verified Segmentation Lab dataset and manifest values, and observed no console/page errors. Open: - None for this pass. @@ -6758,11 +6797,11 @@ Tested: - Tower deploy from commit `4367400` then completed; all-in-one container published on `0.0.0.0:1202->80/tcp`. - Deploy-time live migration smoke passed after the database became ready on attempt 2; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1`, required runtime schema objects were present and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- Live smoke passed: `bash scripts/verify_demo_raster_workflow.sh http://192.168.10.150:1202`. -- Live smoke passed: `bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202`. -- Live smoke passed: `bash scripts/verify_workbench_interactions.sh http://192.168.10.150:1202`. -- Live smoke passed: `bash scripts/verify_browser_runtime.sh http://192.168.10.150:1202`. -- Internal Codex browser validation passed against `http://192.168.10.150:1202`: Data workspace selected the raster fixture, Dataset inspector handoff clicked `Use in Detection Lab`, Detection Lab auto-selected `yolo-configured`, the raster dataset and tile manifest matched the generated manifest, the manifest input was visible, and no console/page errors were reported. +- Live smoke passed: `bash scripts/verify_demo_raster_workflow.sh http://192.0.2.10:1202`. +- Live smoke passed: `bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202`. +- Live smoke passed: `bash scripts/verify_workbench_interactions.sh http://192.0.2.10:1202`. +- Live smoke passed: `bash scripts/verify_browser_runtime.sh http://192.0.2.10:1202`. +- Internal Codex browser validation passed against `http://192.0.2.10:1202`: Data workspace selected the raster fixture, Dataset inspector handoff clicked `Use in Detection Lab`, Detection Lab auto-selected `yolo-configured`, the raster dataset and tile manifest matched the generated manifest, the manifest input was visible, and no console/page errors were reported. Open: - None for this pass. @@ -6797,11 +6836,11 @@ Tested: - Tower deploy from commit `98fff63` completed; all-in-one container published on `0.0.0.0:1202->80/tcp`. - Deploy-time live migration smoke passed after the database became ready on attempt 3; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1`, required runtime schema objects were present and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- Live smoke passed: `bash scripts/verify_demo_raster_workflow.sh http://192.168.10.150:1202`. -- Live smoke passed: `bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202`. -- Live smoke passed: `bash scripts/verify_workbench_interactions.sh http://192.168.10.150:1202`. -- Live smoke passed: `bash scripts/verify_browser_runtime.sh http://192.168.10.150:1202`. -- Internal Codex browser validation passed against `http://192.168.10.150:1202`: AI Labs rendered Detection and Segmentation run-readiness panels; Detection stayed blocked when `Configured YOLO detector` had no local YOLO configuration but marked dataset and tile manifest as provided; Segmentation became ready with the explicit fixture segmenter and manifest; desktop and mobile viewports had no horizontal overflow and no console warnings/errors. +- Live smoke passed: `bash scripts/verify_demo_raster_workflow.sh http://192.0.2.10:1202`. +- Live smoke passed: `bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202`. +- Live smoke passed: `bash scripts/verify_workbench_interactions.sh http://192.0.2.10:1202`. +- Live smoke passed: `bash scripts/verify_browser_runtime.sh http://192.0.2.10:1202`. +- Internal Codex browser validation passed against `http://192.0.2.10:1202`: AI Labs rendered Detection and Segmentation run-readiness panels; Detection stayed blocked when `Configured YOLO detector` had no local YOLO configuration but marked dataset and tile manifest as provided; Segmentation became ready with the explicit fixture segmenter and manifest; desktop and mobile viewports had no horizontal overflow and no console warnings/errors. Open: - None for this pass. @@ -6882,7 +6921,7 @@ Operational note: - Tower root SSH works with `widefrog_unraid_deploy` on the default SSH port `22`. - Gitea SSH works separately on port `222` through the `gitea-widefrog` host alias and `widefrog_gitea` key. - Do not test Unraid/root deploy access against port `222`; that port belongs to Gitea and correctly rejects `root`. -- Live HTTP API verification on `http://192.168.10.150:1202` remained reachable. +- Live HTTP API verification on `http://192.0.2.10:1202` remained reachable. Open: - Add an operator-facing model selection/activation flow or documented command that can promote a chosen local model deliberately, with visible SHA256 and threshold guidance. @@ -7048,11 +7087,11 @@ Tested: - Tower deploy from commit `0bc3b2f` completed; all-in-one container published on `0.0.0.0:1202->80/tcp`. - Deploy-time live migration smoke passed after the database became ready on attempt 2; PostGIS reported `3.6 USE_GEOS=1 USE_PROJ=1 USE_STATS=1`, required runtime schema objects were present and Alembic head was `202606120900`. - Deploy-time browser runtime verification passed for frontend, API proxy and icon. -- Live smoke passed: `bash scripts/verify_demo_raster_workflow.sh http://192.168.10.150:1202`. -- Live smoke passed: `bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202`. -- Live smoke passed: `bash scripts/verify_workbench_interactions.sh http://192.168.10.150:1202`. -- Live smoke passed: `bash scripts/verify_browser_runtime.sh http://192.168.10.150:1202`. -- Internal Codex browser validation passed against `http://192.168.10.150:1202`: AI Labs opened cleanly; run action guardrails rendered; Detection and Segmentation run buttons were disabled without a raster dataset; selecting explicit fixture models kept both run buttons disabled with `Fixture model is explicit test/demo-only` and `Fixture segmenter is explicit test/demo-only`; desktop and mobile viewports had no horizontal overflow and no console warnings/errors. +- Live smoke passed: `bash scripts/verify_demo_raster_workflow.sh http://192.0.2.10:1202`. +- Live smoke passed: `bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202`. +- Live smoke passed: `bash scripts/verify_workbench_interactions.sh http://192.0.2.10:1202`. +- Live smoke passed: `bash scripts/verify_browser_runtime.sh http://192.0.2.10:1202`. +- Internal Codex browser validation passed against `http://192.0.2.10:1202`: AI Labs opened cleanly; run action guardrails rendered; Detection and Segmentation run buttons were disabled without a raster dataset; selecting explicit fixture models kept both run buttons disabled with `Fixture model is explicit test/demo-only` and `Fixture segmenter is explicit test/demo-only`; desktop and mobile viewports had no horizontal overflow and no console warnings/errors. Open: - None for this pass. @@ -7145,7 +7184,7 @@ Open: - repeated background negative share 0.0 - Tower all-in-one rebuild from commit `f949347` with `GEOINTEL_INSTALL_AI=true`: - live migration smoke passed. - - browser runtime verification passed on `http://192.168.10.150:1202`. + - browser runtime verification passed on `http://192.0.2.10:1202`. - `/app/scripts/prepare_operator_real_data_samples.py`, `/app/scripts/export_operator_yolo_tile_dataset.py` and `/app/scripts/audit_operator_yolo_dataset_quality.py` are present in the rebuilt container. - YOLO preflight with an existing raster tile manifest returned `status: ready`, `dependencies_available: true`, `model_file_exists: true`, `tile_paths_exist: true`, `will_download_models: false` and `will_run_inference: false`. @@ -7177,7 +7216,7 @@ Open: - `python -m py_compile scripts\prepare_operator_real_data_samples.py` - `bash scripts/run_readiness_check.sh` - Local live GRB paging smoke with `page_limit=2` and `max_features=5` fetched 3 source pages, returned 5 features and correctly marked `reference_truncated=true`. -- Tower deploy from commit `a63d4ea` passed live migration smoke and browser runtime verification on `http://192.168.10.150:1202`. +- Tower deploy from commit `a63d4ea` passed live migration smoke and browser runtime verification on `http://192.0.2.10:1202`. - Tower one-sample Geel AOI1024 paging smoke passed with `/opt/geointel/venv/bin/python` and produced 2,268 GRB reference features instead of the old 1,000-feature cap. - Tower full AOI1024 operator sample regeneration passed: - Geel: 2,268 features, 3 GRB pages, not truncated. @@ -7231,7 +7270,7 @@ Open: - model asset id: `geointel-building-yolov8s-aoi1024visible025e50-pt` - final Ultralytics validation: precision approximately `0.275`, recall `0.331`, mAP50 `0.188`, mAP50-95 `0.0716` - Tower live runtime validation after deploy: - - browser/runtime verification passed on `http://192.168.10.150:1202` + - browser/runtime verification passed on `http://192.0.2.10:1202` - the previous Geel 1024px upload `413` no longer occurs - the previous Geel low-threshold persisted YOLO/QA `504` no longer occurs - Geel `threshold=0.05` completed with 2,612 detections, 5,091 raw candidates, 2,479 suppressed duplicates, precision `0.06316998468606431`, recall `0.165` and F1 `0.09136212624584718` @@ -7493,7 +7532,7 @@ Open: ## Next recommended pass -- Rebuild/redeploy the runtime, regenerate the operator manifest if needed, then run `scripts/run_background_corpus_split_matrix.sh` against `http://192.168.10.150:1202`. +- Rebuild/redeploy the runtime, regenerate the operator manifest if needed, then run `scripts/run_background_corpus_split_matrix.sh` against `http://192.0.2.10:1202`. - Use the emitted split report to decide whether to retrain, recalibrate thresholds or keep the AOI1024 candidate operator-only. # Sprint 158 - Split-aware promotion report @@ -7562,13 +7601,13 @@ Open: ## Known limitations - This pass adds operator orchestration only. It does not run live inference locally, retrain YOLO, activate a model default, change backend API contracts, change migrations, fetch providers, fetch weights or create fake detections. -- `http://192.168.10.150:1202` is reachable from this workstation, but `ssh -p 222 root@192.168.10.150` returned `Permission denied (publickey)`. Port `222` appears to be the Gitea SSH endpoint rather than an Unraid shell endpoint, so Docker rebuild/restart still needs the existing Unraid deployment path or a separate shell-access route. +- `http://192.0.2.10:1202` is reachable from this workstation, but `ssh -p 222 root@192.0.2.10` returned `Permission denied (publickey)`. Port `222` appears to be the Gitea SSH endpoint rather than an Unraid shell endpoint, so Docker rebuild/restart still needs the existing Unraid deployment path or a separate shell-access route. ## Next recommended pass - Redeploy/pull commit on Tower through the existing Gitea/Unraid flow. - Run: - - `PROMOTION_POSITIVE_PORTFOLIO_PATH=... bash scripts/run_split_background_promotion_workflow.sh http://192.168.10.150:1202` + - `PROMOTION_POSITIVE_PORTFOLIO_PATH=... bash scripts/run_split_background_promotion_workflow.sh http://192.0.2.10:1202` - Review the generated split-aware promotion report before any retraining, recalibration or default-model decision. # Sprint 160 - Split-background promotion preflight @@ -7590,7 +7629,7 @@ Open: - Ran `python -m pytest tests/test_sprint159_split_promotion_workflow.py -q`: 3 passed. - Ran `bash -n scripts/run_split_background_promotion_workflow.sh`. - Ran `python -m pytest tests/test_sprint159_split_promotion_workflow.py tests/test_sprint158_promotion_report_split_background.py -q`: 4 passed. -- Ran `curl.exe -fsS http://192.168.10.150:1202/api/v1/projects`: runtime API proxy returned a canonical `data` envelope. +- Ran `curl.exe -fsS http://192.0.2.10:1202/api/v1/projects`: runtime API proxy returned a canonical `data` envelope. - Ran `python -m compileall backend/app`. - Ran `python -m pytest` in `backend`: 447 passed, 17 existing Pydantic namespace warnings. - Ran `cd frontend && npm run typecheck`. @@ -7608,7 +7647,7 @@ Open: ## Next recommended pass - Redeploy/pull on Tower, then run: - - `PROMOTION_POSITIVE_PORTFOLIO_PATH=... OPERATOR_SAMPLE_MANIFEST_PATH=... bash scripts/run_split_background_promotion_workflow.sh --preflight-only http://192.168.10.150:1202` + - `PROMOTION_POSITIVE_PORTFOLIO_PATH=... OPERATOR_SAMPLE_MANIFEST_PATH=... bash scripts/run_split_background_promotion_workflow.sh --preflight-only http://192.0.2.10:1202` - If preflight passes, rerun without `--preflight-only` to generate the split summary and split-aware promotion report. # Sprint 161 - Widescreen workbench support @@ -7638,12 +7677,12 @@ Open: ## Known limitations - Local `docker compose config` could not be run on this Windows workstation because the Docker CLI is not installed or not on `PATH`. -- The live Tower/Unraid runtime at `http://192.168.10.150:1202` will show the widescreen changes only after redeploying this commit. +- The live Tower/Unraid runtime at `http://192.0.2.10:1202` will show the widescreen changes only after redeploying this commit. - The local preview showed an expected API error because it served the built frontend without the Docker backend proxy; the layout and MapLibre basemap rendered correctly. ## Next recommended pass -- Redeploy/pull this commit on Tower/Unraid and visually recheck `http://192.168.10.150:1202` on the actual widescreen monitor. +- Redeploy/pull this commit on Tower/Unraid and visually recheck `http://192.0.2.10:1202` on the actual widescreen monitor. - Continue with the split-background promotion preflight/matrix flow once the runtime has been rebuilt. # Sprint 161 - Tower redeploy and live widescreen runtime verification @@ -7657,7 +7696,7 @@ Open: ## What was tested -- Verified Tower SSH access through `root@192.168.10.150` with the `widefrog_unraid_deploy` key. +- Verified Tower SSH access through `root@192.0.2.10` with the `widefrog_unraid_deploy` key. - Verified the remote checkout reset to `07ea8db`. - Ran the Tower deploy script with AI dependencies enabled. - Deploy build produced frontend asset `assets/index-CxHabIo7.css`; the live CSS contains the Sprint 161 wide/ultrawide layout rules including `15rem minmax(0,1fr) 26rem` and `min-height:42rem`. @@ -7667,8 +7706,8 @@ Open: - database collation ok - required runtime schema objects ok - Alembic head `202606120900` -- Browser runtime smoke passed against `http://192.168.10.150:1202`. -- GIS runtime smoke passed against `http://192.168.10.150:1202`. +- Browser runtime smoke passed against `http://192.0.2.10:1202`. +- GIS runtime smoke passed against `http://192.0.2.10:1202`. - Health endpoint returned `status=ok`, `database=ok`. - YOLO preflight returned: - `dependencies_available=true` @@ -7685,7 +7724,7 @@ Open: ## Next recommended pass -- Manually refresh the already-open `http://192.168.10.150:1202` browser tab on the actual widescreen monitor to observe the new layout. +- Manually refresh the already-open `http://192.0.2.10:1202` browser tab on the actual widescreen monitor to observe the new layout. - Continue with the split-background promotion preflight/matrix workflow now that Tower is rebuilt with the latest frontend and AI runtime. # Sprint 162 - Split-background promotion runtime pass @@ -7711,7 +7750,7 @@ Open: ## Tower runtime evidence - Pushed commit `a499c5f` and fast-forwarded the Tower checkout. -- Ran split-background preflight against `http://192.168.10.150:1202` with: +- Ran split-background preflight against `http://192.0.2.10:1202` with: - `PROMOTION_POSITIVE_PORTFOLIO_PATH=artifacts/detection-quality-matrix/multi-sample/aoi1024bg512r3e50-full/multi_sample_quality_summary.json` - `OPERATOR_SAMPLE_MANIFEST_PATH=storage/operator-data/operator-samples-1024/operator_samples_manifest.json` - result: passed. @@ -7799,11 +7838,11 @@ Open: ## What changed - No product code, API contract, migration, model artifact, fake-data path or provider-fetching behavior changed. -- Ran the deployed all-in-one Tower runtime at `http://192.168.10.150:1202` through a real raster/reference detection and QA workflow using existing operator data and the local promoted YOLO model asset. +- Ran the deployed all-in-one Tower runtime at `http://192.0.2.10:1202` through a real raster/reference detection and QA workflow using existing operator data and the local promoted YOLO model asset. ## Tower runtime evidence -- Runtime URL: `http://192.168.10.150:1202` +- Runtime URL: `http://192.0.2.10:1202` - Raster input: `/mnt/user/appdata/geointel/storage/operator-data/operator-samples-1024/geel_orthophoto_wms_1024.tif` - Reference input: `/mnt/user/appdata/geointel/storage/operator-data/operator-samples-1024/geel_grb_gbg_buildings.geojson` - Model asset: `geointel-building-yolov8s-aoi1024bg512r3e50-pt` @@ -7866,7 +7905,7 @@ Open: ## Tower runtime evidence -- Pushed commit `b3bd34c` and redeployed the all-in-one Tower runtime at `http://192.168.10.150:1202`. +- Pushed commit `b3bd34c` and redeployed the all-in-one Tower runtime at `http://192.0.2.10:1202`. - Deploy validation passed: - live migration smoke passed; - browser runtime verification passed; @@ -7974,7 +8013,7 @@ Open: ## Tower runtime evidence -- Pushed commit `7ccabf5` and redeployed the all-in-one Tower runtime at `http://192.168.10.150:1202`. +- Pushed commit `7ccabf5` and redeployed the all-in-one Tower runtime at `http://192.0.2.10:1202`. - Deploy validation passed: - live migration smoke passed; - browser runtime verification passed; @@ -8033,7 +8072,7 @@ Open: ## Tower runtime evidence -- Pushed commits `fbccf83` and `5688fee`, then redeployed the all-in-one Tower runtime at `http://192.168.10.150:1202`. +- Pushed commits `fbccf83` and `5688fee`, then redeployed the all-in-one Tower runtime at `http://192.0.2.10:1202`. - Docker storage had filled during the first build attempt. Cleaned Docker build cache and dangling images only; application volumes and appdata were not pruned. Docker reclaimed `98.38GB`. - Deploy validation for commit `5688fee` passed: - live migration smoke passed; @@ -8097,7 +8136,7 @@ Open: ## Tower runtime evidence -- Pushed commit `a159370` and redeployed the all-in-one Tower runtime at `http://192.168.10.150:1202`. +- Pushed commit `a159370` and redeployed the all-in-one Tower runtime at `http://192.0.2.10:1202`. - Deploy validation passed: - live migration smoke passed; - browser runtime verification passed; @@ -8161,7 +8200,7 @@ Open: ## Tower runtime evidence -- Pushed `0f49c98` and redeployed the all-in-one runtime at `http://192.168.10.150:1202`; live migration and browser proxy verification passed. +- Pushed `0f49c98` and redeployed the all-in-one runtime at `http://192.0.2.10:1202`; live migration and browser proxy verification passed. - Refreshed `/app/storage/operator-data/operator-samples-1024/operator_samples_manifest.json` to schema version 2 with 20 sources. - Newly fetched real GRB reference counts: Olen 1,952, Lille 1,839, Oud-Turnhout 2,691 and Kasterlee 1,831; all are `recommended_split=train`. - Exported `/app/storage/operator-data/yolo-building-aoi1024-expanded-minpx4vis035`: @@ -8232,7 +8271,7 @@ Open: ## Tower deployment verification -- Pushed commit `1c16313` and rebuilt the all-in-one runtime at `http://192.168.10.150:1202`. +- Pushed commit `1c16313` and rebuilt the all-in-one runtime at `http://192.0.2.10:1202`. - The opt-in AI image installed `torch 2.13.0+cpu` and `torchvision 0.28.0+cpu` from the official CPU wheel index; runtime CUDA availability is `false`. Ultralytics reports version `8.4.93`. - The live model catalog exposes 23 local files and marks only `geointel-building-yolov8s-aoi1024expandedminpx4vis035e50-pt` active with the expected SHA256. - Explicit `--check-model-load` preflight passed against an existing nine-tile manifest: dependencies, model load, manifest structure, tile paths and tile limit were all valid; no inference or download ran. @@ -8510,7 +8549,7 @@ Open: - Tower `docker compose -f docker-compose.unraid.yml config`, live PostGIS migration smoke, required schema/index checks and Alembic head `202606120900` passed. - The definitive image contains the false-negative renderer under `/app/scripts`; persisted review artifacts remained available after both container replacements. - Precomputing source-tile footprints in EPSG:4326 reduced the deployed 12-card Donk/Postel smoke from minutes to `2.06 s` while preserving `638` evidence records, `597` reviewable records and `41` explicit outside-coverage exclusions. -- Browser verification on `http://192.168.10.150:1202` selected the complete Mol Postel workspace and showed ready project/AOI/dataset/QA/export state. +- Browser verification on `http://192.0.2.10:1202` selected the complete Mol Postel workspace and showed ready project/AOI/dataset/QA/export state. - The Map workspace rendered one `1033x542` MapLibre canvas, the OSM road basemap, AOI and `95` persisted detections with no browser warnings/errors, no visible dialog and no horizontal document overflow at a `1280 px` viewport. - No API contract, migration, QualityCheck/Metric row, Detection row, model asset, active-model configuration or inference result changed in this pass. @@ -8684,7 +8723,7 @@ Open: ## Runtime evidence - Deployed commit `1ba479b` to the all-in-one Tower runtime at - `http://192.168.10.150:1202`. The deployment rebuilt the updated + `http://192.0.2.10:1202`. The deployment rebuilt the updated `postgres:16-bookworm` GIS runtime and installed the configured CPU AI image. - Live migration smoke passed against PostGIS `3.6` with required runtime schema objects, geometry indexes and the single Alembic head @@ -8772,7 +8811,7 @@ Open: ## Tower and live Mol evidence - Pushed commit `948e50b` and rebuilt the all-in-one runtime at - `http://192.168.10.150:1202`. PostGIS `3.6`, required schema/indexes, + `http://192.0.2.10:1202`. PostGIS `3.6`, required schema/indexes, database collation, Alembic head `202606120900`, frontend proxy, API proxy and icon checks passed. - Reused persisted analysis run `97c204cc-bc75-4139-aab5-25397dd0d87e`, @@ -11470,7 +11509,7 @@ Live release evidence: - the container became healthy, the live migration smoke passed against PostGIS 3.6 with Alembic head `202607160001`, and the frontend proxy returned the public session envelope while rejecting the protected projects endpoint; -- a credentialed live journey on `http://192.168.10.150:1202` verified the +- a credentialed live journey on `http://192.0.2.10:1202` verified the complete boundary: signed out and blocked, successful login, authenticated project API access, successful logout, then blocked again; - Tower stores the operator credential only as a quoted PBKDF2-SHA256 hash plus @@ -11849,7 +11888,7 @@ Deployment evidence: - The runtime exposes the server NVIDIA GeForce RTX 4080 SUPER with 16,376 MiB memory and driver `595.71.05` inside the GeoIntel container. - Repeated the browser-rendered landing, guest-session, map and quality checks - against `http://192.168.10.150:1202`; the inspected live flow produced no + against `http://192.0.2.10:1202`; the inspected live flow produced no browser-console errors. ## 2026-07-28 - Interactive presentation and portfolio pass @@ -11917,7 +11956,7 @@ Deployment evidence: storage checks. The container exposes the NVIDIA GeForce RTX 4080 SUPER with 16,376 MiB and driver `595.71.05`. - Repeated the live landing, guest bootstrap, map navigation and quality - navigation against `http://192.168.10.150:1202`; the inspected live flow + navigation against `http://192.0.2.10:1202`; the inspected live flow produced no browser-console errors. ## 2026-07-29 - V36 assessment and objective-loop repair diff --git a/docs/ENVIRONMENT_SPEC.md b/docs/ENVIRONMENT_SPEC.md index 9a134a81..ed965692 100644 --- a/docs/ENVIRONMENT_SPEC.md +++ b/docs/ENVIRONMENT_SPEC.md @@ -98,7 +98,7 @@ bash scripts/verify_gis_runtime.sh http://localhost:1202 ``` For a LAN deployment, replace the URL with the published host address, for -example `http://192.168.10.150:1202`. +example `http://192.0.2.10:1202`. ## Local development commands diff --git a/docs/POST_RC_DATA_COVERAGE_ROADMAP_BELGIUM_NORTH_SEA.md b/docs/POST_RC_DATA_COVERAGE_ROADMAP_BELGIUM_NORTH_SEA.md index ccb5ed9f..bf18c40a 100644 --- a/docs/POST_RC_DATA_COVERAGE_ROADMAP_BELGIUM_NORTH_SEA.md +++ b/docs/POST_RC_DATA_COVERAGE_ROADMAP_BELGIUM_NORTH_SEA.md @@ -56,9 +56,9 @@ When Docker/Tower is available: ```bash docker compose config -curl --fail http://192.168.10.150:1202/health/ready +curl --fail http://192.0.2.10:1202/health/ready bash scripts/run_rc8_release_journeys.sh \ - http://192.168.10.150:1202 \ + http://192.0.2.10:1202 \ artifacts/post-rc-release-journeys \ artifacts/post-rc-golden-areas.json ``` diff --git a/docs/RC_ROADMAP_BELGIUM_NORTH_SEA.md b/docs/RC_ROADMAP_BELGIUM_NORTH_SEA.md index f5112c56..b1bb7ae1 100644 --- a/docs/RC_ROADMAP_BELGIUM_NORTH_SEA.md +++ b/docs/RC_ROADMAP_BELGIUM_NORTH_SEA.md @@ -113,9 +113,9 @@ When Tower is reachable: Then verify: ```bash -curl -fsS http://192.168.10.150:1202/health/live -curl -fsS http://192.168.10.150:1202/health/ready -curl -fsS http://192.168.10.150:1202/api/v1/system/capabilities +curl -fsS http://192.0.2.10:1202/health/live +curl -fsS http://192.0.2.10:1202/health/ready +curl -fsS http://192.0.2.10:1202/api/v1/system/capabilities ``` The in-app browser acceptance must cover desktop, widescreen and a narrow @@ -464,7 +464,7 @@ contains no unexpected browser-console or failed-request events. ```bash npm --prefix frontend run test:unit bash scripts/run_rc8_release_journeys.sh \ - http://192.168.10.150:1202 \ + http://192.0.2.10:1202 \ artifacts/rc8-release-journeys \ artifacts/rc8-golden-areas.json ``` diff --git a/docs/TODO.md b/docs/TODO.md index 122905ae..330becc1 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -1,5 +1,20 @@ # GeoIntel TODO +## Publieke repository (2026-08-31) + +- [x] Integreer de actuele release-hygiĆ«netak vanaf `origin/main` zonder de + private Tower-handoff of ongerelateerde DockDeck/Stitch-geschiedenis. +- [x] Verwijder lokale databases, Codex-input, browserlogs en lokale MCP-config + uit de getrackte publicatieboom en borg dit in de releasegate. +- [x] Maak de verpakte authenticatie-, HTTPS-, gast- en checkpointdefaults + fail-closed. +- [ ] Kies en voeg een rootlicentie toe. +- [ ] Kies tussen een gecontroleerde history rewrite/force-push van alle + publieke refs en een nieuwe schone publieke repository; voer dit pas uit na + expliciete eigenaarstoestemming. +- [ ] Verwijder na die keuze de volledig gemergde of aantoonbaar achterhaalde + remote branches zodat geen private historische blobs publiek bereikbaar zijn. + ## Accuracy-remediatie (2026-08-30) - [x] Herhaal de lokale Phase-3-scan deterministisch: scan diff --git a/docs/UX_PERFORMANCE_BUDGETS.md b/docs/UX_PERFORMANCE_BUDGETS.md index dca9074b..10833eac 100644 --- a/docs/UX_PERFORMANCE_BUDGETS.md +++ b/docs/UX_PERFORMANCE_BUDGETS.md @@ -39,7 +39,7 @@ its budget must display the measured duration and budget warning. ```bash npm --prefix frontend run test:unit bash scripts/run_rc9_ux_audit.sh \ - http://192.168.10.150:1202 \ + http://192.0.2.10:1202 \ artifacts/rc9-ux-audit ``` diff --git a/docs/UX_PREMIUM_ATLAS_PASS_2026-07-26.md b/docs/UX_PREMIUM_ATLAS_PASS_2026-07-26.md index 1c6c8ca4..7579a628 100644 --- a/docs/UX_PREMIUM_ATLAS_PASS_2026-07-26.md +++ b/docs/UX_PREMIUM_ATLAS_PASS_2026-07-26.md @@ -36,4 +36,4 @@ The new layer lives in `frontend/src/styles/atlas-premium-v2.css` and loads afte Commit `d5ea270` accidentally overlaid DockDeck root/runtime files onto GeoIntel. This pass restores every path touched by that overlay to the last clean GeoIntel revision (`9db6cca`) while retaining the intended GeoIntel frontend work. The authoritative remote remains `git@gitea.itworx.tech:Jens/geointel.git`. -The Tower deployment key default is now `$HOME/.ssh/itworx_unraid_deploy`, the repository default is `Jens/geointel`, and PowerShell-to-Bash script transfer normalizes line endings to LF. +The Tower deployment key default is now `$HOME/.ssh/geointel_unraid_deploy`, the repository default is `Jens/geointel`, and PowerShell-to-Bash script transfer normalizes line endings to LF. diff --git a/docs/superpowers/plans/2026-07-06-model-reference-catalog.md b/docs/superpowers/plans/2026-07-06-model-reference-catalog.md index 645386ad..d129bb07 100644 --- a/docs/superpowers/plans/2026-07-06-model-reference-catalog.md +++ b/docs/superpowers/plans/2026-07-06-model-reference-catalog.md @@ -403,8 +403,8 @@ bash ../scripts/live_migration_smoke.sh Call: ```bash -curl http://192.168.10.150:1202/api/v1/detection/model-assets -curl "http://192.168.10.150:1202/api/v1/detection/yolo/preflight?model_asset_id=&tile_manifest_path=" +curl http://192.0.2.10:1202/api/v1/detection/model-assets +curl "http://192.0.2.10:1202/api/v1/detection/yolo/preflight?model_asset_id=&tile_manifest_path=" ``` Expected: canonical envelopes and no model downloads. diff --git a/frontend/README.md b/frontend/README.md index 3236de6e..92edb8da 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -814,7 +814,7 @@ journeys from the repository root: ```bash npx playwright install chromium bash scripts/run_rc8_release_journeys.sh \ - http://192.168.10.150:1202 \ + http://192.0.2.10:1202 \ artifacts/rc8-release-journeys \ artifacts/rc8-golden-areas.json ``` @@ -830,7 +830,7 @@ audit at the release viewports: ```bash bash scripts/run_rc9_ux_audit.sh \ - http://192.168.10.150:1202 \ + http://192.0.2.10:1202 \ artifacts/rc9-ux-audit ``` diff --git a/scripts/README.md b/scripts/README.md index 0d5a194a..291a0e2a 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -142,14 +142,14 @@ exists without docs or when docs claim an endpoint that is not implemented. Verify the browser-facing Docker/LAN runtime: ```bash -bash scripts/verify_browser_runtime.sh http://192.168.10.150:1202 -bash scripts/verify_gis_runtime.sh http://192.168.10.150:1202 +bash scripts/verify_browser_runtime.sh http://192.0.2.10:1202 +bash scripts/verify_gis_runtime.sh http://192.0.2.10:1202 ``` Verify the explicit demo workflow plus export artifact path: ```bash -bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202 +bash scripts/verify_demo_export_workflow.sh http://192.0.2.10:1202 ``` The demo/export smoke is intentionally mutating and idempotent: it seeds the @@ -164,7 +164,7 @@ counts cannot drift silently. Verify the explicit demo raster workflow: ```bash -bash scripts/verify_demo_raster_workflow.sh http://192.168.10.150:1202 +bash scripts/verify_demo_raster_workflow.sh http://192.0.2.10:1202 ``` The raster smoke is intentionally mutating and idempotent enough for local @@ -177,7 +177,7 @@ Verify that the browser-facing workbench can populate the default demo start state through the frontend proxy: ```bash -bash scripts/verify_workbench_default_state.sh http://192.168.10.150:1202 +bash scripts/verify_workbench_default_state.sh http://192.0.2.10:1202 ``` This smoke is dependency-light and intentionally idempotent: it seeds the @@ -190,7 +190,7 @@ screenshot pass when checking visual layout or overflow. Verify the backing state for the core workbench interactions: ```bash -bash scripts/verify_workbench_interactions.sh http://192.168.10.150:1202 +bash scripts/verify_workbench_interactions.sh http://192.0.2.10:1202 ``` This smoke validates the state behind project switching, AOI/map selection, @@ -202,7 +202,7 @@ Verify the browser click handoff from raster tiling into Detection and Segmentation Lab: ```bash -bash scripts/verify_ai_handoff_interactions.sh http://192.168.10.150:1202 +bash scripts/verify_ai_handoff_interactions.sh http://192.0.2.10:1202 ``` The AI handoff smoke seeds the explicit offline demo workflow, generates a @@ -216,8 +216,8 @@ default. The main readiness gate checks this script's syntax only. Capture visual regression handoff screenshots for the workbench: ```bash -bash scripts/capture_workbench_screenshots.sh http://192.168.10.150:1202 -CAPTURE_MOBILE=0 bash scripts/capture_workbench_screenshots.sh http://192.168.10.150:1202 /tmp/geointel-screens +bash scripts/capture_workbench_screenshots.sh http://192.0.2.10:1202 +CAPTURE_MOBILE=0 bash scripts/capture_workbench_screenshots.sh http://192.0.2.10:1202 /tmp/geointel-screens ``` The capture script seeds the explicit offline demo workflow, opens each main @@ -262,7 +262,7 @@ weights or run prediction. Verify the full configured-YOLO model asset workflow against a running runtime: ```bash -bash scripts/verify_model_asset_detection_workflow.sh http://192.168.10.150:1202 +bash scripts/verify_model_asset_detection_workflow.sh http://192.0.2.10:1202 ``` This smoke is intentionally mutating and requires a real AI-enabled runtime with @@ -280,7 +280,7 @@ Verify the full operator-provided raster/reference detection and QA path: ```bash REAL_RASTER_PATH=/mnt/user/appdata/geointel/data/orthophoto.tif \ REAL_REFERENCE_VECTOR_PATH=/mnt/user/appdata/geointel/data/reference-buildings.geojson \ -bash scripts/verify_real_data_detection_qa_workflow.sh http://192.168.10.150:1202 +bash scripts/verify_real_data_detection_qa_workflow.sh http://192.0.2.10:1202 ``` The current Tower operator sample is available at: @@ -288,7 +288,7 @@ The current Tower operator sample is available at: ```bash REAL_RASTER_PATH=/mnt/user/appdata/geointel/storage/operator-data/geel_orthophoto_wms_512.tif \ REAL_REFERENCE_VECTOR_PATH=/mnt/user/appdata/geointel/storage/operator-data/geel_grb_gbg_buildings.geojson \ -bash scripts/verify_real_data_detection_qa_workflow.sh http://192.168.10.150:1202 +bash scripts/verify_real_data_detection_qa_workflow.sh http://192.0.2.10:1202 ``` Reuse the definitive Mol municipality project for a bounded Mol-Centrum @@ -303,7 +303,7 @@ REAL_AREA_BBOX='5.113116,51.189653,5.120284,51.194147' \ REAL_DATASET_NAME_PREFIX='mol_center_ai_500m' \ REAL_RASTER_PATH=/mnt/user/appdata/geointel/storage/operator-data/mol_orthophoto_wms_512.tif \ REAL_REFERENCE_VECTOR_PATH=/mnt/user/appdata/geointel/storage/operator-data/mol_grb_gbg_buildings.geojson \ -bash scripts/verify_real_data_detection_qa_workflow.sh http://192.168.10.150:1202 +bash scripts/verify_real_data_detection_qa_workflow.sh http://192.0.2.10:1202 ``` `REAL_PROJECT_ID` is validated through the canonical project endpoint; it does @@ -447,7 +447,7 @@ Run a confidence-threshold calibration sweep against the same real-data path: REAL_RASTER_PATH=/mnt/user/appdata/geointel/storage/operator-data/geel_orthophoto_wms_512.tif \ REAL_REFERENCE_VECTOR_PATH=/mnt/user/appdata/geointel/storage/operator-data/geel_grb_gbg_buildings.geojson \ CALIBRATION_THRESHOLDS="0.50 0.35 0.25 0.15" \ -bash scripts/run_detection_calibration_sweep.sh http://192.168.10.150:1202 +bash scripts/run_detection_calibration_sweep.sh http://192.0.2.10:1202 ``` The sweep reuses `verify_real_data_detection_qa_workflow.sh` once per @@ -472,7 +472,7 @@ QUALITY_MODEL_ASSET_IDS="yolov8n-building-segmentation-pt yolov8n-pt" \ QUALITY_TILE_SIZES="512 640" \ QUALITY_TILE_OVERLAPS="64" \ QUALITY_THRESHOLDS="0.50 0.15" \ -bash scripts/run_detection_quality_matrix.sh http://192.168.10.150:1202 +bash scripts/run_detection_quality_matrix.sh http://192.0.2.10:1202 ``` The quality matrix repeats the same real-data upload, tiling, configured-YOLO, @@ -495,7 +495,7 @@ QUALITY_MODEL_ASSET_IDS="yolov8n-building-segmentation-pt yolov8n-pt" \ QUALITY_TILE_SIZES="512 640" \ QUALITY_TILE_OVERLAPS="64" \ QUALITY_THRESHOLDS="0.50 0.15" \ -bash scripts/run_multi_sample_detection_quality_matrix.sh http://192.168.10.150:1202 +bash scripts/run_multi_sample_detection_quality_matrix.sh http://192.0.2.10:1202 ``` The multi-sample wrapper writes one per-sample `quality_matrix_summary.json` @@ -841,7 +841,7 @@ QUALITY_TILE_SIZES="640" \ QUALITY_TILE_OVERLAPS="64" \ QUALITY_THRESHOLDS="0.25 0.15 0.05" \ MULTI_SAMPLE_OUTPUT_DIR=artifacts/detection-quality-matrix/multi-sample/expanded160e50-live \ -bash scripts/run_multi_sample_detection_quality_matrix.sh http://192.168.10.150:1202 +bash scripts/run_multi_sample_detection_quality_matrix.sh http://192.0.2.10:1202 ``` The expanded 50-epoch candidate improved dense Geel/Mol/Turnhout/Retie scores, @@ -859,7 +859,7 @@ QUALITY_TILE_SIZES="512" \ QUALITY_TILE_OVERLAPS="64" \ QUALITY_THRESHOLDS="0.35 0.15" \ BACKGROUND_SPLIT_OUTPUT_DIR=artifacts/detection-hard-negatives/aoi1024bg512r3e50-split \ -bash scripts/run_background_corpus_split_matrix.sh http://192.168.10.150:1202 +bash scripts/run_background_corpus_split_matrix.sh http://192.0.2.10:1202 ``` The split runner executes the strict `pure_empty_negative` matrix and the @@ -880,7 +880,7 @@ QUALITY_TILE_SIZES="640" \ QUALITY_TILE_OVERLAPS="64" \ QUALITY_THRESHOLDS="0.25 0.15 0.05" \ HARD_NEGATIVE_OUTPUT_DIR=artifacts/detection-hard-negatives/expanded160e50-live \ -bash scripts/run_operator_hard_negative_detection_matrix.sh http://192.168.10.150:1202 +bash scripts/run_operator_hard_negative_detection_matrix.sh http://192.0.2.10:1202 ``` The hard-negative matrix uploads only the background raster, generates tiles, @@ -927,13 +927,13 @@ Export calibration QA evidence for visual review: ```bash CALIBRATION_SUMMARY_PATH=/mnt/user/appdata/geointel/artifacts/detection-calibration/20260707T002103Z/calibration_summary.json \ -bash scripts/export_detection_calibration_evidence.sh http://192.168.10.150:1202 +bash scripts/export_detection_calibration_evidence.sh http://192.0.2.10:1202 ``` Browser Detection Lab calibration summary exports are supported too: ```bash -bash scripts/export_detection_calibration_evidence.sh http://192.168.10.150:1202 ./detection-calibration-summary.json +bash scripts/export_detection_calibration_evidence.sh http://192.0.2.10:1202 ./detection-calibration-summary.json ``` Run the local browser-summary evidence bundle smoke without touching live @@ -953,7 +953,7 @@ Assemble multiple AOI evidence bundles into one model-review portfolio: ```bash bash scripts/assemble_detection_calibration_evidence_portfolio.sh \ - http://192.168.10.150:1202 \ + http://192.0.2.10:1202 \ ./calibration-evidence-portfolio-manifest.json ``` @@ -1256,7 +1256,7 @@ QUALITY_TILE_OVERLAPS="64" \ QUALITY_THRESHOLDS="0.35 0.15" \ BACKGROUND_SPLIT_OUTPUT_DIR=artifacts/detection-hard-negatives/aoi1024bg512r3e50-split \ PROMOTION_OUTPUT_DIR=artifacts/detection-model-promotion/aoi1024bg512r3e50-split-aware \ -bash scripts/run_split_background_promotion_workflow.sh http://192.168.10.150:1202 +bash scripts/run_split_background_promotion_workflow.sh http://192.0.2.10:1202 ``` The wrapper first calls `run_background_corpus_split_matrix.sh`, then feeds the @@ -1278,7 +1278,7 @@ background samples with references are treated as `sparse_building_context`. ```bash PROMOTION_POSITIVE_PORTFOLIO_PATH=/mnt/user/appdata/geointel/artifacts/detection-quality-matrix/multi-sample/aoi1024bg512r3e50-positive/multi_sample_quality_summary.json \ OPERATOR_SAMPLE_MANIFEST_PATH=storage/operator-data/operator_samples_manifest.json \ -bash scripts/run_split_background_promotion_workflow.sh --preflight-only http://192.168.10.150:1202 +bash scripts/run_split_background_promotion_workflow.sh --preflight-only http://192.0.2.10:1202 ``` If a legacy positive evidence portfolio records `model_asset_id` at portfolio @@ -2023,10 +2023,10 @@ DEPLOY_BOOTSTRAP=1 bash scripts/deploy_tower.sh Useful overrides: ```bash -REMOTE_HOST=root@192.168.10.150 +REMOTE_HOST=root@192.0.2.10 REMOTE_PATH=/mnt/user/appdata/geointel REMOTE_REPO=gitea-widefrog:NuklearRabbit/geointel.git -FRONTEND_URL=http://192.168.10.150:1202 +FRONTEND_URL=http://192.0.2.10:1202 ``` ## Regional BWK/Natura 2000 state 2025 @@ -2220,7 +2220,7 @@ Preview the seven release areas without mutating GeoIntel: ```bash python scripts/provision_release_golden_areas.py \ - --base-url http://192.168.10.150:1202 \ + --base-url http://192.0.2.10:1202 \ --output artifacts/rc8-golden-areas.json ``` @@ -2229,7 +2229,7 @@ journey: ```bash bash scripts/run_rc8_release_journeys.sh \ - http://192.168.10.150:1202 \ + http://192.0.2.10:1202 \ artifacts/rc8-release-journeys \ artifacts/rc8-golden-areas.json ``` @@ -2253,7 +2253,7 @@ Run the non-mutating frontend audit against a deployed runtime: ```bash bash scripts/run_rc9_ux_audit.sh \ - http://192.168.10.150:1202 \ + http://192.0.2.10:1202 \ artifacts/rc9-ux-audit ``` diff --git a/scripts/check_repository_hygiene.py b/scripts/check_repository_hygiene.py new file mode 100644 index 00000000..e61f2cd3 --- /dev/null +++ b/scripts/check_repository_hygiene.py @@ -0,0 +1,84 @@ +#!/usr/bin/env python3 +"""Fail when publication-only repository boundaries are violated.""" + +from __future__ import annotations + +import subprocess +import sys +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +BLOCKED_PATHS = {".mcp.json"} +BLOCKED_PREFIXES = (".codex-input/", ".codex-artifacts/", ".playwright-mcp/", "data/") +BLOCKED_SUFFIXES = (".db", ".db-shm", ".db-wal") +BLOCKED_CONTENT = ( + b"192.168." + b"10.150", + b"geointel." + b"itworx.tech", + b"itworx_" + b"unraid_deploy", + b"/mnt/user/appdata/" + b"dockdeck", + b"tower" + b".local", +) +LARGE_FILE_LIMIT = 20 * 1024 * 1024 +LARGE_FILE_ALLOWLIST_PREFIXES = ( + "artifacts/evidence/accuracy/", + "docs/assets/", + "frontend/public/portfolio/", + "output/pdf/", +) + + +def tracked_files() -> list[str]: + result = subprocess.run( + ["git", "ls-files", "-z"], + cwd=ROOT, + check=True, + capture_output=True, + ) + return [item for item in result.stdout.decode("utf-8").split("\0") if item] + + +def main() -> int: + violations: list[str] = [] + for relative in tracked_files(): + normalized = relative.replace("\\", "/") + if normalized in BLOCKED_PATHS or normalized.startswith(BLOCKED_PREFIXES): + violations.append( + f"{normalized}: local or cross-project state must not be tracked" + ) + continue + if normalized.endswith(BLOCKED_SUFFIXES): + violations.append( + f"{normalized}: database runtime state must not be tracked" + ) + continue + + path = ROOT / relative + if not path.is_file(): + continue + size = path.stat().st_size + if size > LARGE_FILE_LIMIT and not normalized.startswith( + LARGE_FILE_ALLOWLIST_PREFIXES + ): + violations.append( + f"{normalized}: {size} bytes exceeds the {LARGE_FILE_LIMIT}-byte tracked-file budget" + ) + content = path.read_bytes() + for marker in BLOCKED_CONTENT: + if marker in content: + violations.append( + f"{normalized}: contains private publication marker {marker.decode('ascii')}" + ) + + if violations: + print("Repository hygiene violations:", file=sys.stderr) + for violation in violations: + print(f" - {violation}", file=sys.stderr) + return 1 + + print("Repository hygiene check passed.") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/deploy_tower.ps1 b/scripts/deploy_tower.ps1 index 6c7e378f..58cc809c 100644 --- a/scripts/deploy_tower.ps1 +++ b/scripts/deploy_tower.ps1 @@ -1,10 +1,10 @@ param( - [string]$RemoteHost = "root@192.168.10.150", + [string]$RemoteHost = "root@192.0.2.10", [string]$RemotePath = "/mnt/user/appdata/geointel", [string]$RemoteBranch = "main", [string]$RemoteRepo = "gitea-widefrog:Jens/geointel.git", - [string]$SshKey = "$HOME/.ssh/itworx_unraid_deploy", - [string]$FrontendUrl = "http://192.168.10.150:1202", + [string]$SshKey = "$HOME/.ssh/geointel_unraid_deploy", + [string]$FrontendUrl = "http://192.0.2.10:1202", [string]$InstallAi = $(if ($env:GEOINTEL_INSTALL_AI) { $env:GEOINTEL_INSTALL_AI } else { "" }), [switch]$Bootstrap ) diff --git a/scripts/deploy_tower.sh b/scripts/deploy_tower.sh index 4eecc1a6..3423c38b 100644 --- a/scripts/deploy_tower.sh +++ b/scripts/deploy_tower.sh @@ -1,12 +1,12 @@ #!/usr/bin/env bash set -euo pipefail -REMOTE_HOST="${REMOTE_HOST:-root@192.168.10.150}" +REMOTE_HOST="${REMOTE_HOST:-root@192.0.2.10}" REMOTE_PATH="${REMOTE_PATH:-/mnt/user/appdata/geointel}" REMOTE_BRANCH="${REMOTE_BRANCH:-main}" REMOTE_REPO="${REMOTE_REPO:-gitea-widefrog:Jens/geointel.git}" -SSH_KEY="${SSH_KEY:-$HOME/.ssh/itworx_unraid_deploy}" -FRONTEND_URL="${FRONTEND_URL:-http://192.168.10.150:1202}" +SSH_KEY="${SSH_KEY:-$HOME/.ssh/geointel_unraid_deploy}" +FRONTEND_URL="${FRONTEND_URL:-http://192.0.2.10:1202}" BOOTSTRAP="${DEPLOY_BOOTSTRAP:-0}" DEPLOY_GEOINTEL_INSTALL_AI="${GEOINTEL_INSTALL_AI:-}" diff --git a/scripts/inspect_torch_checkpoint.py b/scripts/inspect_torch_checkpoint.py index 3f0c1c75..37eca4fc 100644 --- a/scripts/inspect_torch_checkpoint.py +++ b/scripts/inspect_torch_checkpoint.py @@ -13,7 +13,8 @@ def main() -> int: parser.add_argument("checkpoint", type=Path) args = parser.parse_args() import torch - checkpoint = torch.load(args.checkpoint, map_location="cpu", weights_only=False) + + checkpoint = torch.load(args.checkpoint, map_location="cpu", weights_only=True) payload = { key: checkpoint.get(key) for key in ("date", "version", "license", "docs", "train_args") diff --git a/scripts/run_readiness_check.sh b/scripts/run_readiness_check.sh index 77d7a24f..88396359 100644 --- a/scripts/run_readiness_check.sh +++ b/scripts/run_readiness_check.sh @@ -45,6 +45,8 @@ echo "== GeoIntel run readiness check ==" "$PYTHON_BIN" scripts/verify_python_lock.py "$PYTHON_BIN" -m py_compile scripts/verify_repository_layout.py "$PYTHON_BIN" scripts/verify_repository_layout.py +"$PYTHON_BIN" -m py_compile scripts/check_repository_hygiene.py +"$PYTHON_BIN" scripts/check_repository_hygiene.py "$PYTHON_BIN" -m py_compile scripts/verify_security_exceptions.py "$PYTHON_BIN" scripts/verify_security_exceptions.py bash -n scripts/backup_release_state.sh