Seerr 版本发布解读:Overseerr 与 Jellyseerr 合并为统一项目

发布时间:2026/11/14 23:43:14

Seerr 版本发布解读:Overseerr 与 Jellyseerr 合并为统一项目 Seerr 版本发布解读Overseerr 与 Jellyseerr 合并为统一项目【免费下载链接】seerrOpen-source media request and discovery manager for Jellyfin, Plex, and Emby.项目地址: https://gitcode.com/GitHub_Trending/je/seerroutput_articleSeerr 发布解读Overseerr 与 Jellyseerr 合并、TVDB 元数据与 DNS 缓存等新特性全解析本文基于 Seerr 官方发布公告gen-docs/blog/2026-02-10/seerr-release.md撰写系统解读这一里程碑版本Overseerr 与 Jellyseerr 两个团队正式合并为统一的Seerr项目并一次性带来 TVDB 元数据提供方、DNS 缓存、Webhook 动态占位符、PostgreSQL 支持、Helm Chart、ntfy 通知等一系列新特性。读完本文你将掌握 Seerr 相较旧版的核心差异、每一项新功能的配置入口与适用场景以及从 Overseerr/Jellyseerr 无缝迁移到 Seerr 的具体步骤与注意事项。一、版本背景两个项目的正式合并Seerr 是一个开源媒体请求与发现管理器支持 Jellyfin、Plex 与 Emby本次发布的重大意义在于Jellyseerr 与 Overseerr 的开发团队正式合并为单一团队 Seerr所有既有功能汇聚到一个共享代码库中。对于用户而言这意味着一个代码库同时整合了 Overseerr 的全部既有功能与 Jellyseerr 的最新特性原生支持 Jellyfin 与 Emby与 Plex 并列作为媒体服务器后端更新交付更高效项目得以持续向前演进。从仓库结构可以印证这一合并结果仓库同时包含 server/api/jellyfin.ts、server/api/plexapi.ts 等媒体服务器 API 实现以及 docs/migration-guide.mdx 中针对 Overseerr/Jellyseerr 用户的自动迁移说明。官方推荐查阅迁移指南仓库内对应文档 docs/migration-guide.mdx完成升级。二、面向 Overseerr 用户的新特性一览以下功能此前仅在 Jellyseerr 中存在合并后所有 Seerr 用户均可使用新特性说明替代媒体方案支持将 Jellyfin 与 Emby 作为 Plex 的替代品接入同一时间只能启用一种集成PostgreSQL 支持在 SQLite 之外可选用 PostgreSQL 作为数据库电影/剧集/标签的屏蔽列表Blocklist允许有权限的用户将特定电影、剧集或标签对普通用户隐藏覆盖规则Override Rules基于用户、标签等条件调整默认请求设置TVDB 元数据可选择使用 TheTVDB 作为剧集元数据源与 Sonarr 一致而非 TMDBDNS 缓存减少 DNS 查询次数与外部请求对使用 Pi-Hole/AdGuard Home 的场景尤为有效内置 Helm Chart便于在 Kubernetes 环境中安装与维护ntfy.sh 通知支持通过 ntfy.sh 发送通知禁用特殊季新增设置阻止特殊季如 S0被展示或请求新语言新增土耳其语Turkish与巴斯克语Basque这些特性在仓库中均有对应实现例如屏蔽列表相关实现见 src/components/Blocklist/index.tsx 与 server/routes/blocklist.ts覆盖规则相关实现见 server/entity/OverrideRule.tsntfy 通知代理实现见 server/lib/notifications/agents/ntfy.ts其 API 路由在 server/routes/settings/notifications.ts 中注册GET/POST /ntfyHelm Chart 位于 charts/seerr-chart。三、面向 Jellyseerr 用户的新特性自上一版本以来的改进本次发布同样为 Jellyseerr 老用户带来了多项长期期待的功能TVDB 元数据支持、DNS 缓存、Webhook 动态占位符以及若干面向开发者与普通用户的体验优化。3.1 PNPM v10 升级面向源码构建者Seerr 已将包管理器升级到PNPM v10。如果你从源码构建 Seerr 或参与贡献需要在开始工作前更新本地的 PNPMpnpm self-update随后验证版本pnpm -v应显示10.x.x。使用 Docker 的用户无需关心此项变更。3.2 TVDB 元数据提供方实验性此前 Seerr及其前身仅依赖TMDB提供电影与剧集信息。由于 Sonarr 使用TheTVDB作为元数据源两者在季/集编号上偶尔会出现不一致。引入 TheTVDB 后Seerr 可为剧集与动画使用与 Sonarr 相同的数据源保证两侧季集信息的一致与准确。配置入口位于设置页的新 Metadata Providers 选项卡从源码看该设置的后端逻辑位于 server/routes/settings/metadata.ts设置模型MetadataSettings包含tv与anime两个字段取值来自枚举MetadataProviderTypetmdb或tvdb定义见 server/lib/settings/index.ts保存配置时后端会先行测试所选的提供方连通性选择 TVDB 时调用Tvdb.getInstance().test()选择 TMDB 时调用TheMovieDb().getTvShow({ tvId: 1054 })测试结果通过getTestResultString归一化为三种状态not tested-1、failed0、ok1。任一测试失败则返回 500 并携带失败状态全部通过才写入并保存设置另提供独立的POST /test端点metadataRoutes.post(/test, ...)供前端手动测试提供方连通性。注意该特性当前标记为实验性默认配置为剧集与动漫均使用 TMDB见 server/lib/settings/index.ts 的默认值。3.3 DNS 缓存实验性Node.js 默认不会缓存任何 DNS 请求。对于大型 Jellyfin 媒体库每一个 HTTP 请求都会触发一次 DNS 查询极易产生极高的 DNS 查询频率进而被Pi-Hole / AdGuard Home之类的 DNS 服务限流甚至封禁。Seerr 的 DNS 缓存管理器通过缓存 DNS 查找结果显著降低 DNS 服务器压力避免限流或封禁问题。配置入口位于 Seerr 设置的 Network网络选项卡中的 DNS Cache 设置从源码看其实现位于 server/utils/dnsCache.ts核心基于dns-caching包的DnsCacheManagerSeerr 在此之上做了薄封装初始化函数initializeDnsCache接收forceMinTtl与forceMaxTtl两个参数秒内部乘以 1000 转换为毫秒后传入DnsCacheManager默认配置为enabled: false、forceMinTtl: 0、forceMaxTtl: -1见 server/lib/settings/index.tsforceMaxTtl: -1表示不强制上限、遵循系统 TTL缓存的启用时机在服务启动阶段server/index.ts当settings.network.dnsCache.enabled为真时调用initializeDnsCache管理员可通过GET /api/v1/settings/cache查看 DNS 缓存统计与缓存条目dnsCache.getStats()/dnsCache.getCacheEntries()并可通过POST /api/v1/settings/cache/dns/:dnsEntry/flush单独清除某条缓存见 server/routes/settings/index.ts。3.4 Jellyfin 媒体库的 AniDB 回退针对 Jellyfin 管理的媒体库本版本增加了额外的元数据来源当条目缺少 TMDB 或 TVDB 的提供方 ID 时Seerr 会自动回退到 AniDB从而覆盖更多小众或区域限定的动漫作品。3.5 Webhook URL 动态占位符实验性Webhook 通知现在支持在 URL 中嵌入动态占位符运行时由 Seerr 自动替换为真实值。例如可以将请求者的用户名直接拼入 Webhook URL以便与第三方服务或按用户区分的端点深度集成。启用入口位于Notifications通知设置页界面会列出当前可用的占位符供参考该功能目前标记为实验性欢迎社区反馈以在后续版本中扩充占位符集合。从源码看占位符的替换逻辑位于 server/lib/notifications/agents/webhook.ts当settings.options.supportVariables为真时遍历KeyMapwebhook.ts中定义的全部占位符键占位符采用{{key}}语法通过正则new RegExp({{ key }}, g)全局替换为真实值并经过encodeURIComponent编码KeyMap中预置了丰富的变量例如{{notification_type}}、{{event}}、{{subject}}、{{message}}、{{image}}{{notifyuser_username}}、{{notifyuser_email}}、{{notifyuser_avatar}}、{{notifyuser_settings_discordIds}}{{media_imdbid}}、{{media_tmdbid}}、{{media_tvdbid}}、{{media_type}}、{{media_status}}、{{media_status4k}}{{request_id}}、{{requestedBy_username}}、{{requestedBy_email}}{{issue_id}}、{{issue_type}}、{{issue_status}}、{{reportedBy_username}}、{{comment_message}}、{{commentedBy_username}}等测试通知Notification.TEST_NOTIFICATION时所有变量统一替换为test便于验证 URL 拼接结果。对应地Webhook 的保存/读取接口server/routes/settings/notifications.ts会持久化supportVariables、customHeaders、authHeader等选项JSON 载荷以 base64 形式存储。3.6 通知中的图片改为可选另一项小改进通知中的图片现在是可选项默认仍启用。此前版本发送通知时总是附带图片一旦图片缺失或不可用会导致链接失效或请求失败。现在可以关闭图片避免此类问题。3.7 安全与供应链改进本版本在安全层面做了系统性加固更新了部分过期的依赖相关工作仍在进行中Helm Chart 与容器镜像现在均经过加密签名可在客户端侧验证与强制校验容器改为以非 root 用户rootless运行工作流全面重构尽量减少第三方 Actions权限得到强化Actions 固定到特定的哈希值提升可追溯性发布流程移除了大量过时与插件依赖替换为更标准的行业解决方案。容器以非 root 运行的细节可参考 Dockerfile 以及 Helm Chart 中默认的securityContext配置charts/seerr-chart/templates/statefulset.yaml。四、PostgreSQL 用户特别注意事项官方在发布说明中以醒目方式给出提示如果你在 Docker 中把 Postgres 从17 升级到 18请注意数据挂载点已经变更。不再使用/var/lib/postgresql/data正确的挂载路径现在是/var/lib/postgresql。该挂载点更新是保证升级后容器正常工作的必要条件。即升级后需要将卷挂载目标更新为volumes: - postgres-data:/var/lib/postgresqlSeerr 的 PostgreSQL 迁移脚本位于 server/migration/postgres首次以 Seerr 代码库启动时迁移会自动执行详见下文迁移章节。五、从 Overseerr / Jellyseerr 迁移到 Seerr根据官方迁移指南docs/migration-guide.mdx无论来自 Overseerr 还是 Jellyseerr都无需手动执行迁移步骤——实例会在首次使用 Seerr 代码库Docker 镜像、源码构建或 Kubernetes启动时自动完成迁移Overseerr 用户还会额外执行一次配置到新代码库的迁移。迁移前务必先备份现有实例详见官方 Backups 文档以便出问题时回滚。5.1 Docker 用户迁移要点所有overseerr/jellyseerr引用统一更名为seerr容器镜像引用更新为 Seerr 官方镜像容器现在可以且建议以非 root 用户node用户UID 1000运行如果此前配置了user指令请移除镜像不再内置 init 进程需要在 Docker Compose 中添加init: true或在 Docker CLI 中添加--init。由于容器以node用户UID 1000运行必须确保 config 目录权限正确docker run --rm -v /path/to/appdata/config:/data alpine chown -R 1000:1000 /dataDocker Compose 示例Unixservices: seerr: image: ghcr.io/seerr-team/seerr:latest init: true container_name: seerr environment: - LOG_LEVELdebug - TZAsia/Tashkent - PORT5055 #optional ports: - 5055:5055 volumes: - /path/to/appdata/config:/app/config healthcheck: test: wget --no-verbose --tries1 --spider http://localhost:5055/api/v1/settings/public || exit 1 start_period: 20s timeout: 3s interval: 15s retries: 3 restart: unless-stoppedDocker CLI 示例docker run -d \ --name seerr \ --init \ -e LOG_LEVELdebug \ -e TZAsia/Tashkent \ -e PORT5055 \ -p 5055:5055 \ -v /path/to/appdata/config:/app/config \ --restart unless-stopped \ ghcr.io/seerr-team/seerr:latest官方 Docker 镜像提供以下标签latest最新稳定版、版本标签如v3.0.0、大版本别名如v3、小版本别名如v3.0以及develop滚动/每日构建慎用。5.2 Kubernetes 用户manifest 中所有jellyseerr引用更名为seerr镜像引用更新默认securityContext与podSecurityContext已更新为支持非 root 运行image: repository: seerr-team/seerr podSecurityContext: fsGroup: 1000 fsGroupChangePolicy: OnRootMismatch securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: false runAsNonRoot: true privileged: false runAsUser: 1000 runAsGroup: 1000 seccompProfile: type: RuntimeDefault对应的 Helm Chart 位于 charts/seerr-chart可直接用于 Kubernetes 环境安装。5.3 源码构建与第三方安装方式源码构建按官方文档docs/getting-started/buildfromsource.mdx从零安装恢复备份数据后启动即可无需额外步骤注意先升级 PNPM 至 v10见上文 3.1 节第三方方式如 AUR、TrueNAS、Unraid 等由社区维护Seerr 团队不对其负责其中Snap 包当前未维护。Unraid 用户可直接将原有 appdata 目录复制为 Seerr 的 appdatacp -a /mnt/user/appdata/overseerr /mnt/user/appdata/seerr首次启动即自动完成数据迁移。六、总结Seerr 的这次合并发布将 Overseerr 与 Jellyseerr 的能力整合进单一代码库为两类用户带来互补的功能Overseerr 用户获得了 Jellyfin/Emby 支持、PostgreSQL、屏蔽列表、覆盖规则、Helm Chart 与 ntfy 通知等能力Jellyseerr 用户则迎来 TVDB 元数据、DNS 缓存、Webhook 动态占位符等长期期待的特性同时整个项目在供应链安全、镜像签名与 rootless 运行等方面全面加固。对于现有用户升级路径足够平滑——首次以 Seerr 代码库启动即自动完成数据迁移只需留意容器 init 进程、config 目录权限与 PostgreSQL 挂载路径等细节变更。/output_article【免费下载链接】seerrOpen-source media request and discovery manager for Jellyfin, Plex, and Emby.项目地址: https://gitcode.com/GitHub_Trending/je/seerr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/14 23:43:14

