周三下午,我想给朋友发一部电影。Plex让我扫描媒体库、注册账号、配置元数据代理。Jellyfin轻一点,但仍要搭数据库。Emby直接要订阅。

我的需求很简单:指向一个文件,生成链接,对方点开就能播。于是我做了ShareBox——纯PHP写的自托管媒体服务器,无框架、零依赖。v5刚发布。

打开网易新闻 查看精彩图片

25MB内存,不扫描,没插件

打开网易新闻 查看精彩图片

ShareBox是Plex和Jellyfin的轻量替代方案。指向文件夹,启动Docker,服务上线。没有媒体库扫描(文件系统就是库),没有外部数据库,没有插件。PHP 8 + SQLite + ffmpeg,仅此而已。

网格视图自动拉取TMDB海报,剧集支持季导航。内置播放器处理字幕(SRT、ASS、PGS)、多音轨、画中画。v1文章里写的零依赖理念——没变。

v5新功能

GPU硬解——自动检测,零配置

这是重头戏。ShareBox自动识别可用硬件并选择最优编码器:

• Intel VAAPI——群晖NAS、迷你主机、多数服务器。有Intel核显就能用。

• NVIDIA NVENC——台式机/笔记本显卡,需Docker配合NVIDIA运行时。项目自带docker-compose.nvidia.yml。

• 树莓派V4L2M2M——Pi 4的硬解编码。2GB内存的Pi上能跑实时720p。

GPU失效(驱动缺失、格式不支持)时自动回退软解。无需配置,无需开关。回退对用户透明。

继续观看

浏览页顶部出现"继续观看"行,显示最近8个在播视频及进度条。数据存客户端localStorage——无需用户账号。关掉浏览器,回来,从断点续播。

9处安全修复

mark_watched路径遍历、非管理员删除系统链接的IDOR漏洞、错误响应与搜索查询的XSS、下载计数器的竞态条件、HTTP主机头注入。每项修复都写在CHANGELOG里。

52个Playwright端到端测试 + CI

打开网易新闻 查看精彩图片

浏览、海报、管理、播放器、ZIP、搜索、安全——全部覆盖。每次推送和PR都在GitHub Actions上针对Docker演示容器跑测试。加上159个PHPUnit单元测试,共211个测试。

安装指南

文档现覆盖Docker、树莓派、群晖NAS、Unraid、裸机安装。给确切命令,不是"去看文档"。

对比一览

ShareBox vs Plex vs Jellyfin

• 搭建时间:30秒 / 15-30分钟 / 10-20分钟

• 内存占用:25MB / 500MB-2GB / 300MB-1GB

• 媒体库扫描:无 / 必需 / 必需

• 文件分享链接:内置 / 无 / 无

• GPU转码:自动检测 / 需Plex Pass / 内置

• 树莓派支持:是(2GB)/ 几乎不行 / 是(4GB)

• 成本:免费(MIT)/ Freemium / 免费(GPL)

ShareBox并非适合所有人。如果你需要多设备同步、直播电视或音乐管理,Jellyfin或Plex更合适。但如果你只想——指向文件夹,获得链接——这就是为它做的。