Homepage 集成 Seerr 请求统计 Widget:配置、字段详解与源码解析

发布时间:2026/9/10 22:44:36

Homepage 集成 Seerr 请求统计 Widget:配置、字段详解与源码解析 Homepage 集成 Seerr 请求统计 Widget配置、字段详解与源码解析【免费下载链接】homepageA highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.项目地址: https://gitcode.com/GitHub_Trending/ho/homepageSeerr由 Jellyseerr 与 Overseerr 合并而来的媒体请求管理平台是自托管影音栈中管理想看清单的核心服务。本文以 Homepage 仓库中的 Seerr Widget 官方文档 为主体完整讲解如何在 Homepage 的services.yaml中配置该 Widget、理解六个可选统计字段的含义与默认值并深入src/widgets/seerr源码与测试剖析 API 端点、认证机制、渲染回退等底层实现帮助你一步到位把媒体请求数据呈现在个人主页上。Widget 是什么一条 YAML 与一个统计面板在 Homepage 中每个 Widget 都是一段挂在某个服务service下的 YAML 配置。Seerr Widget 负责从 Seerr 的 API 拉取请求与问题issue统计数据并以一组数字块Block的形式展示在服务条目上例如待处理请求数、已批准数、已完成数等。整个集成不需要编写任何代码只需要提供服务地址与 API Key。前置条件获取 Seerr 的 API Key文档明确指出API Key 的获取位置在 Seerr 的Settings General API Key。该 Key 是 Widget 调用 Seerr API 的唯一凭证在后续配置中填入key字段。如果你的实例尚未开启 API请先在 Seerr 管理后台确认该项存在且已生成。注意文档同时强调Jellyseerr 与 Overseerr 已合并为 Seerr。因此配置时请使用type: seerr而旧写法type: jellyseerr与type: overseerr仍作为别名继续可用详见下文类型别名一节。快速配置最小 YAML 示例在services.yaml中为对应服务条目追加如下 Widget 配置源自 seerr.mdwidget: type: seerr url: http://seerr.host.or.ip key: apikeyapikeyapikeyapikeyapikey字段说明字段必填说明type是固定为seerr也可用旧别名jellyseerr/overseerrurl是Seerr 实例的地址支持域名或 IP如http://seerr.host.or.ipkey是在 SeerrSettings General API Key中获取的密钥配置完成后刷新页面服务卡片上即可看到默认的三个统计块pending待处理、approved已批准、completed已完成。字段体系Allowed Fields 与 Default Fields文档给出了完整的字段白名单与默认值Allowed fields[pending, approved, available, completed, processing, issues]Default fields[pending, approved, completed]也就是说不写fields时默认展示前三者如需展示更多维度可通过fields显式指定例如widget: type: seerr url: http://seerr.host.or.ip key: apikeyapikeyapikeyapikeyapikey fields: - pending - approved - completed - issues各字段的业务含义字段含义pending待处理等待审核的请求数approved已批准的请求数available已可获取资源已就绪的请求数completed已完成的请求数processing正在处理中的请求数issues问题报告数以未解决 / 总数open / total形式展示一个需要留意的实现约束前端组件最多只渲染4 个统计块。在 component.jsx 中定义了MAX_ALLOWED_FIELDS 4配置时如果fields超过 4 项会被slice(0, 4)截断component.jsx。因此请根据实际关注度取舍字段优先级避免想要的字段被截掉。类型别名jellyseerr / overseerr 自动映射为 seerr文档声明旧类型名已合并为别名这一点在源码中有明确佐证在 widgets.js 的 Widget 定义注册表中jellyseerrwidgets.js与overseerrwidgets.js均直接指向seerr的配置对象而seerr本身也在 widgets.js 注册在 components.js 的前端组件映射中jellyseerrcomponents.js、overseerrcomponents.js与seerrcomponents.js三者都动态加载同一个./seerr/component。因此升级自 Jellyseerr/Overseerr 的老用户无需改动任何字段逻辑只需把type改成或继续沿用旧名即可统计行为完全一致。这也意味着如果你曾经参照过旧的 overseerr.md 文档配置迁移到 Seerr 后配置依然有效。底层实现API 端点与数据校验Widget 的请求行为由 widget.js 定义它非常精简const widget { api: {url}/api/v1/{endpoint}, proxyHandler: credentialedProxyHandler, mappings: { request/count: { endpoint: request/count, validate: [pending, approved, available], }, issue/count: { endpoint: issue/count, validate: [open, total], }, }, };从中可以读出三个关键实现事实API 模板所有请求都发往{url}/api/v1/{endpoint}即 Seerr 的 v1 API。url与key在配置中提供endpoint由组件按需传入见下文。两个可用端点request/count返回请求统计校验pending、approved、available字段issue/count返回问题统计校验open、total字段。这是组件渲染issues块的数来源。校验机制mappings 中的validate字段会配合validate-widget-data工具对返回数据做字段级校验保证渲染的是结构正确的数据而不是脏响应。认证与代理X-API-Key 如何被附加Seerr Widget 走的是credentialedProxyHandler带凭证的代理处理器实现在 credentialed.js。该处理器会根据group、service等查询参数从配置中取出 Widget 定义credentialed.js校验该类型确实支持 API 调用credentialed.js用formatApiCall把api模板与endpoint拼成真实 URL在 credentialed.js 的默认分支中为请求附加X-API-Key: key请求头——这正是 Seerr 所要求的认证方式你配置的key由此被安全地注入到服务端请求中而不是暴露在前端代码里通过httpProxy发出请求并对 4xx/5xx 状态返回结构化错误、对 200 响应执行数据校验credentialed.js。渲染逻辑与边界行为component.jsx 定义了统计块的实际渲染逻辑几个值得注意的细节issues 是独立数据通道组件始终调用request/count只有当fields包含issues时才追加调用issue/countcomponent.jsx。issues块以${open} / ${total}的格式展示未解决 / 总数component.jsx。completed → available 自动回退如果请求了completed或available但旧版 Seerr 响应中不存在completed字段组件会把completed字段映射为available继续渲染避免出现空块component.jsx。错误处理请求统计出错或启用了issues但问题接口出错时组件会以错误态渲染容器便于在页面上直观定位配置问题component.jsx。这些边界行为都有对应的单元测试覆盖见 component.test.jsx例如默认只渲染 3 个块、jellyseerr/overseerr别名保持相同默认字段、processing作为独立可选字段、启用了issues时会调用issue/count并渲染open / total、旧响应无completed时回退到available等。测试还验证了 Widget 配置对象本身符合框架规范widget.test.js。常见问题排查现象可能原因与处理统计块一直显示加载/空值检查url是否可从 Homepage 所在网络访问且未漏掉协议头如http://确认key与 SeerrSettings General API Key完全一致出现 API 错误提示查看返回错误信息401/403 多为 Key 错误或未开启 API404 多为url路径不对Seerr 的 API 前缀是/api/v1issues不显示确认fields中包含issues且位于前 4 个字段之内超出会被截断同时确认 Seerr 侧存在问题数据字段数量与预期不符单 Widget 最多渲染 4 个块请精简fields优先级如果你配置的是多个 Homepage 服务条目也请确认该 Widget 只挂在正确的 Seerr 服务下避免与其他服务如 Jellyfin、Radarr混用配置。完整的 Widget 列表可从 docs/widgets/services/index.md 进入查看Seerr 条目即指向本文对应的 seerr.md。【免费下载链接】homepageA highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.项目地址: https://gitcode.com/GitHub_Trending/ho/homepage创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/10 22:44:36

