媒体库 · 刮削整理 · 网盘 STRM · 兼容 Emby/Jellyfin 客户端 · 远程 Emby 挂载 · 多用户权限 · Docker 一键部署
项目简介 · 快速开始 · 部署档位 · 鸣谢 · 开发构建 · English · 贡献规范 · Telegram 群组
MeBox 是一个自托管私人媒体管理系统,适合 NAS、小主机、家庭共享和多端播放场景。本项目由 MediaStationGo fork 并持续二开维护,在保留「一套服务覆盖网页、手机、电视与第三方播放器」思路的同时,围绕网盘播放、任务队列、远程挂载和权限体系做了大量增强。
你可以把 MeBox 理解为:
- 一个带现代 Web UI 的媒体库后台
- 一个兼容 Emby/Jellyfin 客户端的协议网关
- 一个连接本地硬盘、下载目录与网盘存储的整理与播放入口
| 模块 | 说明 |
|---|---|
| 媒体库 | 电影、电视剧、动漫、综艺、音乐与自定义库;多根目录、扫库、海报墙、继续观看 |
| 元数据刮削 | TMDb、Bangumi、Douban、TheTVDB、Fanart 等;支持 NFO、手动匹配、刮削队列 |
| 播放 | 网页播放器、HLS 转码、弹幕、字幕、播放配置档、观看历史与收藏 |
| Emby/Jellyfin 客户端兼容 | 内置完整 Emby 服务端协议实现:Infuse、SenPlayer、Fileball、Emby/Jellyfin 官方客户端等可直接把本服务当作 Emby 服务器添加,使用 MeBox 账号登录,海报墙、进度同步、多用户无缝衔接 |
| 远程 Emby 挂载 | 将远程 Emby 媒体库挂载到本地界面统一浏览(无需单独开 Emby 客户端) |
| 网盘与 STRM | OpenList、CloudDrive2、115、WebDAV 等;STRM 同步、上传/下载队列、直链/302 播放 |
| 下载与整理 | 下载目录定时自动整理(智能分类、自动注册媒体库)、文件管理器(复制/移动/硬链/软链) |
| 用户与权限 | 管理员/普通用户、有效期、成人内容开关、播放配置 PIN、细粒度操作权限 |
| 运维能力 | 统一任务队列、存储统计、DLNA 投屏、系统设置与日志 |
- 后端:Go · Gin · GORM · SQLite / PostgreSQL · 可选 Redis · 可选 OpenSearch
- 前端:React 18 · Vite · TypeScript · Tailwind CSS · Zustand
- 部署:Docker Compose 多档模板,支持 amd64 / arm64 镜像与单文件可执行发布
推荐使用 Docker Compose。仓库提供四份互相独立的完整模板,无需 .env 即可起步。
mkdir -p MeBox && cd MeBox
# 最省心:单镜像 + 内置 SQLite
curl -fsSL https://raw.githubusercontent.com/truewhile/MeBox/main/docker-compose.simple.yml -o docker-compose.yml
# 或多用户场景:PostgreSQL 第一档
# curl -fsSL https://raw.githubusercontent.com/truewhile/MeBox/main/docker-compose.yml -o docker-compose.yml
docker compose up -d浏览器访问:
http://服务器IP:18080
默认账号:admin / admin123(首次登录后请立即修改密码)
💡 Emby 用户无缝切换:MeBox 完整兼容 Emby/Jellyfin 客户端协议。手机、电视、平板上的 Infuse、SenPlayer、Fileball、Emby/Jellyfin 官方客户端,直接按「添加 Emby 服务器」填入
http://服务器IP:18080,用 MeBox 账号登录即可,无需改变原有使用习惯。
镜像地址:
ghcr.io/truewhile/mebox:latest
按机器资源选择档位。每份 Compose 文件均可单独使用,不要叠加多个 -f。
| 档位 | 配置文件 | 组件 | 适合场景 |
|---|---|---|---|
| 单镜像档 | docker-compose.simple.yml |
MeBox + SQLite | 新手、单人、低配 NAS,只想一个容器跑起来 |
| 第一档 | docker-compose.yml |
MeBox + PostgreSQL | 大多数家庭 NAS,多用户更稳 |
| 第二档 | docker-compose.standard.yml |
+ Redis | 多用户、Emby 客户端频繁刷新、首页/列表访问多 |
| 第三档 | docker-compose.search.yml |
+ OpenSearch | 超大媒体库、复杂全文搜索(内存占用更高) |
- 只启动 一个 MeBox 容器,数据在
./data/mebox.db - 通常只需改端口与媒体目录挂载
- 不要设置
MEBOX_DATABASE_DSN,否则会切到 PostgreSQL
ports:
- "18080:8080"
volumes:
- ./data:/data # 必须备份
- ./cache:/cache # 可重建
- ./media:/media # 改成你的媒体目录网页添加媒体库时填写容器内路径,例如 /media、/media/电影。
- 主库在
./postgres,配置与密钥在./data - 若存在旧版
./data/mebox.db,首次启动会自动迁移到 PostgreSQL - 迁移完成后可将
MEBOX_DATABASE_DB_PATH改为不存在路径,避免重复检查:
MEBOX_DATABASE_DB_PATH: /data/no-sqlite-migration.db| 路径 | 说明 |
|---|---|
./data |
JWT 密钥、运行配置、SQLite 主库或迁移源 |
./postgres |
PostgreSQL 主库(PG 档位) |
./cache |
海报/转码缓存,可重建 |
./redis |
热缓存,可重建 |
./opensearch |
搜索索引,可重建 |
docker compose pull mebox
docker compose up -d --no-deps mebox日常更新只拉 mebox 服务即可,不要随意 docker compose pull 升级 PostgreSQL/Redis/OpenSearch 基础镜像。
Docker 部署最常见的问题是路径填错。记住:
volumes左侧是宿主机真实路径,右侧是容器内路径- 网页后台添加媒体库时,应填写容器内路径(如
/media/电影) - 若使用自动整理/下载入库,
MEBOX_MEDIA_DIR与MEBOX_DOWNLOAD_DIR需与挂载一致
NAS 示例:
volumes:
- /vol1/1000/Media:/media
- /vol1/1000/Downloads:/downloads
environment:
MEBOX_MEDIA_DIR: /vol1/1000/Media
MEBOX_MEDIA_CONTAINER_DIR: /media
MEBOX_DOWNLOAD_DIR: /vol1/1000/Downloads
MEBOX_DOWNLOAD_CONTAINER_DIR: /downloads- 创建媒体库 → 填写
/media/...→ 执行扫库 - 配置元数据源 → 系统设置中添加 TMDb、Bangumi 等 API
- (可选)配置下载目录自动整理 → 文件管理中将下载目录设为整理源,下载完成后自动分类入库
- (可选)配置网盘账号 → STRM 管理中添加 OpenList / 115 / WebDAV 等
- 第三方播放器 → 以 Emby 服务器添加
http://服务器IP:18080,使用 MeBox 账号登录
扫库或入库很慢?
先确认路径映射与数据库档位。网盘扫描还受接口限速与目录规模影响;大库可考虑第二档 Redis 或第三档 OpenSearch。
下载目录文件没有被自动整理?
确认下载目录已通过 volumes 挂进容器,且 MEBOX_DOWNLOAD_* 环境变量对应正确。MeBox 负责目录整理入库,qBittorrent 等下载器按普通软件自行部署即可。
硬链接失败(cross-device link)?
硬链接要求源与目标在同一文件系统/子卷;跨盘、跨 btrfs 子卷或网盘挂载时请改用复制或软链接。
第三方播放器连不上?
确认地址为 http://IP:18080,使用 MeBox 用户账号;反代部署需正确配置外部 URL 与 HTTPS 头。
后端通过 go:embed 嵌入 web/dist,编译前必须先构建前端。
npm --prefix web ci
npm --prefix web run build
go test ./...
go run ./cmd/server # http://127.0.0.1:8080
npm --prefix web run dev # http://127.0.0.1:3000CI 会在 Release 中提供 Windows / Linux / macOS 的 amd64、arm64 单文件可执行程序。
MeBox 在 MediaStationGo 的基础上 fork 并持续演进。感谢上游项目在媒体库架构、Emby 协议兼容和自托管体验上的奠基工作。
项目中许多网盘同步、STRM 与媒体整理相关的设计与实现,也参考了 qmediasync。感谢该项目的思路与实践经验。
提交 Issue 或 Pull Request 前,请阅读 贡献规范 与 安全策略。
- Bug 请附部署方式、复现步骤与相关日志
- 功能建议请说明使用场景与期望行为
- PR 请从独立分支发起,提交前运行
go test ./...与npm --prefix web run build
本项目采用 GPL-3.0 许可证。
如果 MeBox 帮你把家庭影音折腾明白了,欢迎请作者喝杯咖啡 ☕
Telegram 交流群:https://t.me/MeBoxGroup
使用问题、功能建议、更新动态,欢迎来群里聊

