一站式媒体追踪方案:在自托管NAS上部署Yamtrack全攻略
本文将介绍一款极具潜力的实用工具。Yamtrack 是一个支持追踪电影、电视剧、动漫、漫画、书籍和游戏的媒体管理工具。它具备多用户支持、日历订阅、字幕同步以及与主流媒体服务器(如 Emby、Jellyfin、Plex)集成的能力,非常适合热衷于系统化管理个人媒体消费记录的用户。

本文主要内容是指导您如何使用 Docker Compose 快速部署 Yamtrack,从而开启全面的媒体追踪体验。
✨ 核心功能一览
🎬 全媒体类型覆盖:支持记录电影、剧集、动漫、漫画、电子游戏、图书等多种形式的媒体内容。
📺 精细化剧集管理:能够按季度分别追踪电视剧或动漫,并详细记录每一集的观看状态。
⭐ 全面的进度与评价:为每部作品保存个人评分、观看状态、完成进度、重看次数、开始与结束日期,并可添加备注。
📈 完整的操作历史:自动记录每一次添加作品、开始观看、重新观看等行为,便于回溯个人娱乐足迹。
✏️ 手动创建条目:对于通过 API 无法自动识别的冷门作品,允许用户手动创建并完善信息。
📂 灵活的清单系统:可以创建出于任何目的的自定义列表,并支持邀请他人进行协同编辑与管理。
📅 日历集成与订阅:提供 .ics 格式的日历链接,可订阅到系统日历中,方便跟进新番上映或影片发布计划。
🔔 多渠道通知提醒:通过集成 Apprise 服务,支持向 Discord、Telegram、ntfy、Slack、电子邮件等平台推送动态更新。
🐳 便捷的容器化部署:提供官方的 Docker Compose 配置模板,支持选用轻量的 SQLite 或更稳健的 PostgreSQL 作为数据库。
👥 完善的账户体系:支持多用户独立使用,每个人的追踪记录完全隔离,互不干扰。
🔑 多样的身份认证:基于 django-allauth 实现,支持 OIDC 协议及上百种社交平台登录(如 Google、GitHub、Discord 等)。
🦀 媒体服务器联动:可与 Jellyfin、Plex、Emby 等流行的媒体中心软件对接,实现观看记录的自动同步。
📥 跨平台数据迁移:支持从 Trakt、Simkl、MyAnimeList、AniList、Kitsu 等主流追踪平台导入历史数据,并可设置定期自动同步。
📊 数据导出与备份:允许将所有追踪数据导出为通用的 CSV 文件进行备份,也支持随时重新导入以恢复数据。
🧰 环境准备与需求
您需要准备一台运行 Linux 或 Windows 系统的主机,推荐使用家庭服务器或 NAS 设备。本文将以威联通(QNAP)NAS 作为操作演示平台。
确保主机上已安装 Docker 及 Docker Compose 环境。若使用威联通 NAS,安装其官方容器管理工具 Container Station 即可满足需求。
⚙️ 详细部署步骤
以威联通 NAS 为例,打开 Container Station 应用程序,开始部署流程。
部署代码示例与分析
项目提供了两种部署配置方案,以下是简化版的 SQLite 数据库部署配置:
version: "3" # 最新版删除该行
services:
yamtrack:
container_name: yamtrack
image: ghcr.io/fuzzygrim/yamtrack
restart: unless-stopped
depends_on:
- redis
environment:
- TZ=Asia/Shanghai
- SECRET=请替换为一段高强度随机字符串
- REDIS_URL=redis://redis:6379
volumes:
- /share/Container/yamtrack/db:/yamtrack/db # SQLite 数据文件持久化目录
- /share/Container/yamtrack/media:/yamtrack/media # 可选:封面图、上传等媒体资源
ports:
- "8000:8000" # 冒号左侧端口可改
redis:
container_name: yamtrack-redis
image: redis:7-alpine
restart: unless-stopped
volumes:
- /share/Container/yamtrack/redis:/data # Redis 数据目录
对于大多数个人用户和小型部署场景而言,SQLite 数据库已完全能够满足需求,建议优先选用以简化维护。
如果您需要更强大的数据库支持,以下是使用 PostgreSQL 配合 Redis 的部署配置:
version: "3"
services:
yamtrack:
container_name: yamtrack
image: ghcr.io/fuzzygrim/yamtrack
restart: unless-stopped
depends_on:
- db
- redis
environment:
- TZ=Asia/Shanghai
- SECRET=请改成一段高强度随机字符串
- REDIS_URL=redis://redis:6379
- DB_HOST=db
- DB_NAME=yamtrack
- DB_USER=yamtrack
- DB_PASSWORD=yamtrack
- DB_PORT=5432
ports:
- "8000:8000"
volumes:
- /share/Container/yamtrack/media:/yamtrack/media # 可选:用于保存封面图等静态文件(如有)
db:
image: postgres:16-alpine
container_name: yamtrack-db
environment:
- POSTGRES_DB=yamtrack
- POSTGRES_USER=yamtrack
- POSTGRES_PASSWORD=yamtrack
- TZ=Asia/Shanghai
volumes:
- /share/Container/yamtrack/postgres:/var/lib/postgresql/data
restart: unless-stopped
redis:
container_name: yamtrack-redis
image: redis:7-alpine
restart: unless-stopped
volumes:
- /share/Container/yamtrack/redis:/data
需要注意的是,为不同应用统一使用一个数据库实例的想法在实际中往往难以实现,因为每个应用通常都有其特定的数据库架构与版本要求。
本文演示将选择 SQLite 简化版进行部署。请根据您的 NAS 存储路径修改配置中的卷映射路径(/share/Container/yamtrack/),然后将编辑好的代码粘贴到 Container Station 的“创建应用程序”编辑框中,如下图所示。

