自建家庭媒资中心 — 从下载、刮削、布局编辑到多端播放,全部掌控在自己手里。
简体中文
- 全自建栈:Go 后端 + Vue 3 CMS / Web Player + Android TV 客户端(Kotlin)
- 可视化布局编辑器:拖拽配置首页行(Hero、Shelf、猜你喜欢等),Web / TV 多端预览与发布
- 猜你喜欢:观影历史 + TMDB 推荐 + 库内兜底,可写入布局 Feed
- 智能推荐:Content-based + Hybrid;Feed Redis 缓存,布局变更自动失效
- 多端播放:Web(hls.js)/ Android TV(ExoPlayer);内网 4K 优先 HLS 流复制,弱网可转码
- NAS 友好:群晖 DS920+ 优化(Quick Sync 硬转、
/media+/downloads双路径) - 下载入库:qBittorrent 集成,完成下载后自动扫描入库
- Apache 2.0:可商用
| 组件 | 要求 |
|---|---|
| NAS / 服务器 | x86_64,推荐 4GB+ RAM |
| Docker | Compose v2 |
| 存储 | 媒资目录 + 下载目录(可分开挂载) |
| TMDB API Key | https://www.themoviedb.org/settings/api |
git clone https://github.com/kongbaiming/mediahub.git
cd mediahub
cp .env.example .env
# 编辑 .env:TMDB_API_KEY、各密码、NAS 挂载路径
docker compose up -d --build默认端口(可在 .env 修改):
| 服务 | 默认端口 | 说明 |
|---|---|---|
| CMS Admin | 8080 |
布局 / 媒资 / 下载管理 |
| Web Player | 8081 |
家庭播放端 |
| API | 3000 |
REST API + Swagger |
| qBittorrent | 8082 |
下载 WebUI |
浏览器访问:
- CMS:
http://<NAS-IP>:8080(默认admin/admin123,请尽快改密) - Web Player:
http://<NAS-IP>:8081 - API 文档:
http://<NAS-IP>:3000/swagger/index.html
👉 docs/GETTING-STARTED.md — 从部署到布局发布、播放、Profile、下载的逐步 checklist
make api-deps && make api-dev # 后端 :3000
make admin-deps && make admin-dev # CMS :5173
make web-deps && make web-dev # Web :5174
make ci # 本地跑与 CI 相同的检查Downloader (qBit) → /downloads ─┐
├→ Scanner → PostgreSQL
Media 目录 /media ──────────────┘ ↓
MediaHub API (Go)
┌───────────┼───────────┐
▼ ▼ ▼
CMS Admin Web Player Android TV
(布局编辑) (hls.js) (Leanback)
mediahub/
├── services/
│ ├── api/ # Go + Gin 后端
│ ├── admin/ # CMS Admin (Vue 3 + Element Plus)
│ ├── web-player/ # Web Player (Vue 3 + hls.js)
│ └── android-tv/ # Android TV 客户端
├── docs/ # 部署与方案文档
├── .github/workflows/ # CI + Release
├── docker-compose.yml
└── Makefile
当前最新版本:v0.3.0 — 详见 CHANGELOG.md
完整产品规划(版本目标、Sprint、优先级):docs/PRD-ROADMAP.md
| 阶段 | 状态 | 内容 |
|---|---|---|
| v0.3 稳定基线 | ✅ | 猜你喜欢、Feed 缓存、HLS、布局编辑器、CI |
| v0.4 体验闭环 | 🚧 | 刮削中心、4K 流复制、下载再入库、选集播放 |
| v0.5 多端产品化 | 📋 | Web 字幕/选集、Android TV 1.0、CMS 仪表盘 |
| v1.0 家庭生产可用 | 📋 | tvOS、字幕生态、性能专项 |
cd /volume1/docker/mediahub # 或你的部署目录
git pull
docker compose build api admin web-player
docker compose up -d api admin web-player布局或 Feed 有缓存时,重启 api 会自动刷新首页 Feed;也可手动清 Redis:KEYS mediahub:feed:*
详见 CONTRIBUTING.md。Bug / 功能建议请走 Issues。