dotnet/skills升级插件六大技能清单:.NET版本升级路线图

dotnet/skills升级插件六大技能清单:.NET版本升级路线图 【免费下载链接】skills Repository for skills to assist AI coding agents with .NET and C# 项目地址: https://gitcode.com/GitHub_Trending/skills17/skills 对于正在维护 .NET 项目的开发者来说…

2026/11/12 6:44:06

Reactive Resume 简历导出指南:四格式下载与避坑

Reactive Resume 简历导出指南:四格式下载与避坑 【免费下载链接】reactive-resume A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today! 项目地址: …

2026/11/14 23:37:18

郑州电工证换证流程2026河南最新政策怎么走才不掉坑

郑州电工证换证流程2026河南最新政策怎么走才不掉坑 实操考试心里没底怕挂科,这几乎是每个打算换证的电工都绕不开的心病。尤其是2026河南最新政策出台后,换证流程、考试难度、报名费用等方面都有了新的变化。如果你正准备走郑州电工证换证流程,那…

2026/11/14 23:37:18

学电工毕业没有电工证值不值得考多少钱

学电工毕业没有电工证值不值得考多少钱 怕考不过白交培训费,这是很多学电工但没电工证的兄弟最怕的事。你可能读了相关专业,也学了不少理论知识,但就是缺个证,心里不踏实。 多少钱…

2026/11/13 22:33:32

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/14 0:06:39

土木特种工考证官方报名入口怎么找 之前考的证在外省能不能转过来

土木特种工考证官方报名入口怎么找 之前考的证在外省能不能转过来 之前考的证在外省能不能转过来?这个问题我太熟悉了,作为一名干了十几年的特种作业证书办理从业者,每年都会遇到不少像你一样在外地考了证,回来却发现无法直接使用的学员。别急,今天我就…

2026/11/14 0:06:39

电工证要多久多钱保姆级教程:工地太忙根本没时间复习考试

电工证要多久多钱保姆级教程:工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,你不是一个人。在信阳浉河区,很多刚进入工地的电工都面临这样的困境:工作强度大,时间碎片化,根本没有系统复习考试的机会。但电工证是上岗的硬门槛,…

2026/11/13 22:32:11

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/13 12:14:39

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

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

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

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