🍀 界面体验与实战演示
按照上述步骤完成部署并等待容器启动后,在浏览器中输入 您的NAS_IP:8000 即可访问 Yamtrack 界面。首次进入后,请点击下图中的「Register now」链接注册新账户。

注册过程遵循常规流程,填写用户名、电子邮件和密码等信息后,点击「Create Account」完成创建。

作为一款处于活跃开发阶段的项目,目前界面尚未提供中文语言支持,这属于正常情况。对此感兴趣且具备能力的朋友,可以关注其项目仓库并参与翻译建设。

在实际测试中,直接输入中文关键词也能进行搜索。但需注意,在搜索前需要先选择正确的媒体分类。如下图所示,分类非常细致,甚至支持按电视剧的特定季度进行筛选。

这是搜索结果的详情页面。以电视剧《神探狄仁杰》为例,它承载了许多观众的童年记忆,其系列作品都令人印象深刻。

动漫搜索测试,特别选用国产动漫《凡人修仙传》进行尝试。可以看到返回结果数量众多,而正确的匹配项依然能排在靠前的位置,说明搜索效果良好。

对于国内的经典老电影,如《霸王别姬》,也能准确识别并展示信息。

需要提醒的是,“Manga”类别特指日本漫画(实际测试中扩展到了东方漫画范畴)。搜索时,使用作品的英文名称或在其原始出版地的名称,会获得更精准的结果。由于国内漫画作品与全球性的元数据资源库对接尚不完善,因此搜索相关资源可能会面临一些困难,即使参照维基百科的信息进行搜索,结果也可能不尽如人意。
在用户设置中,可以配置与 Emby、Jellyfin、Plex 等媒体服务器的连接,从而实现观看进度的自动追踪。只需按照界面指引步骤操作即可完成绑定。

Yamtrack 还支持从多个主流追踪平台导入现有数据,下图列出的部分平台对于资深用户来说应该相当熟悉。

结语
Yamtrack 项目目前仍在频繁更新迭代中。在其项目的 Issues 讨论区可以看到,还有许多计划中的功能等待开发与上线。
个人认为,如果该项目能够保持当前稳定的开发节奏,未来极有可能成长为一款广受欢迎的全能型媒体追踪工具。
希望这份部署与体验指南能对您有所帮助。