Tracearr 部署教程:一站式媒体服务器监控平台
众所周知,我有一个 Emby 服。之前一段时间没怎么关注客户端使用情况。虽然一开始就声明过不要使用网页播放,也不要随意共享账号,但实际运行下来还是有不少人这么用。结果就是很多人直接在网页端播放触发转码,服务器 CPU 长时间被大量占用。因为当时也没有精力去逐个排查和管理用户,这件事就一直拖着。
过去如果想做这类监控,通常需要依赖像 Tautulli(只支持 Plex)或 Jellystat(只支持 Jellyfin)这样的工具。而今天要介绍的 Tracearr,则是一款同时支持三个媒体服务器平台的统一监控解决方案。
什么是 Tracearr?
Tracearr 是一个开源的媒体服务器实时监控平台,支持同时监控 Plex、Jellyfin 和 Emby。它可以实时跟踪流媒体播放情况,深入分析播放数据,并在账户共享失控之前发现并解决这些问题。

NOTE事先声明,我不会主动收集记录服里人播放和历史记录也不用担心我公开,数据仅仅用于排查违规账户。
主要功能
NOTE有个缺点,目前中文是支持的,但是是繁体中文,挺变扭。而且不支持旧,只能从新数据开始查起。
实时监控面板
- 多服务器仪表盘:在一个界面查看所有媒体服务器状态
- 实时会话追踪:WebSocket 推送,延迟极低
- 交互式世界地图:直观展示观众地理位置分布
- 服务器资源监控:CPU、内存、转码器使用率
账号分享检测
Tracearr 提供六种智能检测规则,协助异常使用行为:
| 检测规则 | 说明 |
|---|---|
| 不可能旅行 | 短时间内出现在地理位置相距过远的两个地方 |
| 同时多地点登录 | 同一账号在多个不同地点同时活跃 |
| 设备速度异常 | 设备在物理上不可能的速度移动 |
| 并发流过多 | 超出正常个人使用范围的并发观看 |
| 地理限制违规 | 来自被限制地区的访问 |
| 账号长期不活跃 | 识别僵尸账号或被遗忘的分享 |
信任评分系统
基于用户行为自动计算信任分数,违规行为会降低评分,帮助你快速识别高风险账号。
数据分析
- 观看历史记录与统计
- 流媒体分析(转码 vs 直推、带宽使用、编码格式分布)
- 媒体库分析(内容概览、质量分布、存储统计、观看热度)
通知系统
- Discord Webhook 集成
- Apprise 支持(覆盖 80+ 通知服务)
- 完全可自定义的通知模板
数据迁移
支持从 Tautulli 和 Jellystat 导入历史数据。
技术栈
| 层级 | 技术 |
|---|---|
| 前端 | React 19 + TypeScript + Tailwind CSS + shadcn/ui |
| 后端 | Node.js + Fastify |
| 数据库 | TimescaleDB(PostgreSQL 时序扩展) |
| 缓存 | Redis |
| 实时通信 | Socket.io |
| 图表 | Highcharts |
| 地图 | Leaflet |
部署方式
Tracearr 提供三种 Docker 镜像标签:
supervised:All-in-one 版本,内置数据库(最简单,适合新手)latest:标准版本,需要外部 TimescaleDB 和 Redis(推荐生产环境)nightly:每日构建版,包含最新功能但可能不稳定
下面介绍两种部署方式:Dokploy 模板部署(推荐)和 Docker Compose 部署。
方式一:Dokploy 模板部署(推荐)
Dokploy 是一个开源的 PaaS 平台,类似 Vercel 和 Heroku 的替代品,支持自托管。我封装了模板可以直接导入使用。
模板导入步骤
ewogICJjb21wb3NlIjogInZlcnNpb246IFwiMy44XCJcblxuc2VydmljZXM6XG4gIHRyYWNlYXJyOlxuICAgIGltYWdlOiBnaGNyLmlvL2Nvbm5vcmdhbGxvcG8vdHJhY2VhcnI6bGF0ZXN0XG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIC0gREFUQUJBU0VfVVJMPXBvc3RncmVzcWw6Ly8ke1BPU1RHUkVTX1VTRVJ9OiR7UE9TVEdSRVNfUEFTU1dPUkR9QHRpbWVzY2FsZTo1NDMyLyR7UE9TVEdSRVNfREJ9XG4gICAgICAtIFJFRElTX1VSTD1yZWRpczovLzoke1JFRElTX1BBU1NXT1JEfUByZWRpczo2Mzc5LzBcbiAgICAgIC0gSldUX1NFQ1JFVD0ke0pXVF9TRUNSRVR9XG4gICAgICAtIENPT0tJRV9TRUNSRVQ9JHtDT09LSUVfU0VDUkVUfVxuICAgICAgLSBORVhUX1BVQkxJQ19VUkw9aHR0cHM6Ly8ke0RPTUFJTn1cbiAgICAgIC0gTk9ERV9FTlY9cHJvZHVjdGlvblxuICAgIHZvbHVtZXM6XG4gICAgICAtIHRyYWNlYXJyLWRhdGE6L2FwcC9kYXRhXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIHRpbWVzY2FsZTpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIHJlZGlzOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2Vfc3RhcnRlZFxuXG4gIHRpbWVzY2FsZTpcbiAgICBpbWFnZTogdGltZXNjYWxlL3RpbWVzY2FsZWRiLWhhOnBnMThcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGVudmlyb25tZW50OlxuICAgICAgLSBQT1NUR1JFU19VU0VSPSR7UE9TVEdSRVNfVVNFUn1cbiAgICAgIC0gUE9TVEdSRVNfUEFTU1dPUkQ9JHtQT1NUR1JFU19QQVNTV09SRH1cbiAgICAgIC0gUE9TVEdSRVNfREI9JHtQT1NUR1JFU19EQn1cbiAgICB2b2x1bWVzOlxuICAgICAgLSB0aW1lc2NhbGUtZGF0YTovaG9tZS9wb3N0Z3Jlcy9wZ2RhdGEvZGF0YVxuICAgIGhlYWx0aGNoZWNrOlxuICAgICAgdGVzdDogW1wiQ01ELVNIRUxMXCIsIFwicGdfaXNyZWFkeSAtVSAke1BPU1RHUkVTX1VTRVJ9IC1kICR7UE9TVEdSRVNfREJ9XCJdXG4gICAgICBpbnRlcnZhbDogMTBzXG4gICAgICB0aW1lb3V0OiA1c1xuICAgICAgcmV0cmllczogNVxuXG4gIHJlZGlzOlxuICAgIGltYWdlOiByZWRpczo3LWFscGluZVxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgY29tbWFuZDogcmVkaXMtc2VydmVyIC0tcmVxdWlyZXBhc3MgJHtSRURJU19QQVNTV09SRH1cbiAgICB2b2x1bWVzOlxuICAgICAgLSByZWRpcy1kYXRhOi9kYXRhXG5cbnZvbHVtZXM6XG4gIHRyYWNlYXJyLWRhdGE6IHt9XG4gIHRpbWVzY2FsZS1kYXRhOiB7fVxuICByZWRpcy1kYXRhOiB7fVxuIiwKICAiY29uZmlnIjogIlt2YXJpYWJsZXNdXG5tYWluX2RvbWFpbiA9IFwiJHtkb21haW59XCJcbmRiX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjE2fVwiXG5yZWRpc19wYXNzd29yZCA9IFwiJHtwYXNzd29yZDoxNn1cIlxuand0X3NlY3JldCA9IFwiJHtwYXNzd29yZDozMn1cIlxuY29va2llX3NlY3JldCA9IFwiJHtwYXNzd29yZDozMn1cIlxuXG5bY29uZmlnXVxubW91bnRzID0gW11cbmVudiA9IFtcbiAgXCJET01BSU49JHttYWluX2RvbWFpbn1cIixcbiAgXCJQT1NUR1JFU19VU0VSPXRyYWNlYXJyXCIsXG4gIFwiUE9TVEdSRVNfUEFTU1dPUkQ9JHtkYl9wYXNzd29yZH1cIixcbiAgXCJQT1NUR1JFU19EQj10cmFjZWFyclwiLFxuICBcIlJFRElTX1BBU1NXT1JEPSR7cmVkaXNfcGFzc3dvcmR9XCIsXG4gIFwiSldUX1NFQ1JFVD0ke2p3dF9zZWNyZXR9XCIsXG4gIFwiQ09PS0lFX1NFQ1JFVD0ke2Nvb2tpZV9zZWNyZXR9XCJcbl1cblxuW1tjb25maWcuZG9tYWluc11dXG5zZXJ2aWNlTmFtZSA9IFwidHJhY2VhcnJcIlxucG9ydCA9IDMwMDBcbmhvc3QgPSBcIiR7bWFpbl9kb21haW59XCJcbiIKfQ==-
填写配置参数:
- Domain:你的域名(如
tracearr.example.com) - 其他密码字段留空,系统会自动生成强密码
- Domain:你的域名(如
-
点击 Deploy,等待约 2-3 分钟完成部署
-
访问填写的域名,注册管理员账号即可开始使用

方式二:官方docker compose 部署
# 创建目录mkdir -p tracearr && cd tracearr
# 下载官方示例配置curl -O https://raw.githubusercontent.com/connorgallopo/Tracearr/main/docker/examples/docker-compose.pg18.yml
# 生成随机密钥echo "JWT_SECRET=$(openssl rand -hex 32)" > .envecho "COOKIE_SECRET=$(openssl rand -hex 32)" >> .env
# 启动服务docker compose -f docker-compose.pg18.yml up -d
echo "Tracearr 已启动,访问 http://localhost:3000"初始配置
首次访问 Tracearr 时,系统会引导你完成初始化:
1. 创建管理员账号
填写邮箱和密码注册第一个管理员账号。
2. 添加媒体服务器
Tracearr 支持同时添加多个 Plex / Jellyfin / Emby 服务器:
| 平台 | 连接方式 |
|---|---|
| Plex | Token 认证(从 Plex 设置中获取) |
| Jellyfin | API Key + 服务器地址 |
| Emby | API Key + 服务器地址 |

点击 Sync 开始同步数据

3. 导入历史数据(可选)
如果你之前使用 Tautulli 或 Jellystat:
- 进入 Settings → Import
- 选择数据来源
- 上传备份文件或连接原数据库
- 等待导入完成

使用指南
仪表盘概览
主界面分为几个区域:
- 顶部统计:当前在线用户、今日播放量、总用户数
- 世界地图:实时显示观众分布
- 活动会话:当前正在播放的内容、进度、码率、转码状态
- 服务器状态:CPU、内存、网络、转码器使用情况




用户管理
在 Users 页面可以:
- 查看所有用户的信任评分
- 查看用户观看历史
- 标记可疑账号
- 查看账号违规记录

数据分析
Analytics 菜单提供多维度统计:
- 观看统计:时段分布、内容类型偏好、设备分布
- 流媒体分析:转码 vs 直推比例、平均码率、编码格式
- 媒体库分析:存储使用、内容质量分布、热门内容


违规规则设定以及分析

API 使用
Tracearr 提供完整的 REST API,文档位于 /api-docs:
# 获取当前会话curl -H "Authorization: Bearer YOUR_TOKEN" \ https://tracearr.example.com/api/sessions/active
# 获取用户列表curl -H "Authorization: Bearer YOUR_TOKEN" \ https://tracearr.example.com/api/users
# 获取统计数据curl -H "Authorization: Bearer YOUR_TOKEN" \ https://tracearr.example.com/api/analytics/overview与 Tautulli / Jellystat 对比
| 功能 | Tracearr | Tautulli | Jellystat |
|---|---|---|---|
| Plex 支持 | ✅ | ✅ | ❌ |
| Jellyfin 支持 | ✅ | ❌ | ✅ |
| Emby 支持 | ✅ | ❌ | ❌ |
| 多服务器统一 | ✅ | ❌ | ❌ |
| 分享检测 | ✅ 高级 | ✅ 基础 | ❌ |
| 信任评分 | ✅ | ❌ | ❌ |
| 实时地图 | ✅ | ✅ | ✅ |
| 开源协议 | AGPL-3.0 | GPL-3.0 | GPL-3.0 |
Tracearr 的优势在于统一管理和高级的账号分享检测,适合同时运行多个媒体服务器的用户。
总结
Tracearr 作为新兴的媒体服务器监控工具,凭借其多平台支持和智能分享检测功能,填补了 Tautulli 和 Jellystat 的空白。对于同时运行 Plex、Jellyfin 或 Emby 的用户来说,这是一个值得尝试的一站式解决方案。
项目仍在积极开发中,未来计划包括更多通知渠道、移动端 App、以及更丰富的数据分析功能。
相关链接:
- GitHub:https://github.com/connorgallopo/tracearr
- 官方文档:https://docs.tracearr.com/
- Docker Hub:https://ghcr.io/connorgallopo/tracearr