基于Qwen的SR——ODTSR

虽然比较heavey,有20B参数,几乎使用了T2I的全部框架,但是效果很好。 ODTSR 使用Qwen-Image来做ISR。o指one step,D和T指diffusion和transformer。另外ODTSR还是Controllable的,支持双语bilingual prompt,而…

2026/9/10 23:34:41

RNN系列模型在MNIST手写数字识别中的应用与优化

1. 为什么选择RNN系列模型处理MNIST?MNIST手写数字识别作为深度学习领域的"Hello World",传统解决方案多采用CNN卷积神经网络。但当我们使用RNN、LSTM和GRU这类时序模型来处理这个看似静态的图像分类问题时,背后其实蕴含着几个关键…

2026/9/10 16:39:38

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 0:00:55

目录对比去重实战:用哈希算法精准清理重复文件

我电脑里现在还有一块换了三次机的“数据墓地”硬盘,里面存着2016年以前所有旧笔记本的完整备份。平时不觉得有什么,直到前阵子想把它整理归档,发现同一个安装包、同一批照片、同一份论文草稿,在几个不同的备份目录里反复出现。更…

2026/9/10 0:00:55

Leaflet离线地图完整Demo合集:内网部署与坐标纠偏实战

简介:这是一份面向Web GIS开发者的LeafLet离线地图示例合集,帮助开发者快速掌握离线地图从搭建到交互的完整流程。压缩包共723个文件,大小14.06MB,以319个js脚本、175个html页面和29个css样式文件为主体,配合png/svg图…

2026/9/10 0:00:55

MATLAB读取Rinex 3.02观测文件:多系统GNSS数据解析实战

简介:基于MATLAB开发的Rinex3.02版观测文件(o文件)读取代码包,面向卫星定位导航方向的学习者与研究人员,用于解决新版观测文件的数据解析、历元提取与时间转换问题。压缩包共4个文件,包含两个m脚本、一个19…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码